| #!/usr/bin/python |
| |
| import sys |
| import StringIO |
| |
| # Bitfield constants for the 'variant' argument to generate_sigs |
| Proj = 1 |
| Offset = 2 |
| Single = 4 |
| |
| def vec_type(g, size): |
| if size == 1: |
| if g == "i": |
| return "int" |
| elif g == "u": |
| return "uint" |
| return "float" |
| return g + "vec" + str(size) |
| |
| # Get the sampler dimension - i.e. sampler3D gives 3 |
| def get_sampler_dim(sampler_type): |
| if sampler_type[0].isdigit(): |
| sampler_dim = int(sampler_type[0]) |
| elif sampler_type.startswith("Cube"): |
| sampler_dim = 3 |
| elif sampler_type == "ExternalOES": |
| sampler_dim = 2 |
| elif sampler_type == "Buffer": |
| sampler_dim = 1 |
| else: |
| assert False ("coord_dim: invalid sampler_type: " + sampler_type) |
| return sampler_dim |
| |
| # Get the coordinate dimension for a given sampler type. |
| # Array samplers also get +1 here since the layer is really an extra coordinate |
| def get_coord_dim(sampler_type): |
| coord_dim = get_sampler_dim(sampler_type) |
| if sampler_type.find("Array") != -1: |
| coord_dim += 1 |
| return coord_dim |
| |
| # Get the number of extra vector components (i.e. shadow comparitor) |
| def get_extra_dim(sampler_type, use_proj, unused_fields): |
| extra_dim = unused_fields |
| if sampler_type.find("Shadow") != -1: |
| extra_dim += 1 |
| if use_proj: |
| extra_dim += 1 |
| return extra_dim |
| |
| def get_txs_dim(sampler_type): |
| if sampler_type.startswith("Cube"): |
| return 2 |
| return get_coord_dim(sampler_type) |
| |
| def generate_sigs(g, tex_inst, sampler_type, variant = 0, unused_fields = 0): |
| coord_dim = get_coord_dim(sampler_type) |
| extra_dim = get_extra_dim(sampler_type, variant & Proj, unused_fields) |
| sampler_dim = get_sampler_dim(sampler_type) |
| |
| if variant & Single: |
| return_type = "float" |
| elif tex_inst == "txs": |
| return_type = vec_type("i", get_txs_dim(sampler_type)) |
| else: |
| return_type = g + "vec4" |
| |
| # Print parameters |
| print " (signature", return_type |
| print " (parameters" |
| print " (declare (in) " + g + "sampler" + sampler_type + " sampler)", |
| if tex_inst != "txs": |
| print "\n (declare (in) " + vec_type("i" if tex_inst == "txf" else "", coord_dim + extra_dim) + " P)", |
| if tex_inst == "txl": |
| print "\n (declare (in) float lod)", |
| elif ((tex_inst == "txf" or tex_inst == "txs") and "Buffer" not in sampler_type and "Rect" not in sampler_type): |
| print "\n (declare (in) int lod)", |
| elif tex_inst == "txd": |
| grad_type = vec_type("", sampler_dim) |
| print "\n (declare (in) " + grad_type + " dPdx)", |
| print "\n (declare (in) " + grad_type + " dPdy)", |
| |
| if variant & Offset: |
| print "\n (declare (const_in) " + vec_type("i", sampler_dim) + " offset)", |
| if tex_inst == "txb": |
| print "\n (declare (in) float bias)", |
| |
| print ")\n ((return (" + tex_inst, return_type, "(var_ref sampler)", |
| |
| if tex_inst != "txs": |
| # Coordinate |
| if extra_dim > 0: |
| print "(swiz " + "xyzw"[:coord_dim] + " (var_ref P))", |
| else: |
| print "(var_ref P)", |
| |
| if variant & Offset: |
| print "(var_ref offset)", |
| else: |
| print "0", |
| |
| if tex_inst != "txf" and tex_inst != "txs": |
| # Projective divisor |
| if variant & Proj: |
| print "(swiz " + "xyzw"[coord_dim + extra_dim-1] + " (var_ref P))", |
| else: |
| print "1", |
| |
| # Shadow comparitor |
| if sampler_type == "2DArrayShadow" or sampler_type == "CubeShadow": # a special case: |
| print "(swiz w (var_ref P))", # ...array layer is z; shadow is w |
| elif sampler_type.endswith("Shadow"): |
| print "(swiz z (var_ref P))", |
| else: |
| print "()", |
| |
| # Bias/explicit LOD/gradient: |
| if tex_inst == "txb": |
| print "(var_ref bias)", |
| elif tex_inst == "txs" or tex_inst == "txf": |
| if "Rect" not in sampler_type and "Buffer" not in sampler_type: |
| print "(var_ref lod)", |
| else: |
| print "(constant int (0))" |
| elif tex_inst == "txl": |
| print "(var_ref lod)", |
| elif tex_inst == "txd": |
| print "((var_ref dPdx) (var_ref dPdy))", |
| print "))))\n" |
| |
| def generate_fiu_sigs(tex_inst, sampler_type, variant = 0, unused_fields = 0): |
| generate_sigs("", tex_inst, sampler_type, variant, unused_fields) |
| generate_sigs("i", tex_inst, sampler_type, variant, unused_fields) |
| generate_sigs("u", tex_inst, sampler_type, variant, unused_fields) |
| |
| def start_function(name): |
| sys.stdout = StringIO.StringIO() |
| print "((function " + name |
| |
| def end_function(fs, name): |
| print "))" |
| fs[name] = sys.stdout.getvalue(); |
| sys.stdout.close() |
| |
| # Generate all the functions and store them in the supplied dictionary. |
| # This is better than writing them to actual files since they should never be |
| # edited; it'd also be easy to confuse them with the many hand-generated files. |
| # |
| # Takes a dictionary as an argument. |
| def generate_texture_functions(fs): |
| start_function("textureSize") |
| generate_fiu_sigs("txs", "1D") |
| generate_fiu_sigs("txs", "2D") |
| generate_fiu_sigs("txs", "3D") |
| generate_fiu_sigs("txs", "Cube") |
| generate_fiu_sigs("txs", "1DArray") |
| generate_fiu_sigs("txs", "2DArray") |
| generate_sigs("", "txs", "1DShadow") |
| generate_sigs("", "txs", "2DShadow") |
| generate_sigs("", "txs", "CubeShadow") |
| generate_sigs("", "txs", "1DArrayShadow") |
| generate_sigs("", "txs", "2DArrayShadow") |
| generate_fiu_sigs("txs", "2DRect") |
| generate_sigs("", "txs", "2DRectShadow") |
| generate_fiu_sigs("txs", "Buffer") |
| end_function(fs, "textureSize") |
| |
| start_function("texture") |
| generate_fiu_sigs("tex", "1D") |
| generate_fiu_sigs("tex", "2D") |
| generate_fiu_sigs("tex", "3D") |
| generate_fiu_sigs("tex", "Cube") |
| generate_fiu_sigs("tex", "1DArray") |
| generate_fiu_sigs("tex", "2DArray") |
| generate_sigs("", "tex", "1DShadow", Single, 1); |
| generate_sigs("", "tex", "2DShadow", Single); |
| generate_sigs("", "tex", "CubeShadow", Single); |
| generate_sigs("", "tex", "1DArrayShadow", Single); |
| generate_sigs("", "tex", "2DArrayShadow", Single); |
| generate_fiu_sigs("tex", "2DRect") |
| generate_sigs("", "tex", "2DRectShadow", Single); |
| |
| generate_fiu_sigs("txb", "1D") |
| generate_fiu_sigs("txb", "2D") |
| generate_fiu_sigs("txb", "3D") |
| generate_fiu_sigs("txb", "Cube") |
| generate_fiu_sigs("txb", "1DArray") |
| generate_fiu_sigs("txb", "2DArray") |
| generate_sigs("", "txb", "1DShadow", Single, 1); |
| generate_sigs("", "txb", "2DShadow", Single); |
| generate_sigs("", "txb", "CubeShadow", Single); |
| generate_sigs("", "txb", "1DArrayShadow", Single); |
| generate_sigs("", "txb", "2DArrayShadow", Single); |
| end_function(fs, "texture") |
| |
| start_function("textureProj") |
| generate_fiu_sigs("tex", "1D", Proj) |
| generate_fiu_sigs("tex", "1D", Proj, 2) |
| generate_fiu_sigs("tex", "2D", Proj) |
| generate_fiu_sigs("tex", "2D", Proj, 1) |
| generate_fiu_sigs("tex", "3D", Proj) |
| generate_sigs("", "tex", "1DShadow", Proj | Single, 1); |
| generate_sigs("", "tex", "2DShadow", Proj | Single); |
| generate_fiu_sigs("tex", "2DRect", Proj) |
| generate_fiu_sigs("tex", "2DRect", Proj, 1) |
| generate_sigs("", "tex", "2DRectShadow", Proj | Single); |
| |
| generate_fiu_sigs("txb", "1D", Proj) |
| generate_fiu_sigs("txb", "1D", Proj, 2) |
| generate_fiu_sigs("txb", "2D", Proj) |
| generate_fiu_sigs("txb", "2D", Proj, 1) |
| generate_fiu_sigs("txb", "3D", Proj) |
| generate_sigs("", "txb", "1DShadow", Proj | Single, 1); |
| generate_sigs("", "txb", "2DShadow", Proj | Single); |
| end_function(fs, "textureProj") |
| |
| start_function("textureLod") |
| generate_fiu_sigs("txl", "1D") |
| generate_fiu_sigs("txl", "2D") |
| generate_fiu_sigs("txl", "3D") |
| generate_fiu_sigs("txl", "Cube") |
| generate_fiu_sigs("txl", "1DArray") |
| generate_fiu_sigs("txl", "2DArray") |
| generate_sigs("", "txl", "1DShadow", Single, 1); |
| generate_sigs("", "txl", "2DShadow", Single); |
| generate_sigs("", "txl", "1DArrayShadow", Single); |
| end_function(fs, "textureLod") |
| |
| start_function("textureLodOffset") |
| generate_fiu_sigs("txl", "1D", Offset) |
| generate_fiu_sigs("txl", "2D", Offset) |
| generate_fiu_sigs("txl", "3D", Offset) |
| generate_fiu_sigs("txl", "1DArray", Offset) |
| generate_fiu_sigs("txl", "2DArray", Offset) |
| generate_sigs("", "txl", "1DShadow", Offset | Single, 1); |
| generate_sigs("", "txl", "2DShadow", Offset | Single); |
| generate_sigs("", "txl", "1DArrayShadow", Offset | Single); |
| end_function(fs, "textureLodOffset") |
| |
| start_function("textureOffset") |
| generate_fiu_sigs("tex", "1D", Offset) |
| generate_fiu_sigs("tex", "2D", Offset) |
| generate_fiu_sigs("tex", "3D", Offset) |
| generate_fiu_sigs("tex", "2DRect", Offset) |
| generate_sigs("", "tex", "2DRectShadow", Offset | Single); |
| generate_fiu_sigs("tex", "1DArray", Offset) |
| generate_fiu_sigs("tex", "2DArray", Offset) |
| generate_sigs("", "tex", "1DShadow", Offset | Single, 1); |
| generate_sigs("", "tex", "2DShadow", Offset | Single); |
| generate_sigs("", "tex", "1DArrayShadow", Offset | Single); |
| |
| generate_fiu_sigs("txb", "1D", Offset) |
| generate_fiu_sigs("txb", "2D", Offset) |
| generate_fiu_sigs("txb", "3D", Offset) |
| generate_fiu_sigs("txb", "1DArray", Offset) |
| generate_fiu_sigs("txb", "2DArray", Offset) |
| generate_sigs("", "txb", "1DShadow", Offset | Single, 1); |
| generate_sigs("", "txb", "2DShadow", Offset | Single); |
| generate_sigs("", "txb", "1DArrayShadow", Offset | Single); |
| end_function(fs, "textureOffset") |
| |
| start_function("texelFetch") |
| generate_fiu_sigs("txf", "1D") |
| generate_fiu_sigs("txf", "2D") |
| generate_fiu_sigs("txf", "3D") |
| generate_fiu_sigs("txf", "2DRect") |
| generate_fiu_sigs("txf", "1DArray") |
| generate_fiu_sigs("txf", "2DArray") |
| generate_fiu_sigs("txf", "Buffer") |
| end_function(fs, "texelFetch") |
| |
| start_function("texelFetchOffset") |
| generate_fiu_sigs("txf", "1D", Offset) |
| generate_fiu_sigs("txf", "2D", Offset) |
| generate_fiu_sigs("txf", "3D", Offset) |
| generate_fiu_sigs("txf", "2DRect", Offset) |
| generate_fiu_sigs("txf", "1DArray", Offset) |
| generate_fiu_sigs("txf", "2DArray", Offset) |
| end_function(fs, "texelFetchOffset") |
| |
| start_function("textureProjOffset") |
| generate_fiu_sigs("tex", "1D", Proj | Offset) |
| generate_fiu_sigs("tex", "1D", Proj | Offset, 2) |
| generate_fiu_sigs("tex", "2D", Proj | Offset) |
| generate_fiu_sigs("tex", "2D", Proj | Offset, 1) |
| generate_fiu_sigs("tex", "3D", Proj | Offset) |
| generate_fiu_sigs("tex", "2DRect", Proj | Offset) |
| generate_fiu_sigs("tex", "2DRect", Proj | Offset, 1) |
| generate_sigs("", "tex", "2DRectShadow", Proj | Offset | Single); |
| generate_sigs("", "tex", "1DShadow", Proj | Offset | Single, 1); |
| generate_sigs("", "tex", "2DShadow", Proj | Offset | Single); |
| |
| generate_fiu_sigs("txb", "1D", Proj | Offset) |
| generate_fiu_sigs("txb", "1D", Proj | Offset, 2) |
| generate_fiu_sigs("txb", "2D", Proj | Offset) |
| generate_fiu_sigs("txb", "2D", Proj | Offset, 1) |
| generate_fiu_sigs("txb", "3D", Proj | Offset) |
| generate_sigs("", "txb", "1DShadow", Proj | Offset | Single, 1); |
| generate_sigs("", "txb", "2DShadow", Proj | Offset | Single); |
| end_function(fs, "textureProjOffset") |
| |
| start_function("textureProjLod") |
| generate_fiu_sigs("txl", "1D", Proj) |
| generate_fiu_sigs("txl", "1D", Proj, 2) |
| generate_fiu_sigs("txl", "2D", Proj) |
| generate_fiu_sigs("txl", "2D", Proj, 1) |
| generate_fiu_sigs("txl", "3D", Proj) |
| generate_sigs("", "txl", "1DShadow", Proj | Single, 1); |
| generate_sigs("", "txl", "2DShadow", Proj | Single); |
| end_function(fs, "textureProjLod") |
| |
| start_function("textureProjLodOffset") |
| generate_fiu_sigs("txl", "1D", Proj | Offset) |
| generate_fiu_sigs("txl", "1D", Proj | Offset, 2) |
| generate_fiu_sigs("txl", "2D", Proj | Offset) |
| generate_fiu_sigs("txl", "2D", Proj | Offset, 1) |
| generate_fiu_sigs("txl", "3D", Proj | Offset) |
| generate_sigs("", "txl", "1DShadow", Proj | Offset | Single, 1); |
| generate_sigs("", "txl", "2DShadow", Proj | Offset | Single); |
| end_function(fs, "textureProjLodOffset") |
| |
| start_function("textureGrad") |
| generate_fiu_sigs("txd", "1D") |
| generate_fiu_sigs("txd", "2D") |
| generate_fiu_sigs("txd", "3D") |
| generate_fiu_sigs("txd", "Cube") |
| generate_fiu_sigs("txd", "1DArray") |
| generate_fiu_sigs("txd", "2DArray") |
| generate_fiu_sigs("txd", "2DRect") |
| generate_sigs("", "txd", "2DRectShadow", Single); |
| generate_sigs("", "txd", "1DShadow", Single, 1); |
| generate_sigs("", "txd", "2DShadow", Single); |
| generate_sigs("", "txd", "CubeShadow", Single); |
| generate_sigs("", "txd", "1DArrayShadow", Single); |
| generate_sigs("", "txd", "2DArrayShadow", Single); |
| end_function(fs, "textureGrad") |
| |
| start_function("textureGradOffset") |
| generate_fiu_sigs("txd", "1D", Offset) |
| generate_fiu_sigs("txd", "2D", Offset) |
| generate_fiu_sigs("txd", "3D", Offset) |
| generate_fiu_sigs("txd", "2DRect", Offset) |
| generate_sigs("", "txd", "2DRectShadow", Offset | Single); |
| generate_fiu_sigs("txd", "1DArray", Offset) |
| generate_fiu_sigs("txd", "2DArray", Offset) |
| generate_sigs("", "txd", "1DShadow", Offset | Single, 1); |
| generate_sigs("", "txd", "2DShadow", Offset | Single); |
| generate_sigs("", "txd", "1DArrayShadow", Offset | Single); |
| generate_sigs("", "txd", "2DArrayShadow", Offset | Single); |
| end_function(fs, "textureGradOffset") |
| |
| start_function("textureProjGrad") |
| generate_fiu_sigs("txd", "1D", Proj) |
| generate_fiu_sigs("txd", "1D", Proj, 2) |
| generate_fiu_sigs("txd", "2D", Proj) |
| generate_fiu_sigs("txd", "2D", Proj, 1) |
| generate_fiu_sigs("txd", "3D", Proj) |
| generate_fiu_sigs("txd", "2DRect", Proj) |
| generate_fiu_sigs("txd", "2DRect", Proj, 1) |
| generate_sigs("", "txd", "2DRectShadow", Proj | Single); |
| generate_sigs("", "txd", "1DShadow", Proj | Single, 1); |
| generate_sigs("", "txd", "2DShadow", Proj | Single); |
| end_function(fs, "textureProjGrad") |
| |
| start_function("textureProjGradOffset") |
| generate_fiu_sigs("txd", "1D", Proj | Offset) |
| generate_fiu_sigs("txd", "1D", Proj | Offset, 2) |
| generate_fiu_sigs("txd", "2D", Proj | Offset) |
| generate_fiu_sigs("txd", "2D", Proj | Offset, 1) |
| generate_fiu_sigs("txd", "3D", Proj | Offset) |
| generate_fiu_sigs("txd", "2DRect", Proj | Offset) |
| generate_fiu_sigs("txd", "2DRect", Proj | Offset, 1) |
| generate_sigs("", "txd", "2DRectShadow", Proj | Offset | Single); |
| generate_sigs("", "txd", "1DShadow", Proj | Offset | Single, 1); |
| generate_sigs("", "txd", "2DShadow", Proj | Offset | Single); |
| end_function(fs, "textureProjGradOffset") |
| |
| |
| # ARB_texture_rectangle extension |
| start_function("texture2DRect") |
| generate_sigs("", "tex", "2DRect") |
| end_function(fs, "texture2DRect") |
| |
| start_function("texture2DRectProj") |
| generate_sigs("", "tex", "2DRect", Proj) |
| generate_sigs("", "tex", "2DRect", Proj, 1) |
| end_function(fs, "texture2DRectProj") |
| |
| start_function("shadow2DRect") |
| generate_sigs("", "tex", "2DRectShadow") |
| end_function(fs, "shadow2DRect") |
| |
| start_function("shadow2DRectProj") |
| generate_sigs("", "tex", "2DRectShadow", Proj) |
| end_function(fs, "shadow2DRectProj") |
| |
| # EXT_texture_array extension |
| start_function("texture1DArray") |
| generate_sigs("", "tex", "1DArray") |
| generate_sigs("", "txb", "1DArray") |
| end_function(fs, "texture1DArray") |
| |
| start_function("texture1DArrayLod") |
| generate_sigs("", "txl", "1DArray") |
| end_function(fs, "texture1DArrayLod") |
| |
| start_function("texture2DArray") |
| generate_sigs("", "tex", "2DArray") |
| generate_sigs("", "txb", "2DArray") |
| end_function(fs, "texture2DArray") |
| |
| start_function("texture2DArrayLod") |
| generate_sigs("", "txl", "2DArray") |
| end_function(fs, "texture2DArrayLod") |
| |
| start_function("shadow1DArray") |
| generate_sigs("", "tex", "1DArrayShadow") |
| generate_sigs("", "txb", "1DArrayShadow") |
| end_function(fs, "shadow1DArray") |
| |
| start_function("shadow1DArrayLod") |
| generate_sigs("", "txl", "1DArrayShadow") |
| end_function(fs, "shadow1DArrayLod") |
| |
| start_function("shadow2DArray") |
| generate_sigs("", "tex", "2DArrayShadow") |
| end_function(fs, "shadow2DArray") |
| |
| # ARB_shader_texture_lod extension |
| start_function("texture1DGradARB") |
| generate_fiu_sigs("txd", "1D") |
| end_function(fs, "texture1DGradARB") |
| |
| start_function("texture2DGradARB") |
| generate_fiu_sigs("txd", "2D") |
| end_function(fs, "texture2DGradARB") |
| |
| start_function("texture3DGradARB") |
| generate_fiu_sigs("txd", "3D") |
| end_function(fs, "texture3DGradARB") |
| |
| start_function("textureCubeGradARB") |
| generate_fiu_sigs("txd", "Cube") |
| end_function(fs, "textureCubeGradARB") |
| |
| start_function("texture1DProjGradARB") |
| generate_fiu_sigs("txd", "1D", True) |
| generate_fiu_sigs("txd", "1D", True, 2) |
| end_function(fs, "texture1DProjGradARB") |
| |
| start_function("texture2DProjGradARB") |
| generate_fiu_sigs("txd", "2D", True) |
| generate_fiu_sigs("txd", "2D", True, 1) |
| end_function(fs, "texture2DProjGradARB") |
| |
| start_function("texture3DProjGradARB") |
| generate_fiu_sigs("txd", "3D", True) |
| end_function(fs, "texture3DProjGradARB") |
| |
| start_function("shadow1DGradARB") |
| generate_sigs("", "txd", "1DShadow", False, 1) |
| end_function(fs, "shadow1DGradARB") |
| |
| start_function("shadow1DProjGradARB") |
| generate_sigs("", "txd", "1DShadow", True, 1) |
| end_function(fs, "shadow1DProjGradARB") |
| |
| start_function("shadow2DGradARB") |
| generate_sigs("", "txd", "2DShadow", False) |
| end_function(fs, "shadow2DGradARB") |
| |
| start_function("shadow2DProjGradARB") |
| generate_sigs("", "txd", "2DShadow", True) |
| end_function(fs, "shadow2DProjGradARB") |
| |
| start_function("texture2DRectGradARB") |
| generate_sigs("", "txd", "2DRect") |
| end_function(fs, "texture2DRectGradARB") |
| |
| start_function("texture2DRectProjGradARB") |
| generate_sigs("", "txd", "2DRect", True) |
| generate_sigs("", "txd", "2DRect", True, 1) |
| end_function(fs, "texture2DRectProjGradARB") |
| |
| start_function("shadow2DRectGradARB") |
| generate_sigs("", "txd", "2DRectShadow", False) |
| end_function(fs, "shadow2DRectGradARB") |
| |
| start_function("shadow2DRectProjGradARB") |
| generate_sigs("", "txd", "2DRectShadow", True) |
| end_function(fs, "shadow2DRectProjGradARB") |
| |
| # Deprecated (110/120 style) functions with silly names: |
| start_function("texture1D") |
| generate_sigs("", "tex", "1D") |
| generate_sigs("", "txb", "1D") |
| end_function(fs, "texture1D") |
| |
| start_function("texture1DLod") |
| generate_sigs("", "txl", "1D") |
| end_function(fs, "texture1DLod") |
| |
| start_function("texture1DProj") |
| generate_sigs("", "tex", "1D", Proj) |
| generate_sigs("", "tex", "1D", Proj, 2) |
| generate_sigs("", "txb", "1D", Proj) |
| generate_sigs("", "txb", "1D", Proj, 2) |
| end_function(fs, "texture1DProj") |
| |
| start_function("texture1DProjLod") |
| generate_sigs("", "txl", "1D", Proj) |
| generate_sigs("", "txl", "1D", Proj, 2) |
| end_function(fs, "texture1DProjLod") |
| |
| start_function("texture2D") |
| generate_sigs("", "tex", "2D") |
| generate_sigs("", "txb", "2D") |
| # OES_EGL_image_external |
| generate_sigs("", "tex", "ExternalOES") |
| end_function(fs, "texture2D") |
| |
| start_function("texture2DLod") |
| generate_sigs("", "txl", "2D") |
| end_function(fs, "texture2DLod") |
| |
| start_function("texture2DProj") |
| generate_sigs("", "tex", "2D", Proj) |
| generate_sigs("", "tex", "2D", Proj, 1) |
| generate_sigs("", "txb", "2D", Proj) |
| generate_sigs("", "txb", "2D", Proj, 1) |
| # OES_EGL_image_external |
| generate_sigs("", "tex", "ExternalOES", Proj) |
| generate_sigs("", "tex", "ExternalOES", Proj, 1) |
| end_function(fs, "texture2DProj") |
| |
| start_function("texture2DProjLod") |
| generate_sigs("", "txl", "2D", Proj) |
| generate_sigs("", "txl", "2D", Proj, 1) |
| end_function(fs, "texture2DProjLod") |
| |
| start_function("texture3D") |
| generate_sigs("", "tex", "3D") |
| generate_sigs("", "txb", "3D") |
| end_function(fs, "texture3D") |
| |
| start_function("texture3DLod") |
| generate_sigs("", "txl", "3D") |
| end_function(fs, "texture3DLod") |
| |
| start_function("texture3DProj") |
| generate_sigs("", "tex", "3D", Proj) |
| generate_sigs("", "txb", "3D", Proj) |
| end_function(fs, "texture3DProj") |
| |
| start_function("texture3DProjLod") |
| generate_sigs("", "txl", "3D", Proj) |
| end_function(fs, "texture3DProjLod") |
| |
| start_function("textureCube") |
| generate_sigs("", "tex", "Cube") |
| generate_sigs("", "txb", "Cube") |
| end_function(fs, "textureCube") |
| |
| start_function("textureCubeLod") |
| generate_sigs("", "txl", "Cube") |
| end_function(fs, "textureCubeLod") |
| |
| start_function("shadow1D") |
| generate_sigs("", "tex", "1DShadow", False, 1) |
| generate_sigs("", "txb", "1DShadow", False, 1) |
| end_function(fs, "shadow1D") |
| |
| start_function("shadow1DLod") |
| generate_sigs("", "txl", "1DShadow", False, 1) |
| end_function(fs, "shadow1DLod") |
| |
| start_function("shadow1DProj") |
| generate_sigs("", "tex", "1DShadow", Proj, 1) |
| generate_sigs("", "txb", "1DShadow", Proj, 1) |
| end_function(fs, "shadow1DProj") |
| |
| start_function("shadow1DProjLod") |
| generate_sigs("", "txl", "1DShadow", Proj, 1) |
| end_function(fs, "shadow1DProjLod") |
| |
| start_function("shadow2D") |
| generate_sigs("", "tex", "2DShadow") |
| generate_sigs("", "txb", "2DShadow") |
| end_function(fs, "shadow2D") |
| |
| start_function("shadow2DLod") |
| generate_sigs("", "txl", "2DShadow") |
| end_function(fs, "shadow2DLod") |
| |
| start_function("shadow2DProj") |
| generate_sigs("", "tex", "2DShadow", Proj) |
| generate_sigs("", "txb", "2DShadow", Proj) |
| end_function(fs, "shadow2DProj") |
| |
| start_function("shadow2DProjLod") |
| generate_sigs("", "txl", "2DShadow", Proj) |
| end_function(fs, "shadow2DProjLod") |
| |
| sys.stdout = sys.__stdout__ |
| return fs |
| |
| # If you actually run this script, it'll print out all the functions. |
| if __name__ == "__main__": |
| fs = {} |
| generate_texture_functions(fs); |
| for k, v in fs.iteritems(): |
| print v |