#N canvas 10 61 599 681 10;
#X declare -lib Gem;
#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 obj 484 13 declare -lib Gem;
#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;