Changeset 2049 for trunk/tools/neercs/video/render.cpp
- Timestamp:
- Oct 29, 2012, 2:02:43 AM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tools/neercs/video/render.cpp
r2047 r2049 93 93 float value, angle, radius, scale, speed; 94 94 /* text variable */ 95 ivec2 map_size(256,256); 96 ivec2 canvas_char(0,0); 97 ivec2 canvas_size(0,0); 98 ivec2 font_size(8,8); 99 ivec2 ratio_2d(1,1); 100 ivec2 border(0,0); 95 ivec2 map_size(256,256); // texture map size 96 ivec2 canvas_char(0,0); // canvas char number 97 ivec2 canvas_size(0,0); // caca size 98 ivec2 font_size(8,8); // font size 99 ivec2 ratio_2d(1,1); // 2d ratio 100 ivec2 border(0,0); // border width 101 101 /* shader variable */ 102 vec2 buffer(1.0f,0.0f); // [new frame mix,old frame mix] 103 vec2 remanence(0.0f,0.0f); // remanence [source mix,buffer mix] 104 vec2 glow_mix(0.5f,0.0f); // glow mix [source mix,glow mix] 105 vec2 glow_large(0.0f,0.0f); // large glow radius [center,corner] 106 vec2 glow_small(0.0f,0.0f); // small glow radius [center,corner] 107 vec2 blur(0.0f,0.0f); // blur radius [center,corner] 108 vec4 copper_copper(0.75f,0.25f,0.42f,4.0f); // copper [base,variable,repeat,color cycle] 109 vec3 copper_mask_color(4.0f,4.0f,4.0f); // color [red,green,blue] 110 vec3 color_filter(1.0f,1.0f,1.0f); // color filter [red,green,blue] 111 vec4 color_color(1.0f,1.0f,0.0f,0.0f); // color modifier [brightness,contrast,level,grayscale] 112 vec2 noise_offset(0.0f,0.0f); // random line [horizontal,vertical] 113 float noise_noise = 0.0f; // noise 114 vec3 noise_retrace(0.0f,0.0f,0.0f); // retrace [strength,length,speed] 115 vec2 postfx_deform(0.0f,0.5f); // deformation [ratio,zoom] 116 float postfx_vignetting = 0.0f; // vignetting strength 117 float postfx_aberration = 0.0f; // chromatic aberration 118 vec4 postfx_ghost1(0.0f,0.0f,0.0f,0.0f); // ghost picture 1 [position x,position y,position z,strength] 119 vec4 postfx_ghost2(0.0f,0.0f,0.0f,0.0f); // ghost picture 2 [position x,position y,position z,strength] 120 vec4 postfx_glass(8.0f,0.0f,0.0f,0.0f); // glass [depth,thickness,strength,deform ratio] 121 vec4 postfx_moire_h(1.0f,0.0f,0.0f,0.0f); // vertical moire [base,variable,repeat,shift] 122 vec4 postfx_moire_v(1.0f,0.0f,0.0f,0.0f); // horizontal moire [base,variable,repeat,shift] 123 vec4 postfx_scanline_h(1.0f,0.0f,0.0f,0.0f); // vertical scanline [base,variable,repeat,shift] 124 vec4 postfx_scanline_v(1.0f,0.0f,0.0f,0.0f); // horizontal scanline [base,variable,repeat,shift] 125 vec3 postfx_corner(0.0f,1.0f,1.0f); // corner [width,radius,blur] 126 vec4 mirror(0.0f,0.0f,0.0f,1.0f); // mirror [width,height,strength,ratio] 127 vec4 radial(4.0f,0.9f,16,0.0f); // radial [distance,fade ratio,iteration,strength] 102 vec2 buffer; // [new frame mix,old frame mix] 103 vec2 remanence; // remanence [source mix,buffer mix] 104 vec2 glow_mix; // glow mix [source mix,glow mix] 105 vec2 glow_large; // large glow radius [center,corner] 106 vec2 glow_small; // small glow radius [center,corner] 107 vec2 blur; // blur radius [center,corner] 108 vec4 copper_copper; // copper [base,variable,repeat,color cycle] 109 vec3 copper_mask_color; // color [red,green,blue] 110 vec3 color_filter; // color filter [red,green,blue] 111 vec4 color_color; // color modifier [brightness,contrast,level,grayscale] 112 vec2 noise_offset; // random line [horizontal,vertical] 113 float noise_noise; // noise 114 vec3 noise_retrace; // retrace [strength,length,speed] 115 vec2 postfx_deform; // deformation [ratio,zoom] 116 float postfx_vignetting; // vignetting strength 117 float postfx_aberration; // chromatic aberration 118 vec4 postfx_ghost1; // ghost picture 1 [position x,position y,position z,strength] 119 vec4 postfx_ghost2; // ghost picture 2 [position x,position y,position z,strength] 120 vec3 postfx_gradient; // gradient [position y,height,strength] 121 vec3 postfx_gradient_color;// gradient color [red,green,blue] 122 vec4 postfx_glass; // glass [depth,thickness,strength,deform ratio] 123 vec4 postfx_moire_h; // vertical moire [base,variable,repeat,shift] 124 vec4 postfx_moire_v; // horizontal moire [base,variable,repeat,shift] 125 vec4 postfx_scanline_h; // vertical scanline [base,variable,repeat,shift] 126 vec4 postfx_scanline_v; // horizontal scanline [base,variable,repeat,shift] 127 vec3 postfx_corner; // corner [width,radius,blur] 128 vec4 mirror; // mirror [width,height,strength,ratio] 129 vec4 radial; // radial [distance,fade ratio,iteration,strength] 128 130 /* theme variable */ 129 int theme_i = 1; // current theme 130 const int theme_n = 2; // theme number 131 int theme_i = 0; // current theme 132 const int theme_n = 4; // theme number 133 int theme_var_key = 0; // theme array key 131 134 /* setup variable */ 132 135 bool setup_switch = false; // switch [option/item] … … 135 138 int setup_cursor = 0; // cursor position 136 139 int setup_option_i = 0; // selected option 137 const int setup_option_n = 1 4; // option number140 const int setup_option_n = 15; // option number 138 141 int setup_option_p = 0; // option position 139 142 int setup_item_i = 0; // selected item … … 141 144 int setup_item_p = 0; // item position 142 145 int setup_item_key = 0; // item array key 143 ivec3 setup_size(29, 9,12);// size [w,h,split]146 ivec3 setup_size(29, 9, 12); // size [w,h,split] 144 147 ivec2 setup_canvas_size(ivec2(setup_size.x + 1, setup_size.y + 1) * font_size * ivec2(2,4)); 145 ivec2 setup_color(0xaaa, 0x222);// color [foreground,background] 0x678,0x234148 ivec2 setup_color(0xaaa, 0x222);// color [foreground,background] 0x678,0x234 146 149 char const *setup_text[]={ 147 150 "main", … … 226 229 "front z", 227 230 "front strength", 231 "gradient", 232 "position", 233 "thickness", 234 "strength", 235 "color r", 236 "color g", 237 "color b", 238 "", 239 "", 228 240 "glass", 229 241 "depth", … … 273 285 }; 274 286 275 vec4 setup_ var[]={ // setup variable [start,end,step,value]287 vec4 setup_conf[]={ // setup variable [start,end,step,value] 276 288 vec4(0), /* main */ 277 vec4(1, 8, 1, ratio_2d.x),278 vec4(1, 8, 1, ratio_2d.y),279 vec4(0, 16, 1, border.x),280 vec4(0, 16, 1, border.y),289 vec4(1, 8, 1, 0), // ratio_2d.x 290 vec4(1, 8, 1, 0), // ratio_2d.y 291 vec4(0, 16, 1, 0), // border.x 292 vec4(0, 16, 1, 0), // border.y 281 293 vec4(0), 282 294 vec4(0), … … 285 297 vec4(0), /* remanence */ 286 298 vec4(0, 1, 1, 1), 287 vec4(0.0f, 1.0f, 0.1f, buffer.x),288 vec4(0.0f, 1.0f, 0.1f, buffer.y),289 vec4(0.0f, 1.0f, 0.1f, remanence.x),290 vec4(0.0f, 1.0f, 0.1f, remanence.y),299 vec4(0.0f, 1.0f, 0.1f, 0), // buffer.x 300 vec4(0.0f, 1.0f, 0.1f, 0), // buffer.y 301 vec4(0.0f, 1.0f, 0.1f, 0), // remanence.x 302 vec4(0.0f, 1.0f, 0.1f, 0), // remanence.y 291 303 vec4(0), 292 304 vec4(0), … … 294 306 vec4(0), /* glow */ 295 307 vec4(0, 1, 1, 1), 296 vec4(0.0f, 1.0f, 0.1f, glow_mix.x),297 vec4(0.0f, 1.0f, 0.1f, glow_mix.y),298 vec4(0.0f, 4.0f, 0.1f, glow_large.x),299 vec4(0.0f, 4.0f, 0.1f, glow_large.y),300 vec4(0.0f, 2.0f, 0.1f, glow_small.x),301 vec4(0.0f, 2.0f, 0.1f, glow_small.y),308 vec4(0.0f, 1.0f, 0.1f, 0), // glow_mix.x 309 vec4(0.0f, 1.0f, 0.1f, 0), // glow_mix.y 310 vec4(0.0f, 4.0f, 0.1f, 0), // glow_large.x 311 vec4(0.0f, 4.0f, 0.1f, 0), // glow_large.y 312 vec4(0.0f, 2.0f, 0.1f, 0), // glow_small.x 313 vec4(0.0f, 2.0f, 0.1f, 0), // glow_small.y 302 314 vec4(0), 303 315 vec4(0), /* blur */ 304 316 vec4(0, 1, 1, 1), 305 vec4(0, 2, 0.05f, blur.x),306 vec4(0, 2, 0.05f, blur.y),317 vec4(0, 2, 0.05f, 0), // blur.x 318 vec4(0, 2, 0.05f, 0), // blur.y 307 319 vec4(0), 308 320 vec4(0), … … 312 324 vec4(0), /* screen */ 313 325 vec4(0, 1, 1, 1), 314 vec4(0.0f, 1.0f, 0.05f, postfx_deform.x),315 vec4(0.2f, 0.7f, 0.01f, postfx_deform.y),316 vec4(0.0f, 4.0f, 0.10f, postfx_corner.x),317 vec4(0.0f, 1.0f, 0.05f, postfx_corner.y),318 vec4(0.8f, 1.0f, 0.01f, postfx_corner.z),319 vec4(0.0f, 1.0f, 0.10f, postfx_vignetting),326 vec4(0.0f, 1.0f, 0.05f, 0), // postfx_deform.x 327 vec4(0.2f, 0.7f, 0.01f, 0), // postfx_deform.y 328 vec4(0.0f, 4.0f, 0.10f, 0), // postfx_corner.x 329 vec4(0.0f, 1.0f, 0.05f, 0), // postfx_corner.y 330 vec4(0.8f, 1.0f, 0.01f, 0), // postfx_corner.z 331 vec4(0.0f, 1.0f, 0.10f, 0), // postfx_vignetting 320 332 vec4(0), 321 333 vec4(0), /* copper */ 322 334 vec4(0, 1, 1, 1), 323 vec4(0.0f, 1.0f, 0.05f, copper_copper.x),324 vec4(0.0f, 1.0f, 0.05f, copper_copper.y),325 vec4(0.0f, 1.0f, 0.02f, copper_copper.z),326 vec4(1.0f, 8.0f, 0.25f, copper_copper.w),327 vec4(0.0f, 4.0f, 0.25f, copper_mask_color.x),328 vec4(0.0f, 4.0f, 0.25f, copper_mask_color.y),329 vec4(0.0f, 4.0f, 0.25f, copper_mask_color.z),335 vec4(0.0f, 1.0f, 0.05f, 0), // copper_copper.x 336 vec4(0.0f, 1.0f, 0.05f, 0), // copper_copper.y 337 vec4(0.0f, 1.0f, 0.02f, 0), // copper_copper.z 338 vec4(1.0f, 8.0f, 0.25f, 0), // copper_copper.w 339 vec4(0.0f, 4.0f, 0.25f, 0), // copper_mask_color.x 340 vec4(0.0f, 4.0f, 0.25f, 0), // copper_mask_color.y 341 vec4(0.0f, 4.0f, 0.25f, 0), // copper_mask_color.z 330 342 vec4(0), /* color */ 331 vec4( 0.0f, 1.0f, 0.05f, color_filter.x),332 vec4( 0.0f, 1.0f, 0.05f, color_filter.y),333 vec4( 0.0f, 1.0f, 0.05f, color_filter.z),334 vec4( 0.0f, 2.0f, 0.05f, color_color.x),335 vec4( 0.0f, 2.0f, 0.05f, color_color.y),336 vec4(-1.0f, 1.0f, 0.05f, color_color.z),337 vec4( 0.0f, 1.0f, 0.05f, color_color.w),338 vec4( 0.0f, 8.0f, 0.50f, postfx_aberration),343 vec4( 0.0f, 1.0f, 0.05f, 0), // color_filter.x 344 vec4( 0.0f, 1.0f, 0.05f, 0), // color_filter.y 345 vec4( 0.0f, 1.0f, 0.05f, 0), // color_filter.z 346 vec4( 0.0f, 2.0f, 0.05f, 0), // color_color.x 347 vec4( 0.0f, 2.0f, 0.05f, 0), // color_color.y 348 vec4(-1.0f, 1.0f, 0.05f, 0), // color_color.z 349 vec4( 0.0f, 1.0f, 0.05f, 0), // color_color.w 350 vec4( 0.0f, 8.0f, 0.50f, 0), // postfx_aberration 339 351 vec4(0), /* noise */ 340 352 vec4(0, 1, 1, 1), 341 vec4(0.0f, 4.0f, 0.50f, noise_offset.x),342 vec4(0.0f, 4.0f, 0.50f, noise_offset.y),343 vec4(0.0f, 0.5f, 0.05f, noise_noise),344 vec4(0.0f, 4.0f, 0.25f, noise_retrace.x),345 vec4(0.0f, 8.0f, 0.50f, noise_retrace.y),346 vec4(0.0f, 4.0f, 0.25f, noise_retrace.z),353 vec4(0.0f, 4.0f, 0.50f, 0), // noise_offset.x 354 vec4(0.0f, 4.0f, 0.50f, 0), // noise_offset.y 355 vec4(0.0f, 0.5f, 0.05f, 0), // noise_noise 356 vec4(0.0f, 4.0f, 0.25f, 0), // noise_retrace.x 357 vec4(0.0f, 8.0f, 0.50f, 0), // noise_retrace.y 358 vec4(0.0f, 4.0f, 0.25f, 0), // noise_retrace.z 347 359 vec4(0), 348 360 vec4(0), /* ghost */ 349 vec4(-2.0f, 2.0f, 0.10f, postfx_ghost1.x), 350 vec4(-2.0f, 2.0f, 0.10f, postfx_ghost1.y), 351 vec4(-2.0f, 2.0f, 0.10f, postfx_ghost1.z), 352 vec4(-1.0f, 1.0f, 0.05f, postfx_ghost1.w), 353 vec4(-2.0f, 2.0f, 0.10f, postfx_ghost2.x), 354 vec4(-2.0f, 2.0f, 0.10f, postfx_ghost2.y), 355 vec4(-2.0f, 2.0f, 0.10f, postfx_ghost2.z), 356 vec4(-1.0f, 1.0f, 0.05f, postfx_ghost2.w), 361 vec4(-2.0f, 2.0f, 0.10f, 0), // postfx_ghost1.x 362 vec4(-2.0f, 2.0f, 0.10f, 0), // postfx_ghost1.y 363 vec4(-2.0f, 2.0f, 0.10f, 0), // postfx_ghost1.z 364 vec4(-1.0f, 1.0f, 0.05f, 0), // postfx_ghost1.w 365 vec4(-2.0f, 2.0f, 0.10f, 0), // postfx_ghost2.x 366 vec4(-2.0f, 2.0f, 0.10f, 0), // postfx_ghost2.y 367 vec4(-2.0f, 2.0f, 0.10f, 0), // postfx_ghost2.z 368 vec4(-1.0f, 1.0f, 0.05f, 0), // postfx_ghost2.w 369 vec4(0), /* gradient */ 370 vec4( 0.0f, 1.0f, 0.05f, 0), // postfx_gradient.x 371 vec4( 0.0f, 0.5f, 0.05f, 0), // postfx_gradient.y 372 vec4(-0.5f, 0.5f, 0.05f, 0), // postfx_gradient.z 373 vec4( 0.0f, 1.0f, 0.05f, 0), // postfx_gradient_color.x 374 vec4( 0.0f, 1.0f, 0.05f, 0), // postfx_gradient_color.y 375 vec4( 0.0f, 1.0f, 0.05f, 0), // postfx_gradient_color.z 376 vec4(0), 377 vec4(0), 357 378 vec4(0), /* glass */ 358 vec4(0.0f, 16.0f, 0.50f, postfx_glass.x),359 vec4(0.0f, 1.0f, 0.05f, postfx_glass.y),360 vec4(0.0f, 2.0f, 0.05f, postfx_glass.z),361 vec4(0.0f, 1.0f, 0.05f, postfx_glass.w),379 vec4(0.0f, 16.0f, 0.50f, 0), // postfx_glass.x 380 vec4(0.0f, 1.0f, 0.05f, 0), // postfx_glass.y 381 vec4(0.0f, 2.0f, 0.05f, 0), // postfx_glass.z 382 vec4(0.0f, 1.0f, 0.05f, 0), // postfx_glass.w 362 383 vec4(0), 363 384 vec4(0), … … 365 386 vec4(0), 366 387 vec4(0), /* moire */ 367 vec4( 0.5f, 1.0f, 0.05f, postfx_moire_h.x),368 vec4(-0.5f, 0.5f, 0.05f, postfx_moire_h.y),369 vec4( 0.0f, 4.0f, 0.50f, postfx_moire_h.z),370 vec4( 0.0f, 4.0f, 0.50f, postfx_moire_h.w),371 vec4( 0.5f, 1.0f, 0.05f, postfx_moire_v.x),372 vec4(-0.5f, 0.5f, 0.05f, postfx_moire_v.y),373 vec4( 0.0f, 4.0f, 0.50f, postfx_moire_v.z),374 vec4( 0.0f, 4.0f, 0.50f, postfx_moire_v.w),388 vec4( 0.5f, 1.0f, 0.05f, 0), // postfx_moire_h.x 389 vec4(-0.5f, 0.5f, 0.05f, 0), // postfx_moire_h.y 390 vec4( 0.0f, 4.0f, 0.50f, 0), // postfx_moire_h.z 391 vec4( 0.0f, 4.0f, 0.50f, 0), // postfx_moire_h.w 392 vec4( 0.5f, 1.0f, 0.05f, 0), // postfx_moire_v.x 393 vec4(-0.5f, 0.5f, 0.05f, 0), // postfx_moire_v.y 394 vec4( 0.0f, 4.0f, 0.50f, 0), // postfx_moire_v.z 395 vec4( 0.0f, 4.0f, 0.50f, 0), // postfx_moire_v.w 375 396 vec4(0), /* scanline */ 376 vec4( 0.5f, 1.0f, 0.05f, postfx_scanline_h.x),377 vec4(-0.5f, 0.5f, 0.05f, postfx_scanline_h.y),378 vec4( 0.0f, 4.0f, 0.50f, postfx_scanline_h.z),379 vec4( 0.0f, 4.0f, 0.50f, postfx_scanline_h.w),380 vec4( 0.5f, 1.0f, 0.05f, postfx_scanline_v.x),381 vec4(-0.5f, 0.5f, 0.05f, postfx_scanline_v.y),382 vec4( 0.0f, 4.0f, 0.50f, postfx_scanline_v.z),383 vec4( 0.0f, 4.0f, 0.50f, postfx_scanline_v.w),397 vec4( 0.5f, 1.0f, 0.05f, 0), // postfx_scanline_h.x 398 vec4(-0.5f, 0.5f, 0.05f, 0), // postfx_scanline_h.y 399 vec4( 0.0f, 4.0f, 0.50f, 0), // postfx_scanline_h.z 400 vec4( 0.0f, 4.0f, 0.50f, 0), // postfx_scanline_h.w 401 vec4( 0.5f, 1.0f, 0.05f, 0), // postfx_scanline_v.x 402 vec4(-0.5f, 0.5f, 0.05f, 0), // postfx_scanline_v.y 403 vec4( 0.0f, 4.0f, 0.50f, 0), // postfx_scanline_v.z 404 vec4( 0.0f, 4.0f, 0.50f, 0), // postfx_scanline_v.w 384 405 vec4(0), /* mirror */ 385 406 vec4(0, 1, 1, 1), 386 vec4(0.0f, 2.0f, 0.05f, mirror.x),387 vec4(0.0f, 2.0f, 0.05f, mirror.y),388 vec4(0.0f, 1.0f, 0.05f, mirror.z),389 vec4(1.0f, 8.0f, 1.00f, mirror.w),407 vec4(0.0f, 2.0f, 0.05f, 0), // mirror.x 408 vec4(0.0f, 2.0f, 0.05f, 0), // mirror.y 409 vec4(0.0f, 1.0f, 0.05f, 0), // mirror.z 410 vec4(1.0f, 8.0f, 1.00f, 0), // mirror.w 390 411 vec4(0), 391 412 vec4(0), … … 393 414 vec4(0), /* radial blur */ 394 415 vec4(0, 1, 1, 1), 395 vec4(2.0f, 8.0f, 0.25f, radial.x),396 vec4(0.8f, 1.0f, 0.01f, radial.y),397 vec4(2.0f,32.0f, 2.00f, radial.z),398 vec4(0.0f, 1.0f, 0.05f, radial.w),416 vec4(2.0f, 8.0f, 0.25f, 0), // radial.x 417 vec4(0.8f, 1.0f, 0.01f, 0), // radial.y 418 vec4(2.0f,32.0f, 2.00f, 0), // radial.z 419 vec4(0.0f, 1.0f, 0.05f, 0), // radial.w 399 420 vec4(0), 400 421 vec4(0), … … 448 469 0.0f,0.0f,0.0f,0.0f, // postfx_ghost2 449 470 0, 471 0.5f,0.0f,0.0f , // postfx_gradient 472 0.0f,0.0f,0.0f, // postfx_gradient_color 473 0,0, 474 0, 450 475 8.0f,0.0f,0.0f,0.0f, // postfx_glass 451 476 0,0,0,0, … … 462 487 0, 463 488 1, // m_shader_radial 464 4.0f,0.9f,1 6,0.0f,// radial489 4.0f,0.9f,1,0.0f, // radial 465 490 0,0,0, 466 /* crt */ 491 /* crt */ 492 0, 467 493 2,3, // ratio_2d 468 494 2,1, // border 495 0,0,0,0, 496 0, 497 1, // m_shader_remanence 469 498 0.2f,0.8f, // buffer 470 499 0.6f,0.4f, // remanence 500 0,0,0, 501 0, 502 1, // m_shader_glow 471 503 0.7f,0.3f, // glow_mix 472 504 3.0f,0.0f, // glow_large 473 505 1.5f,0.0f, // glow_small 506 0, 507 0, 508 1, // m_shader_blur 474 509 0.5f,0.0f, // blur 510 0,0,0,0,0, 511 0, 512 1, // m_shader_postfx 475 513 0.8f,0.48f, // postfx_deform 476 514 0.0f,0.8f,0.96f, // postfx_corner 477 515 0.5f, // postfx_vignetting 516 0, 517 0, 518 1, // m_shader_copper 478 519 0.75f,0.25f,0.42f,4.0f, // copper_copper 479 520 4.0f,4.0f,4.0f, // copper_mask_color 521 0, 480 522 0.9f,0.95f,0.85f, // color_filter 481 523 1.0f,1.25f,0.1f,0.4f, // color_color 482 524 4.0f, // postfx_aberration 525 0, 526 1, // m_shader_noise 483 527 1.0f,1.0f, // noise_offset 484 528 0.15f, // noise_noise 485 529 1.0f,1.0f,0.5f, // noise_retrace 530 0, 531 0, 486 532 1.0f,0.0f,0.0f,-0.25f, // postfx_ghost1 487 533 1.5f,0.0f,0.0f,0.25f, // postfx_ghost2 534 0, 535 0.5f,0.25f,0.05f, // postfx_gradient 536 0.9f,0.8f,0.5f, // postfx_gradient_color 537 0,0, 538 0, 488 539 8.0f,0.25f,0.75f,0.2f, // postfx_glass 540 0,0,0,0, 541 0, 489 542 0.75f,-0.25f,0.0f,1.0f, // postfx_moire_h 490 543 0.75f,-0.25f,1.0f,2.0f, // postfx_moire_v 544 0, 491 545 1.0f,0.0f,0.0f,0.0f, // postfx_scanline_h 492 546 0.75f,-0.25f,2.0f,0.0f, // postfx_scanline_v 493 0.95f,0.9f,0.4f,4.0f, // mirror 547 0, 548 1, // m_shader_mirror 549 0.95f,0.9f,0.5f,4.0f, // mirror 550 0,0,0, 551 0, 552 1, // m_shader_radial 494 553 4.0f,0.9f,16,0.25f, // radial 495 /* green screen */ 496 /* granpa tv */ 497 0.0f 498 }; 499 500 void Render::InitVar() 554 0,0,0, 555 /* green screen */ 556 0, 557 2,4, // ratio_2d 558 1,0, // border 559 0,0,0,0, 560 0, 561 1, // m_shader_remanence 562 0.2f,0.8f, // buffer 563 0.6f,0.4f, // remanence 564 0,0,0, 565 0, 566 1, // m_shader_glow 567 0.4f,0.6f, // glow_mix 568 4.0f,0.0f, // glow_large 569 2.0f,0.0f, // glow_small 570 0, 571 0, 572 1, // m_shader_blur 573 0.5f,0.0f, // blur 574 0,0,0,0,0, 575 0, 576 1, // m_shader_postfx 577 0.7f,0.5f, // postfx_deform 578 0.0f,0.85f,0.98f, // postfx_corner 579 0.5f, // postfx_vignetting 580 0, 581 0, 582 1, // m_shader_copper 583 0.75f,0.25f,0.42f,4.0f, // copper_copper 584 4.0f,4.0f,4.0f, // copper_mask_color 585 0, 586 1.0f,0.75f,0.0f, // color_filter 587 1.0f,1.25f,0.2f,1.0f, // color_color 588 1.5f, // postfx_aberration 589 0, 590 1, // m_shader_noise 591 1.0f,0.0f, // noise_offset 592 0.25f, // noise_noise 593 1.0f,2.0f,2.0f, // noise_retrace 594 0, 595 0, 596 1.0f,0.0f,0.0f,-0.25f, // postfx_ghost1 597 1.5f,0.0f,0.0f,0.25f, // postfx_ghost2 598 0, 599 0.5f,0.15f,0.05f, // postfx_gradient 600 0.8f,0.8f,0.8f, // postfx_gradient_color 601 0,0, 602 0, 603 8.0f,0.0f,0.0f,0.0f, // postfx_glass 604 0,0,0,0, 605 0, 606 1.0f,0.0f,0.0f,0.0f, // postfx_moire_h 607 1.0f,0.0f,0.0f,0.0f, // postfx_moire_v 608 0, 609 0.6f,0.4f,3.5f,0.0f, // postfx_scanline_h 610 0.9f,0.1f,2.5f,0.0f, // postfx_scanline_v 611 0, 612 1, // m_shader_mirror 613 0.6f,0.6f,0.5f,4.0f, // mirror 614 0,0,0, 615 0, 616 1, // m_shader_radial 617 4.0f,0.84f,16,0.25f, // radial 618 0,0,0, 619 /* lcd */ 620 0, 621 2,2, // ratio_2d 622 1,1, // border 623 0,0,0,0, 624 0, 625 1, // m_shader_remanence 626 0.2f,0.8f, // buffer 627 0.2f,0.8f, // remanence 628 0,0,0, 629 0, 630 1, // m_shader_glow 631 0.6f,0.4f, // glow_mix 632 3.0f,0.0f, // glow_large 633 1.5f,0.0f, // glow_small 634 0, 635 0, 636 1, // m_shader_blur 637 0.25f,0.0f, // blur 638 0,0,0,0,0, 639 0, 640 1, // m_shader_postfx 641 0.0f,0.5f, // postfx_deform 642 0.0f,1.0f,1.0f, // postfx_corner 643 0.0f, // postfx_vignetting 644 0, 645 0, 646 1, // m_shader_copper 647 0.75f,0.25f,0.42f,4.0f, // copper_copper 648 4.0f,4.0f,4.0f, // copper_mask_color 649 0, 650 1.0f,1.0f,0.9f, // color_filter 651 0.9f,1.1f,0.1f,0.0f, // color_color 652 3.0f, // postfx_aberration 653 0, 654 1, // m_shader_noise 655 0.0f,0.0f, // noise_offset 656 0.15f, // noise_noise 657 0.0f,0.0f,0.0f, // noise_retrace 658 0, 659 0, 660 0.0f,0.0f,0.0f,0.0f, // postfx_ghost1 661 0.0f,0.0f,0.0f,0.0f, // postfx_ghost2 662 0, 663 0.5f,0.0f,0.0f , // postfx_gradient 664 0.0f,0.0f,0.0f, // postfx_gradient_color 665 0,0, 666 0, 667 8.0f,0.0f,0.0f,0.0f, // postfx_glass 668 0,0,0,0, 669 0, 670 1.0f,0.0f,0.0f,0.0f, // postfx_moire_h 671 1.0f,0.0f,0.0f,0.0f, // postfx_moire_v 672 0, 673 0.85f,0.15f,2.0f,0.0f, // postfx_scanline_h 674 0.85f,0.15f,2.0f,0.0f, // postfx_scanline_v 675 0, 676 1, // m_shader_mirror 677 0.0f,0.0f,0.0f,1.0f, // mirror 678 0,0,0, 679 0, 680 1, // m_shader_radial 681 4.0f,0.9f,1,0.0f, // radial 682 0,0,0, 683 /* granpa tv */ 684 /* intex system 4000 */ 685 0}; 686 687 void Render::InitShaderVar() 501 688 { 502 int k = theme_i * setup_option_n * 8+ 1; /* main */689 int k = theme_i * setup_option_n * 9 + 1; /* main */ 503 690 ratio_2d = vec2(theme_var[k], theme_var[k + 1]); k += 2; 504 691 border = vec2(theme_var[k], theme_var[k + 1]); k += 2; … … 536 723 postfx_ghost1 = vec4(theme_var[k], theme_var[k + 1], theme_var[k + 2], theme_var[k + 3]); k += 4; 537 724 postfx_ghost2 = vec4(theme_var[k], theme_var[k + 1], theme_var[k + 2], theme_var[k + 3]); k += 4; 538 k += 1; /* glass */ 725 k += 1; /* gradient */ 726 postfx_gradient = vec3(theme_var[k], theme_var[k + 1], theme_var[k + 2]); k += 3; 727 postfx_gradient_color = vec3(theme_var[k], theme_var[k + 1], theme_var[k + 2]); k += 3; 728 k += 3; /* glass */ 539 729 postfx_glass = vec4(theme_var[k], theme_var[k + 1], theme_var[k + 2], theme_var[k + 3]); k += 4; 540 730 k += 5; /* moire */ … … 550 740 m_shader_radial = (theme_var[k] == 1) ? true : false; k++; 551 741 radial = vec4(theme_var[k], theme_var[k + 1], theme_var[k + 2], theme_var[k + 3]); k += 4; 552 }553 554 void Render::SetupVar()555 {556 }557 558 void Render::UpdateVar()559 {560 int k = 1; /* main */561 ratio_2d = vec2(setup_var[k].w, setup_var[k + 1].w); k += 2;562 border = vec2(setup_var[k].w, setup_var[k + 1].w); k += 2;563 k += 5; /* remanence */564 m_shader_remanence = (setup_var[k].w == 1) ? true : false; k++;565 buffer = vec2(setup_var[k].w, setup_var[k + 1].w); k += 2;566 remanence = vec2(setup_var[k].w, setup_var[k + 1].w); k += 2;567 k += 4; /* glow */568 m_shader_glow = (setup_var[k].w == 1) ? true : false; k++;569 glow_mix = vec2(setup_var[k].w, setup_var[k + 1].w); k += 2;570 glow_large = vec2(setup_var[k].w, setup_var[k + 1].w); k += 2;571 glow_small = vec2(setup_var[k].w, setup_var[k + 1].w); k += 2;572 k += 2; /* blur */573 m_shader_blur = (setup_var[k].w == 1) ? true : false; k++;574 blur = vec2(setup_var[k].w, setup_var[k + 1].w); k += 2;575 k += 6; /* screen */576 m_shader_postfx = (setup_var[k].w == 1) ? true : false; k++;577 postfx_deform = vec2(setup_var[k].w, setup_var[k + 1].w); k += 2;578 postfx_corner = vec3(setup_var[k].w, setup_var[k + 1].w, setup_var[k + 2].w); k += 3;579 postfx_vignetting = setup_var[k].w; k++;580 k += 2; /* copper */581 m_shader_copper = (setup_var[k].w == 1) ? true : false; k++;582 copper_copper = vec4(setup_var[k].w, setup_var[k + 1].w, setup_var[k + 2].w, setup_var[k + 3].w); k += 4;583 copper_mask_color = vec3(setup_var[k].w, setup_var[k + 1].w, setup_var[k + 2].w); k += 3;584 k += 1; /* color */585 color_filter = vec3(setup_var[k].w, setup_var[k + 1].w, setup_var[k + 2].w); k += 3;586 color_color = vec4(setup_var[k].w, setup_var[k + 1].w, setup_var[k + 2].w, setup_var[k + 3].w); k += 4;587 postfx_aberration = setup_var[k].w; k++;588 k += 1; /* noise */589 m_shader_noise = (setup_var[k].w == 1) ? true : false; k++;590 noise_offset = vec2(setup_var[k].w, setup_var[k + 1].w); k += 2;591 noise_noise = setup_var[k].w; k++;592 noise_retrace = vec3(setup_var[k].w, setup_var[k + 1].w, setup_var[k + 2].w); k += 3;593 k += 2; /* ghost */594 postfx_ghost1 = vec4(setup_var[k].w, setup_var[k + 1].w, setup_var[k + 2].w, setup_var[k + 3].w); k += 4;595 postfx_ghost2 = vec4(setup_var[k].w, setup_var[k + 1].w, setup_var[k + 2].w, setup_var[k + 3].w); k += 4;596 k += 1; /* glass */597 postfx_glass = vec4(setup_var[k].w, setup_var[k + 1].w, setup_var[k + 2].w, setup_var[k + 3].w); k += 4;598 k += 5; /* moire */599 postfx_moire_h = vec4(setup_var[k].w, setup_var[k + 1].w, setup_var[k + 2].w, setup_var[k + 3].w); k += 4;600 postfx_moire_v = vec4(setup_var[k].w, setup_var[k + 1].w, setup_var[k + 2].w, setup_var[k + 3].w); k += 4;601 k += 1; /* scanline */602 postfx_scanline_h = vec4(setup_var[k].w, setup_var[k + 1].w, setup_var[k + 2].w, setup_var[k + 3].w); k += 4;603 postfx_scanline_v = vec4(setup_var[k].w, setup_var[k + 1].w, setup_var[k + 2].w, setup_var[k + 3].w); k += 4;604 k += 1; /* mirror */605 m_shader_mirror = (setup_var[k].w == 1) ? true : false; k++;606 mirror = vec4(setup_var[k].w, setup_var[k + 1].w, setup_var[k + 2].w, setup_var[k + 3].w); k += 4;607 k += 4; /* radial blur */608 m_shader_radial = (setup_var[k].w == 1) ? true : false; k++;609 radial = vec4(setup_var[k].w, setup_var[k + 1].w, setup_var[k + 2].w, setup_var[k + 3].w); k += 4;610 742 } 611 743 … … 676 808 shader_postfx_glass, 677 809 shader_postfx_vignetting, 810 shader_postfx_gradient, 811 shader_postfx_gradient_color, 678 812 shader_postfx_aberration, 679 813 shader_postfx_moire_h, … … 776 910 shader_postfx_ghost2 = shader_postfx->GetUniformLocation("ghost2"); 777 911 shader_postfx_glass = shader_postfx->GetUniformLocation("glass"); 912 shader_postfx_gradient = shader_postfx->GetUniformLocation("gradient"); 913 shader_postfx_gradient_color = shader_postfx->GetUniformLocation("gradient_color"); 778 914 shader_postfx_vignetting = shader_postfx->GetUniformLocation("vignetting"); 779 915 shader_postfx_aberration = shader_postfx->GetUniformLocation("aberration"); … … 802 938 int Render::CreateGLWindow() 803 939 { 804 InitVar(); 805 SetupVar(); 806 UpdateVar(); 940 InitShaderVar(); 807 941 UpdateSize(); 808 942 InitDraw(); … … 889 1023 int y = setup_size.y; 890 1024 setup_item_key = setup_option_i * (setup_item_n + 1) + 1 + setup_item_i; 1025 theme_var_key = theme_i * setup_option_n * 9 + setup_item_key; 891 1026 caca_set_color_argb(m_cv_setup, setup_color.y, setup_color.x); 892 1027 caca_draw_line(m_cv_setup, 0, y, setup_size.x, y,' '); … … 895 1030 int x = 1; 896 1031 int w = setup_size.x - 3 - 4; 897 float bar_w = w / (setup_ var[setup_item_key].y - setup_var[setup_item_key].x);898 int bar_x = bar_w * setup_ var[setup_item_key].x;899 if ((setup_ var[setup_item_key].y - setup_var[setup_item_key].x) / setup_var[setup_item_key].z > 1)1032 float bar_w = w / (setup_conf[setup_item_key].y - setup_conf[setup_item_key].x); 1033 int bar_x = bar_w * setup_conf[setup_item_key].x; 1034 if ((setup_conf[setup_item_key].y - setup_conf[setup_item_key].x) / setup_conf[setup_item_key].z > 1) 900 1035 { 901 /* Work around a bug in libcaca */902 if (setup_size.x - 4 < caca_get_canvas_width(m_cv_setup)) caca_printf(m_cv_setup, setup_size.x - 4, y, "%4.2f", setup_var[setup_item_key].w);903 caca_draw_line(m_cv_setup, x, y, x - bar_x + int(bar_w * setup_ var[setup_item_key].y), y,'.');904 if ( setup_var[setup_item_key].w != setup_var[setup_item_key].x) caca_draw_line(m_cv_setup, x, y, x - bar_x + int(bar_w * setup_var[setup_item_key].w), y, 'x');1036 /* work around a bug in libcaca */ 1037 if (setup_size.x - 4 < caca_get_canvas_width(m_cv_setup)) caca_printf(m_cv_setup, setup_size.x - 4, y, "%4.2f", theme_var[theme_var_key]); 1038 caca_draw_line(m_cv_setup, x, y, x - bar_x + int(bar_w * setup_conf[setup_item_key].y), y,'.'); 1039 if (theme_var[theme_var_key] != setup_conf[setup_item_key].x) caca_draw_line(m_cv_setup, x, y, x - bar_x + int(bar_w * theme_var[theme_var_key]), y, 'x'); 905 1040 } 906 1041 else 907 1042 { 908 if (setup_ var[setup_item_key] != vec4(0))909 { 910 caca_put_str(m_cv_setup, setup_size.x - 3, y, ( setup_var[setup_item_key].w == setup_var[setup_item_key].y)?"YES":" NO");1043 if (setup_conf[setup_item_key] != vec4(0)) 1044 { 1045 caca_put_str(m_cv_setup, setup_size.x - 3, y, (theme_var[theme_var_key] == setup_conf[setup_item_key].y)?"YES":" NO"); 911 1046 } 912 1047 } … … 961 1096 theme_i--; 962 1097 if(theme_i < 0) theme_i = theme_n - 1; 963 InitVar(); 964 SetupVar(); 965 UpdateVar(); 1098 InitShaderVar(); 966 1099 UpdateSize(); 967 1100 } … … 969 1102 { 970 1103 theme_i++; 971 if(theme_i > theme_n) theme_i = 0; 972 InitVar(); 973 SetupVar(); 974 UpdateVar(); 1104 if(theme_i > theme_n - 1) theme_i = 0; 1105 InitShaderVar(); 975 1106 UpdateSize(); 976 1107 } … … 1186 1317 if (g_setup && setup_switch) 1187 1318 { 1188 setup_var[setup_item_key].w -= setup_var[setup_item_key].z;1189 if ( setup_var[setup_item_key].w < setup_var[setup_item_key].x) setup_var[setup_item_key].w = setup_var[setup_item_key].x;1190 UpdateVar();1319 theme_var[theme_var_key] -= setup_conf[setup_item_key].z; 1320 if (theme_var[theme_var_key] < setup_conf[setup_item_key].x) theme_var[theme_var_key] = setup_conf[setup_item_key].x; 1321 InitShaderVar(); 1191 1322 UpdateSize(); 1192 1323 } … … 1196 1327 if (g_setup && setup_switch) 1197 1328 { 1198 setup_var[setup_item_key].w += setup_var[setup_item_key].z;1199 if ( setup_var[setup_item_key].w > setup_var[setup_item_key].y) setup_var[setup_item_key].w = setup_var[setup_item_key].y;1200 UpdateVar();1329 theme_var[theme_var_key] += setup_conf[setup_item_key].z; 1330 if (theme_var[theme_var_key] > setup_conf[setup_item_key].y) theme_var[theme_var_key] = setup_conf[setup_item_key].y; 1331 InitShaderVar(); 1201 1332 UpdateSize(); 1202 1333 } … … 1206 1337 if (g_setup && setup_switch) 1207 1338 { 1208 setup_var[setup_item_key].w = setup_var[setup_item_key].x;1209 UpdateVar();1339 theme_var[theme_var_key] = setup_conf[setup_item_key].x; 1340 InitShaderVar(); 1210 1341 UpdateSize(); 1211 1342 } … … 1215 1346 if (g_setup && setup_switch) 1216 1347 { 1217 setup_var[setup_item_key].w = setup_var[setup_item_key].y;1218 UpdateVar();1348 theme_var[theme_var_key] = setup_conf[setup_item_key].y; 1349 InitShaderVar(); 1219 1350 UpdateSize(); 1220 1351 } … … 1511 1642 shader_postfx->SetUniform(shader_postfx_ghost2, vec4(postfx_ghost2.x * 0.01, postfx_ghost2.y * 0.01, postfx_ghost2.z * 0.01, postfx_ghost2.w)); 1512 1643 shader_postfx->SetUniform(shader_postfx_glass, vec4(postfx_glass.x * 0.01, postfx_glass.y * 0.01, postfx_glass.z * 0.1, postfx_glass.w)); 1644 shader_postfx->SetUniform(shader_postfx_gradient, postfx_gradient); 1645 shader_postfx->SetUniform(shader_postfx_gradient_color, postfx_gradient_color); 1513 1646 shader_postfx->SetUniform(shader_postfx_vignetting, postfx_vignetting); 1514 1647 shader_postfx->SetUniform(shader_postfx_aberration, postfx_aberration);
Note: See TracChangeset
for help on using the changeset viewer.