#N canvas 30 89 960 649 10; #X declare -lib Gem; #X text 742 8 GEM object; #X obj 8 438 cnv 15 430 150 empty empty empty 20 12 0 14 -233017 -66577 0; #X text 18 440 Inlets:; #X text 18 558 Outlets:; #X text 36 571 Outlet 1: gemlist; #X obj 8 393 cnv 15 430 40 empty empty empty 20 12 0 14 -195568 -66577 0; #X text 17 398 Arguments:; #X obj 8 76 cnv 15 430 310 empty empty empty 20 12 0 14 -233017 -66577 0; #X text 50 12 Synopsis: [gemhead]; #X text 71 31 Class: control object; #X text 29 77 Description: start a rendering chain; #X obj 607 371 cnv 15 140 65 empty empty empty 20 12 0 14 -195568 -66577 0; #X msg 622 391 create; #X text 618 370 Create window:; #N canvas 0 50 450 300 gemwin 0; #X obj 132 136 gemwin; #X obj 67 89 outlet; #X obj 67 10 inlet; #X obj 67 41 route create; #X msg 67 70 set destroy; #X msg 142 68 set create; #X msg 132 93 create \, 1 \, frame 2; #X msg 198 112 destroy \, reset; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 3 0 6 0; #X connect 3 1 5 0; #X connect 3 1 7 0; #X connect 4 0 1 0; #X connect 5 0 1 0; #X connect 6 0 0 0; #X connect 7 0 0 0; #X restore 622 411 pd gemwin (2fps); #X text 21 91 [gemhead] connects the gem objects to the window manager. The start of any gemList begins with the gemhead. Without the gemhead \, gem objects will not receive the render command.; #X text 20 366 example: "1" before "50" before "-10" before "-23"; #X text 22 149 Any gem object connected after the gemhead will receive one render command per frame.; #X text 20 294 The rendering-order value can also be negative. Negative numbered [gemhead]s will be rendered AFTER all positive [gemhead]s. Note \, that Higher values (-3) will be rendered BEFORE lower values (-10). [gemhead]s with negative numbers will NOT be affected by view-point changes !!!; #X text 62 409 float : priority (default : 50); #X text 42 471 Inlet 1: bang : force rendering now.; #X text 42 453 Inlet 1: float (1/0): turn rendering on/off (default 1); #X text 42 490 Inlet 1: set : change priority value of this chain.; #X obj 442 74 cnv 15 160 240 empty empty empty 20 12 0 14 -233017 -66577 0; #X text 451 79 enable/disable rendering; #X obj 451 123 cnv 15 100 40 empty empty empty 20 12 0 14 -24198 -66577 0; #X msg 470 240 gemList; #X obj 470 134 gemhead; #X msg 470 101 1; #X msg 506 101 0; #X obj 470 281 print ENABLE; #X obj 470 199 square 0.5; #X obj 606 74 cnv 15 160 240 empty empty empty 20 12 0 14 -233017 -66577 0; #X obj 770 74 cnv 15 160 240 empty empty empty 20 12 0 14 -233017 -66577 0; #X text 617 81 force rendering; #X text 789 79 set rendering order; #X obj 621 128 cnv 15 100 40 empty empty empty 20 12 0 14 -24198 -66577 0; #X obj 781 135 cnv 15 100 40 empty empty empty 20 12 0 14 -24198 -66577 0; #X msg 630 101 bang; #X msg 791 101 set 45; #X obj 791 286 print SETTABLE; #X obj 630 284 print FORCEABLE; #X msg 630 243 gemList; #X msg 791 245 gemList; #X obj 630 202 circle 0.5; #X obj 791 204 triangle 0.5; #X obj 791 144 gemhead 105; #X text 21 188 All chain will be rendered one after the other. You can control precisely the rendering order by giving [gemhead] a priority value (argument or message). The default value is 50 The lower the value is \, the sooner the gemhead will receive the rendering command (a value of 1 is the lowest possible value). This value is important when you are doing alpha blending and for certain objects (such as light).; #X obj 470 178 translateXYZ -2 0 0; #X msg 854 101 set 105; #X obj 630 181 translateXYZ 0 2 0; #X obj 630 138 gemhead 50; #X obj 791 183 translateXYZ 2 0 0; #X text 42 520 Inlet 1: context : change rendering context (for multiple windows).; #X obj 818 8 declare -lib Gem; #X connect 12 0 14 0; #X connect 14 0 12 0; #X connect 26 0 30 0; #X connect 27 0 48 0; #X connect 28 0 27 0; #X connect 29 0 27 0; #X connect 31 0 26 0; #X connect 38 0 51 0; #X connect 39 0 46 0; #X connect 42 0 41 0; #X connect 43 0 40 0; #X connect 44 0 42 0; #X connect 45 0 43 0; #X connect 46 0 52 0; #X connect 48 0 31 0; #X connect 49 0 46 0; #X connect 50 0 44 0; #X connect 51 0 50 0; #X connect 52 0 45 0;