#N canvas 10 10 599 681 10; #X obj 316 488 pix_snap2tex; #X msg 356 461 0 0; #X msg 402 460 500 500; #X obj 356 438 t b b; #X obj 316 513 alpha; #X obj 316 563 square 4; #X msg 52 75 frame \$1; #X floatatom 52 57 5 0 0 0 - - -; #X obj 356 419 loadbang; #X msg 271 95 print; #X obj 316 370 glsl_program; #X obj 389 296 pack 0 0; #X msg 273 177 print; #X obj 410 276 t b f; #X obj 410 231 change; #X obj 388 136 change; #X msg 389 321 link \$1 \$2; #X msg 272 333 print; #X floatatom 410 257 2 0 0 0 ID - -; #X floatatom 388 159 2 0 0 0 ID - -; #X obj 407 342 print linking; #X obj 316 211 glsl_fragment; #X obj 316 117 glsl_vertex; #X obj 338 68 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 316 37 gemhead -1; #X obj 316 537 colorRGB 1 1 1 1; #X msg 330 95 open game.vert; #X msg 327 181 open game.frag; #X obj 39 259 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X obj 39 281 gemhead 50; #X obj 39 311 translateXYZ 0 0 1; #X obj 39 409 rectangle; #X obj 39 216 loadbang; #X msg 39 237 0; #X text 157 261 <- 3; #X text 375 69 <- 2 : load shader; #X obj 316 392 t b a; #X floatatom 69 362 5 0 0 0 - - -; #X floatatom 124 363 5 0 0 0 - - -; #X obj 69 381 / 100; #X obj 124 384 / 100; #X text 13 634 This is an example of iterative process : the output of the shader is used for next frame input; #X text 145 140 <----- 1; #N canvas 87 154 247 179 Gem.init 0; #X obj 118 46 loadbang; #X msg 118 81 reset; #X obj 118 113 outlet; #X connect 0 0 1 0; #X connect 1 0 2 0; #X restore 82 100 pd Gem.init; #N canvas 340 107 682 322 gemwin 0; #X obj 102 122 tgl 15 0 \$0-gemstart \$0-gemstart empty 17 7 0 10 -262144 -1 -1 0 1; #X obj 102 161 r \$0-gemstart; #X obj 102 182 select 1 0; #X msg 102 214 create \, 1; #X msg 177 215 destroy; #X obj 102 239 t a; #X obj 318 54 inlet; #X obj 318 255 gemwin; #X obj 318 100 t a a; #X obj 318 287 outlet; #X obj 350 128 route create destroy; #X obj 350 150 t b; #X msg 350 172 1; #X obj 390 150 t b; #X msg 390 172 0; #X obj 350 195 t f; #X msg 350 219 set \$1; #X text 118 122 rendering; #X connect 1 0 2 0; #X connect 2 0 3 0; #X connect 2 1 4 0; #X connect 3 0 5 0; #X connect 4 0 5 0; #X connect 5 0 8 0; #X connect 6 0 8 0; #X connect 7 0 9 0; #X connect 8 0 7 0; #X connect 8 1 10 0; #X connect 10 0 11 0; #X connect 10 1 13 0; #X connect 11 0 12 0; #X connect 12 0 15 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 15 0 16 0; #X connect 16 0 0 0; #X coords 0 -1 1 1 85 40 1 100 100; #X restore 52 117 pd gemwin; #X connect 0 0 4 0; #X connect 1 0 0 1; #X connect 2 0 0 2; #X connect 3 0 1 0; #X connect 3 1 2 0; #X connect 4 0 25 0; #X connect 6 0 44 0; #X connect 7 0 6 0; #X connect 8 0 3 0; #X connect 9 0 22 0; #X connect 10 0 36 0; #X connect 11 0 16 0; #X connect 12 0 21 0; #X connect 13 0 11 0; #X connect 13 1 11 1; #X connect 14 0 18 0; #X connect 15 0 19 0; #X connect 16 0 10 0; #X connect 16 0 20 0; #X connect 17 0 10 0; #X connect 18 0 13 0; #X connect 19 0 11 0; #X connect 21 0 10 0; #X connect 21 1 14 0; #X connect 22 0 21 0; #X connect 22 1 15 0; #X connect 23 0 26 0; #X connect 23 0 27 0; #X connect 24 0 22 0; #X connect 25 0 5 0; #X connect 26 0 22 0; #X connect 27 0 21 0; #X connect 28 0 29 0; #X connect 29 0 30 0; #X connect 30 0 31 0; #X connect 32 0 33 0; #X connect 33 0 28 0; #X connect 36 0 0 0; #X connect 36 1 0 0; #X connect 37 0 39 0; #X connect 38 0 40 0; #X connect 39 0 31 1; #X connect 40 0 31 2; #X connect 43 0 44 0;