#N canvas 52 79 668 661 10;
#X obj 78 339 glsl_vertex;
#X msg 32 338 print;
#X obj 78 626 glsl_program;
#X obj 163 555 pack 0 0;
#X msg 30 476 print;
#X obj 163 511 change;
#X obj 150 358 change;
#X msg 163 579 link \$1 \$2;
#X msg 32 620 print;
#X obj 77 490 glsl_fragment;
#X floatatom 163 535 2 0 0 0 ID - -;
#X floatatom 150 381 2 0 0 0 ID - -;
#X obj 181 600 print linking;
#X obj 15 21 inlet;
#X obj 78 662 outlet;
#X msg 106 309 open \$1.vert;
#X msg 90 453 open \$1.frag;
#X obj 577 95 inlet;
#X obj 15 44 route bang;
#X obj 255 11 gemhead 1;
#X msg 255 33 1;
#X obj 255 57 change;
#X obj 255 81 t b;
#X obj 157 647 change;
#X obj 157 668 t b;
#X obj 158 690 outlet;
#X obj 140 224 t a a;
#X obj 90 426 symbol;
#X obj 90 401 t b;
#X msg 287 598 0;
#X obj 15 65 t b b b, f 29;
#X obj 140 199 symbol \$1;
#X text 270 193 This abstraction can be useful to load shader. Shader
location is relative to this abstraction path.;
#X connect 0 0 9 0;
#X connect 0 1 6 0;
#X connect 1 0 0 0;
#X connect 2 0 14 0;
#X connect 2 1 23 0;
#X connect 3 0 7 0;
#X connect 4 0 9 0;
#X connect 5 0 10 0;
#X connect 6 0 11 0;
#X connect 6 0 28 0;
#X connect 7 0 2 0;
#X connect 7 0 12 0;
#X connect 8 0 2 0;
#X connect 9 0 2 0;
#X connect 9 1 5 0;
#X connect 10 0 3 0;
#X connect 11 0 3 1;
#X connect 13 0 18 0;
#X connect 15 0 0 0;
#X connect 16 0 9 0;
#X connect 17 0 2 0;
#X connect 18 0 30 0;
#X connect 18 1 0 0;
#X connect 19 0 20 0;
#X connect 20 0 21 0;
#X connect 21 0 22 0;
#X connect 22 0 31 0;
#X connect 23 0 24 0;
#X connect 24 0 25 0;
#X connect 26 0 15 0;
#X connect 26 1 27 1;
#X connect 27 0 16 0;
#X connect 28 0 27 0;
#X connect 29 0 23 0;
#X connect 30 0 10 0;
#X connect 30 1 31 0;
#X connect 30 2 29 0;
#X connect 31 0 26 0;
