6 # Bitfield constants for the 'variant' argument to generate_sigs
11 def vec_type(g
, size
):
18 return g
+ "vec" + str(size
)
20 # Get the sampler dimension - i.e. sampler3D gives 3
21 def get_sampler_dim(sampler_type
):
22 if sampler_type
[0].isdigit():
23 sampler_dim
= int(sampler_type
[0])
24 elif sampler_type
.startswith("Cube"):
26 elif sampler_type
== "ExternalOES":
28 elif sampler_type
== "Buffer":
31 assert False ("coord_dim: invalid sampler_type: " + sampler_type
)
34 # Get the coordinate dimension for a given sampler type.
35 # Array samplers also get +1 here since the layer is really an extra coordinate
36 def get_coord_dim(sampler_type
):
37 coord_dim
= get_sampler_dim(sampler_type
)
38 if sampler_type
.find("Array") != -1:
42 # Get the number of extra vector components (i.e. shadow comparitor)
43 def get_extra_dim(sampler_type
, use_proj
, unused_fields
):
44 extra_dim
= unused_fields
45 if sampler_type
== "CubeArrayShadow":
47 if sampler_type
.find("Shadow") != -1:
53 def get_txs_dim(sampler_type
):
54 if sampler_type
.startswith("CubeArray"):
56 if sampler_type
.startswith("Cube"):
58 return get_coord_dim(sampler_type
)
60 def has_lod(sampler_type
):
61 if 'Buffer' in sampler_type
: return False
62 if 'Rect' in sampler_type
: return False
63 if 'MS' in sampler_type
: return False
66 def generate_sigs(g
, tex_inst
, sampler_type
, variant
= 0, unused_fields
= 0):
67 coord_dim
= get_coord_dim(sampler_type
)
68 extra_dim
= get_extra_dim(sampler_type
, variant
& Proj
, unused_fields
)
69 sampler_dim
= get_sampler_dim(sampler_type
)
73 elif tex_inst
== "txs":
74 return_type
= vec_type("i", get_txs_dim(sampler_type
))
76 return_type
= g
+ "vec4"
79 print " (signature", return_type
81 print " (declare (in) " + g
+ "sampler" + sampler_type
+ " sampler)",
83 print "\n (declare (in) " + vec_type("i" if tex_inst
in ['txf','txf_ms'] else "", coord_dim
+ extra_dim
) + " P)",
85 print "\n (declare (in) float lod)",
86 elif tex_inst
in ['txf', 'txs'] and has_lod(sampler_type
):
87 print "\n (declare (in) int lod)",
88 elif tex_inst
== "txf_ms":
89 print "\n (declare (in) int sample)",
90 elif tex_inst
== "txd":
91 grad_type
= vec_type("", sampler_dim
)
92 print "\n (declare (in) " + grad_type
+ " dPdx)",
93 print "\n (declare (in) " + grad_type
+ " dPdy)",
94 if sampler_type
== "CubeArrayShadow" and tex_inst
== "tex":
95 print "\n (declare (in) float compare)",
98 print "\n (declare (const_in) " + vec_type("i", sampler_dim
) + " offset)",
100 print "\n (declare (in) float bias)",
102 print ")\n ((return (" + tex_inst
, return_type
, "(var_ref sampler)",
104 if tex_inst
!= "txs":
107 print "(swiz " + "xyzw"[:coord_dim
] + " (var_ref P))",
111 if tex_inst
not in ['txf_ms', 'txs']:
114 print "(var_ref offset)",
118 if tex_inst
not in ['txf', 'txf_ms', 'txs']:
121 print "(swiz " + "xyzw"[coord_dim
+ extra_dim
-1] + " (var_ref P))",
126 if sampler_type
== "CubeArrayShadow": # a special case
127 print "(var_ref compare)",
128 elif sampler_type
== "2DArrayShadow" or sampler_type
== "CubeShadow": # a special case:
129 print "(swiz w (var_ref P))", # ...array layer is z; shadow is w
130 elif sampler_type
.endswith("Shadow"):
131 print "(swiz z (var_ref P))",
135 # Bias/explicit LOD/gradient:
136 if tex_inst
== "txb":
137 print "(var_ref bias)",
138 elif tex_inst
in ['txs', 'txf', 'txf_ms']:
139 if has_lod(sampler_type
):
140 print "(var_ref lod)",
141 elif tex_inst
== 'txf_ms':
142 print "(var_ref sample)",
144 print "(constant int (0))",
145 elif tex_inst
== "txl":
146 print "(var_ref lod)",
147 elif tex_inst
== "txd":
148 print "((var_ref dPdx) (var_ref dPdy))",
151 def generate_fiu_sigs(tex_inst
, sampler_type
, variant
= 0, unused_fields
= 0):
152 generate_sigs("", tex_inst
, sampler_type
, variant
, unused_fields
)
153 generate_sigs("i", tex_inst
, sampler_type
, variant
, unused_fields
)
154 generate_sigs("u", tex_inst
, sampler_type
, variant
, unused_fields
)
156 def start_function(name
):
157 sys
.stdout
= StringIO
.StringIO()
158 print "((function " + name
160 def end_function(fs
, name
):
162 fs
[name
] = sys
.stdout
.getvalue();
165 # Generate all the functions and store them in the supplied dictionary.
166 # This is better than writing them to actual files since they should never be
167 # edited; it'd also be easy to confuse them with the many hand-generated files.
169 # Takes a dictionary as an argument.
170 def generate_texture_functions(fs
):
171 start_function("textureSize")
172 generate_fiu_sigs("txs", "1D")
173 generate_fiu_sigs("txs", "2D")
174 generate_fiu_sigs("txs", "3D")
175 generate_fiu_sigs("txs", "Cube")
176 generate_fiu_sigs("txs", "1DArray")
177 generate_fiu_sigs("txs", "2DArray")
178 generate_sigs("", "txs", "1DShadow")
179 generate_sigs("", "txs", "2DShadow")
180 generate_sigs("", "txs", "CubeShadow")
181 generate_sigs("", "txs", "1DArrayShadow")
182 generate_sigs("", "txs", "2DArrayShadow")
183 generate_fiu_sigs("txs", "2DRect")
184 generate_sigs("", "txs", "2DRectShadow")
185 generate_fiu_sigs("txs", "Buffer")
186 generate_fiu_sigs("txs", "CubeArray")
187 generate_sigs("", "txs", "CubeArrayShadow")
188 generate_fiu_sigs("txs", "2DMS")
189 generate_fiu_sigs("txs", "2DMSArray")
190 end_function(fs
, "textureSize")
192 start_function("texture")
193 generate_fiu_sigs("tex", "1D")
194 generate_fiu_sigs("tex", "2D")
195 generate_fiu_sigs("tex", "3D")
196 generate_fiu_sigs("tex", "Cube")
197 generate_fiu_sigs("tex", "1DArray")
198 generate_fiu_sigs("tex", "2DArray")
199 generate_sigs("", "tex", "1DShadow", Single
, 1);
200 generate_sigs("", "tex", "2DShadow", Single
);
201 generate_sigs("", "tex", "CubeShadow", Single
);
202 generate_sigs("", "tex", "1DArrayShadow", Single
);
203 generate_sigs("", "tex", "2DArrayShadow", Single
);
204 generate_fiu_sigs("tex", "2DRect")
205 generate_sigs("", "tex", "2DRectShadow", Single
);
206 # ARB_texture_cube_map_array extension
207 generate_fiu_sigs("tex", "CubeArray")
208 generate_sigs("", "tex", "CubeArrayShadow", Single
);
210 generate_fiu_sigs("txb", "1D")
211 generate_fiu_sigs("txb", "2D")
212 generate_fiu_sigs("txb", "3D")
213 generate_fiu_sigs("txb", "Cube")
214 generate_fiu_sigs("txb", "1DArray")
215 generate_fiu_sigs("txb", "2DArray")
216 generate_fiu_sigs("txb", "CubeArray")
217 generate_sigs("", "txb", "1DShadow", Single
, 1);
218 generate_sigs("", "txb", "2DShadow", Single
);
219 generate_sigs("", "txb", "CubeShadow", Single
);
220 generate_sigs("", "txb", "1DArrayShadow", Single
);
221 generate_sigs("", "txb", "2DArrayShadow", Single
);
222 end_function(fs
, "texture")
224 start_function("textureProj")
225 generate_fiu_sigs("tex", "1D", Proj
)
226 generate_fiu_sigs("tex", "1D", Proj
, 2)
227 generate_fiu_sigs("tex", "2D", Proj
)
228 generate_fiu_sigs("tex", "2D", Proj
, 1)
229 generate_fiu_sigs("tex", "3D", Proj
)
230 generate_sigs("", "tex", "1DShadow", Proj | Single
, 1);
231 generate_sigs("", "tex", "2DShadow", Proj | Single
);
232 generate_fiu_sigs("tex", "2DRect", Proj
)
233 generate_fiu_sigs("tex", "2DRect", Proj
, 1)
234 generate_sigs("", "tex", "2DRectShadow", Proj | Single
);
236 generate_fiu_sigs("txb", "1D", Proj
)
237 generate_fiu_sigs("txb", "1D", Proj
, 2)
238 generate_fiu_sigs("txb", "2D", Proj
)
239 generate_fiu_sigs("txb", "2D", Proj
, 1)
240 generate_fiu_sigs("txb", "3D", Proj
)
241 generate_sigs("", "txb", "1DShadow", Proj | Single
, 1);
242 generate_sigs("", "txb", "2DShadow", Proj | Single
);
243 end_function(fs
, "textureProj")
245 start_function("textureLod")
246 generate_fiu_sigs("txl", "1D")
247 generate_fiu_sigs("txl", "2D")
248 generate_fiu_sigs("txl", "3D")
249 generate_fiu_sigs("txl", "Cube")
250 generate_fiu_sigs("txl", "1DArray")
251 generate_fiu_sigs("txl", "2DArray")
252 generate_sigs("", "txl", "1DShadow", Single
, 1);
253 generate_sigs("", "txl", "2DShadow", Single
);
254 generate_sigs("", "txl", "1DArrayShadow", Single
);
255 # ARB_texture_cube_map_array extension
256 generate_fiu_sigs("txl", "CubeArray")
257 end_function(fs
, "textureLod")
259 start_function("textureLodOffset")
260 generate_fiu_sigs("txl", "1D", Offset
)
261 generate_fiu_sigs("txl", "2D", Offset
)
262 generate_fiu_sigs("txl", "3D", Offset
)
263 generate_fiu_sigs("txl", "1DArray", Offset
)
264 generate_fiu_sigs("txl", "2DArray", Offset
)
265 generate_sigs("", "txl", "1DShadow", Offset | Single
, 1);
266 generate_sigs("", "txl", "2DShadow", Offset | Single
);
267 generate_sigs("", "txl", "1DArrayShadow", Offset | Single
);
268 end_function(fs
, "textureLodOffset")
270 start_function("textureOffset")
271 generate_fiu_sigs("tex", "1D", Offset
)
272 generate_fiu_sigs("tex", "2D", Offset
)
273 generate_fiu_sigs("tex", "3D", Offset
)
274 generate_fiu_sigs("tex", "2DRect", Offset
)
275 generate_sigs("", "tex", "2DRectShadow", Offset | Single
);
276 generate_fiu_sigs("tex", "1DArray", Offset
)
277 generate_fiu_sigs("tex", "2DArray", Offset
)
278 generate_sigs("", "tex", "1DShadow", Offset | Single
, 1);
279 generate_sigs("", "tex", "2DShadow", Offset | Single
);
280 generate_sigs("", "tex", "1DArrayShadow", Offset | Single
);
282 generate_fiu_sigs("txb", "1D", Offset
)
283 generate_fiu_sigs("txb", "2D", Offset
)
284 generate_fiu_sigs("txb", "3D", Offset
)
285 generate_fiu_sigs("txb", "1DArray", Offset
)
286 generate_fiu_sigs("txb", "2DArray", Offset
)
287 generate_sigs("", "txb", "1DShadow", Offset | Single
, 1);
288 generate_sigs("", "txb", "2DShadow", Offset | Single
);
289 generate_sigs("", "txb", "1DArrayShadow", Offset | Single
);
290 end_function(fs
, "textureOffset")
292 start_function("texelFetch")
293 generate_fiu_sigs("txf", "1D")
294 generate_fiu_sigs("txf", "2D")
295 generate_fiu_sigs("txf", "3D")
296 generate_fiu_sigs("txf", "2DRect")
297 generate_fiu_sigs("txf", "1DArray")
298 generate_fiu_sigs("txf", "2DArray")
299 generate_fiu_sigs("txf", "Buffer")
300 generate_fiu_sigs("txf_ms", "2DMS")
301 generate_fiu_sigs("txf_ms", "2DMSArray")
302 end_function(fs
, "texelFetch")
304 start_function("texelFetchOffset")
305 generate_fiu_sigs("txf", "1D", Offset
)
306 generate_fiu_sigs("txf", "2D", Offset
)
307 generate_fiu_sigs("txf", "3D", Offset
)
308 generate_fiu_sigs("txf", "2DRect", Offset
)
309 generate_fiu_sigs("txf", "1DArray", Offset
)
310 generate_fiu_sigs("txf", "2DArray", Offset
)
311 end_function(fs
, "texelFetchOffset")
313 start_function("textureProjOffset")
314 generate_fiu_sigs("tex", "1D", Proj | Offset
)
315 generate_fiu_sigs("tex", "1D", Proj | Offset
, 2)
316 generate_fiu_sigs("tex", "2D", Proj | Offset
)
317 generate_fiu_sigs("tex", "2D", Proj | Offset
, 1)
318 generate_fiu_sigs("tex", "3D", Proj | Offset
)
319 generate_fiu_sigs("tex", "2DRect", Proj | Offset
)
320 generate_fiu_sigs("tex", "2DRect", Proj | Offset
, 1)
321 generate_sigs("", "tex", "2DRectShadow", Proj | Offset | Single
);
322 generate_sigs("", "tex", "1DShadow", Proj | Offset | Single
, 1);
323 generate_sigs("", "tex", "2DShadow", Proj | Offset | Single
);
325 generate_fiu_sigs("txb", "1D", Proj | Offset
)
326 generate_fiu_sigs("txb", "1D", Proj | Offset
, 2)
327 generate_fiu_sigs("txb", "2D", Proj | Offset
)
328 generate_fiu_sigs("txb", "2D", Proj | Offset
, 1)
329 generate_fiu_sigs("txb", "3D", Proj | Offset
)
330 generate_sigs("", "txb", "1DShadow", Proj | Offset | Single
, 1);
331 generate_sigs("", "txb", "2DShadow", Proj | Offset | Single
);
332 end_function(fs
, "textureProjOffset")
334 start_function("textureProjLod")
335 generate_fiu_sigs("txl", "1D", Proj
)
336 generate_fiu_sigs("txl", "1D", Proj
, 2)
337 generate_fiu_sigs("txl", "2D", Proj
)
338 generate_fiu_sigs("txl", "2D", Proj
, 1)
339 generate_fiu_sigs("txl", "3D", Proj
)
340 generate_sigs("", "txl", "1DShadow", Proj | Single
, 1);
341 generate_sigs("", "txl", "2DShadow", Proj | Single
);
342 end_function(fs
, "textureProjLod")
344 start_function("textureProjLodOffset")
345 generate_fiu_sigs("txl", "1D", Proj | Offset
)
346 generate_fiu_sigs("txl", "1D", Proj | Offset
, 2)
347 generate_fiu_sigs("txl", "2D", Proj | Offset
)
348 generate_fiu_sigs("txl", "2D", Proj | Offset
, 1)
349 generate_fiu_sigs("txl", "3D", Proj | Offset
)
350 generate_sigs("", "txl", "1DShadow", Proj | Offset | Single
, 1);
351 generate_sigs("", "txl", "2DShadow", Proj | Offset | Single
);
352 end_function(fs
, "textureProjLodOffset")
354 start_function("textureGrad")
355 generate_fiu_sigs("txd", "1D")
356 generate_fiu_sigs("txd", "2D")
357 generate_fiu_sigs("txd", "3D")
358 generate_fiu_sigs("txd", "Cube")
359 generate_fiu_sigs("txd", "1DArray")
360 generate_fiu_sigs("txd", "2DArray")
361 generate_fiu_sigs("txd", "2DRect")
362 generate_sigs("", "txd", "2DRectShadow", Single
);
363 generate_sigs("", "txd", "1DShadow", Single
, 1);
364 generate_sigs("", "txd", "2DShadow", Single
);
365 generate_sigs("", "txd", "CubeShadow", Single
);
366 generate_sigs("", "txd", "1DArrayShadow", Single
);
367 generate_sigs("", "txd", "2DArrayShadow", Single
);
368 # ARB_texture_cube_map_array extension
369 generate_fiu_sigs("txd", "CubeArray")
370 end_function(fs
, "textureGrad")
372 start_function("textureGradOffset")
373 generate_fiu_sigs("txd", "1D", Offset
)
374 generate_fiu_sigs("txd", "2D", Offset
)
375 generate_fiu_sigs("txd", "3D", Offset
)
376 generate_fiu_sigs("txd", "2DRect", Offset
)
377 generate_sigs("", "txd", "2DRectShadow", Offset | Single
);
378 generate_fiu_sigs("txd", "1DArray", Offset
)
379 generate_fiu_sigs("txd", "2DArray", Offset
)
380 generate_sigs("", "txd", "1DShadow", Offset | Single
, 1);
381 generate_sigs("", "txd", "2DShadow", Offset | Single
);
382 generate_sigs("", "txd", "1DArrayShadow", Offset | Single
);
383 generate_sigs("", "txd", "2DArrayShadow", Offset | Single
);
384 end_function(fs
, "textureGradOffset")
386 start_function("textureProjGrad")
387 generate_fiu_sigs("txd", "1D", Proj
)
388 generate_fiu_sigs("txd", "1D", Proj
, 2)
389 generate_fiu_sigs("txd", "2D", Proj
)
390 generate_fiu_sigs("txd", "2D", Proj
, 1)
391 generate_fiu_sigs("txd", "3D", Proj
)
392 generate_fiu_sigs("txd", "2DRect", Proj
)
393 generate_fiu_sigs("txd", "2DRect", Proj
, 1)
394 generate_sigs("", "txd", "2DRectShadow", Proj | Single
);
395 generate_sigs("", "txd", "1DShadow", Proj | Single
, 1);
396 generate_sigs("", "txd", "2DShadow", Proj | Single
);
397 end_function(fs
, "textureProjGrad")
399 start_function("textureProjGradOffset")
400 generate_fiu_sigs("txd", "1D", Proj | Offset
)
401 generate_fiu_sigs("txd", "1D", Proj | Offset
, 2)
402 generate_fiu_sigs("txd", "2D", Proj | Offset
)
403 generate_fiu_sigs("txd", "2D", Proj | Offset
, 1)
404 generate_fiu_sigs("txd", "3D", Proj | Offset
)
405 generate_fiu_sigs("txd", "2DRect", Proj | Offset
)
406 generate_fiu_sigs("txd", "2DRect", Proj | Offset
, 1)
407 generate_sigs("", "txd", "2DRectShadow", Proj | Offset | Single
);
408 generate_sigs("", "txd", "1DShadow", Proj | Offset | Single
, 1);
409 generate_sigs("", "txd", "2DShadow", Proj | Offset | Single
);
410 end_function(fs
, "textureProjGradOffset")
413 # ARB_texture_rectangle extension
414 start_function("texture2DRect")
415 generate_sigs("", "tex", "2DRect")
416 end_function(fs
, "texture2DRect")
418 start_function("texture2DRectProj")
419 generate_sigs("", "tex", "2DRect", Proj
)
420 generate_sigs("", "tex", "2DRect", Proj
, 1)
421 end_function(fs
, "texture2DRectProj")
423 start_function("shadow2DRect")
424 generate_sigs("", "tex", "2DRectShadow")
425 end_function(fs
, "shadow2DRect")
427 start_function("shadow2DRectProj")
428 generate_sigs("", "tex", "2DRectShadow", Proj
)
429 end_function(fs
, "shadow2DRectProj")
431 # EXT_texture_array extension
432 start_function("texture1DArray")
433 generate_sigs("", "tex", "1DArray")
434 generate_sigs("", "txb", "1DArray")
435 end_function(fs
, "texture1DArray")
437 start_function("texture1DArrayLod")
438 generate_sigs("", "txl", "1DArray")
439 end_function(fs
, "texture1DArrayLod")
441 start_function("texture2DArray")
442 generate_sigs("", "tex", "2DArray")
443 generate_sigs("", "txb", "2DArray")
444 end_function(fs
, "texture2DArray")
446 start_function("texture2DArrayLod")
447 generate_sigs("", "txl", "2DArray")
448 end_function(fs
, "texture2DArrayLod")
450 start_function("shadow1DArray")
451 generate_sigs("", "tex", "1DArrayShadow")
452 generate_sigs("", "txb", "1DArrayShadow")
453 end_function(fs
, "shadow1DArray")
455 start_function("shadow1DArrayLod")
456 generate_sigs("", "txl", "1DArrayShadow")
457 end_function(fs
, "shadow1DArrayLod")
459 start_function("shadow2DArray")
460 generate_sigs("", "tex", "2DArrayShadow")
461 end_function(fs
, "shadow2DArray")
463 # ARB_shader_texture_lod extension
464 start_function("texture1DGradARB")
465 generate_fiu_sigs("txd", "1D")
466 end_function(fs
, "texture1DGradARB")
468 start_function("texture2DGradARB")
469 generate_fiu_sigs("txd", "2D")
470 end_function(fs
, "texture2DGradARB")
472 start_function("texture3DGradARB")
473 generate_fiu_sigs("txd", "3D")
474 end_function(fs
, "texture3DGradARB")
476 start_function("textureCubeGradARB")
477 generate_fiu_sigs("txd", "Cube")
478 end_function(fs
, "textureCubeGradARB")
480 start_function("texture1DProjGradARB")
481 generate_fiu_sigs("txd", "1D", True)
482 generate_fiu_sigs("txd", "1D", True, 2)
483 end_function(fs
, "texture1DProjGradARB")
485 start_function("texture2DProjGradARB")
486 generate_fiu_sigs("txd", "2D", True)
487 generate_fiu_sigs("txd", "2D", True, 1)
488 end_function(fs
, "texture2DProjGradARB")
490 start_function("texture3DProjGradARB")
491 generate_fiu_sigs("txd", "3D", True)
492 end_function(fs
, "texture3DProjGradARB")
494 start_function("shadow1DGradARB")
495 generate_sigs("", "txd", "1DShadow", False, 1)
496 end_function(fs
, "shadow1DGradARB")
498 start_function("shadow1DProjGradARB")
499 generate_sigs("", "txd", "1DShadow", True, 1)
500 end_function(fs
, "shadow1DProjGradARB")
502 start_function("shadow2DGradARB")
503 generate_sigs("", "txd", "2DShadow", False)
504 end_function(fs
, "shadow2DGradARB")
506 start_function("shadow2DProjGradARB")
507 generate_sigs("", "txd", "2DShadow", True)
508 end_function(fs
, "shadow2DProjGradARB")
510 start_function("texture2DRectGradARB")
511 generate_sigs("", "txd", "2DRect")
512 end_function(fs
, "texture2DRectGradARB")
514 start_function("texture2DRectProjGradARB")
515 generate_sigs("", "txd", "2DRect", True)
516 generate_sigs("", "txd", "2DRect", True, 1)
517 end_function(fs
, "texture2DRectProjGradARB")
519 start_function("shadow2DRectGradARB")
520 generate_sigs("", "txd", "2DRectShadow", False)
521 end_function(fs
, "shadow2DRectGradARB")
523 start_function("shadow2DRectProjGradARB")
524 generate_sigs("", "txd", "2DRectShadow", True)
525 end_function(fs
, "shadow2DRectProjGradARB")
527 # Deprecated (110/120 style) functions with silly names:
528 start_function("texture1D")
529 generate_sigs("", "tex", "1D")
530 generate_sigs("", "txb", "1D")
531 end_function(fs
, "texture1D")
533 start_function("texture1DLod")
534 generate_sigs("", "txl", "1D")
535 end_function(fs
, "texture1DLod")
537 start_function("texture1DProj")
538 generate_sigs("", "tex", "1D", Proj
)
539 generate_sigs("", "tex", "1D", Proj
, 2)
540 generate_sigs("", "txb", "1D", Proj
)
541 generate_sigs("", "txb", "1D", Proj
, 2)
542 end_function(fs
, "texture1DProj")
544 start_function("texture1DProjLod")
545 generate_sigs("", "txl", "1D", Proj
)
546 generate_sigs("", "txl", "1D", Proj
, 2)
547 end_function(fs
, "texture1DProjLod")
549 start_function("texture2D")
550 generate_sigs("", "tex", "2D")
551 generate_sigs("", "txb", "2D")
552 # OES_EGL_image_external
553 generate_sigs("", "tex", "ExternalOES")
554 end_function(fs
, "texture2D")
556 start_function("texture2DLod")
557 generate_sigs("", "txl", "2D")
558 end_function(fs
, "texture2DLod")
560 start_function("texture2DProj")
561 generate_sigs("", "tex", "2D", Proj
)
562 generate_sigs("", "tex", "2D", Proj
, 1)
563 generate_sigs("", "txb", "2D", Proj
)
564 generate_sigs("", "txb", "2D", Proj
, 1)
565 # OES_EGL_image_external
566 generate_sigs("", "tex", "ExternalOES", Proj
)
567 generate_sigs("", "tex", "ExternalOES", Proj
, 1)
568 end_function(fs
, "texture2DProj")
570 start_function("texture2DProjLod")
571 generate_sigs("", "txl", "2D", Proj
)
572 generate_sigs("", "txl", "2D", Proj
, 1)
573 end_function(fs
, "texture2DProjLod")
575 start_function("texture3D")
576 generate_sigs("", "tex", "3D")
577 generate_sigs("", "txb", "3D")
578 end_function(fs
, "texture3D")
580 start_function("texture3DLod")
581 generate_sigs("", "txl", "3D")
582 end_function(fs
, "texture3DLod")
584 start_function("texture3DProj")
585 generate_sigs("", "tex", "3D", Proj
)
586 generate_sigs("", "txb", "3D", Proj
)
587 end_function(fs
, "texture3DProj")
589 start_function("texture3DProjLod")
590 generate_sigs("", "txl", "3D", Proj
)
591 end_function(fs
, "texture3DProjLod")
593 start_function("textureCube")
594 generate_sigs("", "tex", "Cube")
595 generate_sigs("", "txb", "Cube")
596 end_function(fs
, "textureCube")
598 start_function("textureCubeLod")
599 generate_sigs("", "txl", "Cube")
600 end_function(fs
, "textureCubeLod")
602 start_function("shadow1D")
603 generate_sigs("", "tex", "1DShadow", False, 1)
604 generate_sigs("", "txb", "1DShadow", False, 1)
605 end_function(fs
, "shadow1D")
607 start_function("shadow1DLod")
608 generate_sigs("", "txl", "1DShadow", False, 1)
609 end_function(fs
, "shadow1DLod")
611 start_function("shadow1DProj")
612 generate_sigs("", "tex", "1DShadow", Proj
, 1)
613 generate_sigs("", "txb", "1DShadow", Proj
, 1)
614 end_function(fs
, "shadow1DProj")
616 start_function("shadow1DProjLod")
617 generate_sigs("", "txl", "1DShadow", Proj
, 1)
618 end_function(fs
, "shadow1DProjLod")
620 start_function("shadow2D")
621 generate_sigs("", "tex", "2DShadow")
622 generate_sigs("", "txb", "2DShadow")
623 end_function(fs
, "shadow2D")
625 start_function("shadow2DLod")
626 generate_sigs("", "txl", "2DShadow")
627 end_function(fs
, "shadow2DLod")
629 start_function("shadow2DProj")
630 generate_sigs("", "tex", "2DShadow", Proj
)
631 generate_sigs("", "txb", "2DShadow", Proj
)
632 end_function(fs
, "shadow2DProj")
634 start_function("shadow2DProjLod")
635 generate_sigs("", "txl", "2DShadow", Proj
)
636 end_function(fs
, "shadow2DProjLod")
638 sys
.stdout
= sys
.__stdout
__
641 # If you actually run this script, it'll print out all the functions.
642 if __name__
== "__main__":
644 generate_texture_functions(fs
);
645 for k
, v
in fs
.iteritems():