aboutsummaryrefslogtreecommitdiff
path: root/Gem/examples/09.openGL/03.stencilBuffer.pd
blob: 94f49674d74f171218ff76c69b603ef8412a7d5d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
#N canvas 431 61 849 900 10;
#X declare -lib Gem;
#X obj 39 337 GEMglEnable;
#X floatatom 125 339 5 0 0 0 - - -;
#X obj 111 289 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 111 312 GLdefine GL_STENCIL_TEST;
#X obj 129 287 loadbang;
#X obj 104 389 GLdefine GL_STENCIL_BUFFER_BIT;
#X obj 166 368 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X floatatom 119 414 5 0 0 0 - - -;
#X obj 104 366 loadbang;
#X obj 39 256 GEMglClearStencil 0;
#X obj 39 414 GEMglClear;
#X obj 39 40 gemhead 45;
#X obj 39 513 GEMglStencilFunc;
#X msg 146 487 1;
#X obj 75 443 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 74 466 GLdefine GL_ALWAYS;
#X obj 96 443 loadbang;
#X floatatom 100 487 5 0 0 0 - - -;
#X obj 39 593 GEMglStencilOp;
#X floatatom 156 588 5 0 0 0 - - -;
#X obj 70 493 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 70 559 GLdefine GL_REPLACE;
#X obj 95 537 loadbang;
#X obj 239 750 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 170 749 loadbang;
#X obj 39 817 GEMglClear;
#X floatatom 156 819 5 0 0 0 - - -;
#X obj 145 795 GLdefine GL_DEPTH_BUFFER_BIT;
#X obj 126 750 t b b;
#X obj 490 294 GEMglStencilFunc;
#X msg 597 270 1;
#X obj 525 227 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 546 225 loadbang;
#X floatatom 535 271 5 0 0 0 - - -;
#X obj 525 248 GLdefine GL_NOTEQUAL;
#X obj 490 403 color 1 0 0;
#X obj 490 666 GEMglStencilFunc;
#X msg 597 641 1;
#X obj 525 601 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 547 599 loadbang;
#X floatatom 536 645 5 0 0 0 - - -;
#X obj 490 716 rotateXYZ 0 0 45;
#X obj 525 622 GLdefine GL_EQUAL;
#X obj 490 692 color 1 1 0;
#X obj 126 773 GLdefine GL_COLOR_BUFFER_BIT;
#X obj 490 372 GEMglStencilOp;
#X floatatom 601 371 5 0 0 0 - - -;
#X obj 521 317 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 544 314 loadbang;
#X obj 521 338 GLdefine GL_KEEP;
#X floatatom 58 151 5 0 0 0 - - -;
#X floatatom 97 151 5 0 0 0 - - -;
#X obj 39 194 colorRGB 0 0 1;
#X obj 126 817 |;
#X floatatom 587 837 5 0 0 0 - - -;
#X obj 569 789 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 569 812 GLdefine GL_STENCIL_TEST;
#X obj 587 787 loadbang;
#X obj 490 837 GEMglDisable;
#X text 67 219 allow \, clear and configure stencil buffer;
#X obj 39 702 circle 1.5;
#X text 131 692 draw in all buffer;
#X text 104 847 clear color and depth buffer;
#X text 488 196 draw where the stencil buffer is not 1;
#X obj 490 430 square 3;
#X text 522 572 draw where the stencil buffer is 1;
#X obj 529 28 gemhead 10;
#X floatatom 562 48 5 0 0 0 - - -;
#X floatatom 602 48 5 0 0 0 - - -;
#X floatatom 642 48 5 0 0 0 - - -;
#X obj 529 94 world_light;
#X obj 529 69 rotateXYZ 0 0 0;
#X obj 39 174 rotateXYZ;
#X text 151 151 <- play with this.;
#X text 238 865 (c) Cyrille Henry 2006;
#X obj 39 63 t a b;
#X obj 74 85 i;
#X obj 122 63 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
;
#X obj 103 85 + 0;
#X obj 74 130 t f f;
#X obj 74 107 spigot;
#X obj 104 680 teapot 1.5;
#X obj 39 664 spigot;
#X obj 104 661 spigot;
#X obj 79 617 loadbang;
#X obj 147 639 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
1;
#X obj 82 641 == 0;
#X msg 147 618 0;
#X obj 131 84 % 360;
#X obj 490 761 sphere 1.2 25;
#X obj 39 13 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
;
#N canvas 87 154 247 179 Gem.init 0;
#X obj 118 46 loadbang;
#X obj 118 113 outlet;
#X msg 118 81 reset \, lighting 1;
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X restore 372 45 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 342 62 pd gemwin;
#X obj 716 16 declare -lib Gem;
#X connect 0 0 10 0;
#X connect 2 0 3 0;
#X connect 3 0 1 0;
#X connect 3 0 0 1;
#X connect 4 0 3 0;
#X connect 5 0 7 0;
#X connect 5 0 10 1;
#X connect 6 0 5 0;
#X connect 8 0 5 0;
#X connect 9 0 0 0;
#X connect 10 0 12 0;
#X connect 11 0 75 0;
#X connect 12 0 18 0;
#X connect 13 0 12 3;
#X connect 13 0 12 2;
#X connect 14 0 15 0;
#X connect 14 0 13 0;
#X connect 15 0 12 1;
#X connect 15 0 17 0;
#X connect 16 0 13 0;
#X connect 16 0 15 0;
#X connect 18 0 82 0;
#X connect 18 0 83 0;
#X connect 20 0 21 0;
#X connect 21 0 19 0;
#X connect 21 0 18 1;
#X connect 21 0 18 2;
#X connect 21 0 18 3;
#X connect 22 0 20 0;
#X connect 23 0 28 0;
#X connect 24 0 28 0;
#X connect 25 0 29 0;
#X connect 27 0 53 1;
#X connect 28 0 44 0;
#X connect 28 1 27 0;
#X connect 29 0 45 0;
#X connect 30 0 29 3;
#X connect 30 0 29 2;
#X connect 31 0 34 0;
#X connect 32 0 30 0;
#X connect 32 0 34 0;
#X connect 34 0 29 1;
#X connect 34 0 33 0;
#X connect 35 0 64 0;
#X connect 36 0 43 0;
#X connect 37 0 36 3;
#X connect 37 0 36 2;
#X connect 38 0 42 0;
#X connect 39 0 37 0;
#X connect 39 0 42 0;
#X connect 41 0 89 0;
#X connect 42 0 36 1;
#X connect 42 0 40 0;
#X connect 43 0 41 0;
#X connect 44 0 53 0;
#X connect 45 0 35 0;
#X connect 47 0 49 0;
#X connect 48 0 47 0;
#X connect 49 0 46 0;
#X connect 49 0 45 1;
#X connect 49 0 45 2;
#X connect 49 0 45 3;
#X connect 50 0 72 1;
#X connect 51 0 72 2;
#X connect 52 0 9 0;
#X connect 53 0 26 0;
#X connect 53 0 25 1;
#X connect 55 0 56 0;
#X connect 56 0 54 0;
#X connect 56 0 58 1;
#X connect 57 0 56 0;
#X connect 60 0 25 0;
#X connect 64 0 36 0;
#X connect 66 0 71 0;
#X connect 67 0 71 1;
#X connect 68 0 71 2;
#X connect 69 0 71 3;
#X connect 71 0 70 0;
#X connect 72 0 52 0;
#X connect 75 0 72 0;
#X connect 75 1 76 0;
#X connect 76 0 78 0;
#X connect 76 0 80 0;
#X connect 77 0 78 1;
#X connect 77 0 80 1;
#X connect 78 0 88 0;
#X connect 79 0 50 0;
#X connect 79 1 51 0;
#X connect 80 0 79 0;
#X connect 81 0 25 0;
#X connect 82 0 60 0;
#X connect 83 0 81 0;
#X connect 84 0 87 0;
#X connect 85 0 83 1;
#X connect 85 0 86 0;
#X connect 86 0 82 1;
#X connect 87 0 85 0;
#X connect 88 0 76 1;
#X connect 89 0 58 0;
#X connect 90 0 11 0;
#X connect 91 0 92 0;