ShaderEnums

class ShaderEnums

Provides scoping for various enum types that are used by both ShaderModule and Shader classes.

Inheritance diagram

digraph inheritance93cace3f7a { bgcolor=transparent; rankdir=BT; size="8.0, 12.0"; "DTOOL_SUPER_BASE" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style=""]; "ShaderEnums" [URL="acron.core.ShaderEnums.html#acron.core.ShaderEnums",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=11,height=0.25,shape=box,style="",target="_top",tooltip="/**"]; "DTOOL_SUPER_BASE" -> "ShaderEnums" [arrowsize=0.75,style=""]; }
enum Capabilities

Indicates which features are used by the shader, which can be used by the driver to check whether cross-compilation is possible, or whether certain transformation steps may need to be applied.

enumerator C_basic_shader = 1

Always set, indicates that we support basic vertex+fragment shaders.

enumerator C_vertex_texture = 2
enumerator C_point_coord = 4
enumerator C_standard_derivatives = 8
enumerator C_shadow_samplers = 16

1D and 2D only

enumerator C_non_square_matrices = 32

GLSL 1.20

enumerator C_texture_lod = 64

textureLod in vshader doesn’t count, textureGrad does

enumerator C_unified_model = 128

/** * This cap deserves some explanation: it refers to the new shader model * exposed by hardware capable of OpenGL 3.0 / DirectX 10 (SM 4.0) and above * or GL_EXT_gpu_shader4, adding features like: * - “true” (non-emulated) 32-bit integers and operations * - unsigned integers * - integer samplers (if C_texture_integer is also present) * - integer varyings * - integer bitwise operations * - flat interpolation * - roundEven * - texelFetch * Because all these features require the new shader model and are not * offered individually, they have been wrapped up in a single bit flag. * A shader with this bit set will not work with DirectX 9. */

enumerator C_noperspective_interpolation = 256

not supported in GLES

enumerator C_texture_array = 512
enumerator C_texture_integer = 1024

usampler2D, isampler2D, etc.

enumerator C_texture_query_size = 2048

textureSize, etc. (could be emulated)

enumerator C_sampler_cube_shadow = 4096
enumerator C_vertex_id = 8192
enumerator C_draw_buffers = 16384

MRT

enumerator C_clip_distance = 32768

gl_ClipDistance

enumerator C_instance_id = 65536

ES 3.00

enumerator C_texture_buffer = 131072

ES 3.20

enumerator C_geometry_shader = 262144

GLSL 1.50 / ES 3.20 / SM 4.0

enumerator C_primitive_id = 524288
enumerator C_bit_encoding = 1048576

GLSL 3.30 / ES 3.00 / SM 4.0

enumerator C_texture_query_lod = 2097152

GLSL 4.00 / SM 4.1

enumerator C_texture_gather_red = 4194304
enumerator C_texture_gather_any = 8388608

GLSL 4.00 / ES 3.10 / SM 5.0

enumerator C_extended_arithmetic = 16777216
enumerator C_double = 33554432

Not in ES

enumerator C_cube_map_array = 67108864

GLSL 4.00 / ES 3.20 / SM 5.0

enumerator C_geometry_shader_instancing = 134217728
enumerator C_tessellation_shader = 268435456
enumerator C_sample_variables = 536870912
enumerator C_multisample_interpolation = 1073741824
enumerator C_dynamic_indexing = -2147483648

SM 5.1

enumerator C_atomic_counters = 1

GLSL 4.20 / ES 3.10 / SM 5.0

enumerator C_image_load_store = 2
enumerator C_image_atomic = 4

ES 3.20 or OES_shader_image_atomic

enumerator C_image_query_size = 8

GLSL 4.30 / ES 3.10 / SM 5.0

enumerator C_texture_query_levels = 16

not in ES

enumerator C_storage_buffer = 32
enumerator C_compute_shader = 64
enumerator C_enhanced_layouts = 128

GLSL 4.40 / ARB_enhanced_layouts

enumerator C_cull_distance = 256

GLSL 4.50

enumerator C_derivative_control = 512
enumerator C_texture_query_samples = 1024
enumerator C_debug_output = 2048

Debugging features (not linked to any particular version)

enum Dependency
enumerator D_none = 0
enumerator D_frame = 1
enumerator D_scene = 2
enumerator D_vertex_data = 8
enumerator D_transform = 48
enumerator D_view_transform = 32
enumerator D_projection = 64
enumerator D_color = 128
enumerator D_colorscale = 256
enumerator D_material = 512
enumerator D_shader_inputs = 1024
enumerator D_fog = 2048
enumerator D_light = 4096
enumerator D_clip_planes = 8192
enumerator D_tex_matrix = 16384
enumerator D_texture = 32768
enumerator D_tex_gen = 65536
enumerator D_render_mode = 131072
enumerator D_alpha_test = 262144
enumerator D_state = 524160
enum SourceLanguage
enumerator SL_none = 0
enumerator SL_Cg = 1
enumerator SL_GLSL = 2
enumerator SL_HLSL = 3
class ShaderEnums.SourceLanguages

Bases:

alias of pvector_SourceLanguage

enum Stage
enumerator VERTEX = 0
enumerator TESS_CONTROL = 1
enumerator TESS_EVALUATION = 2
enumerator GEOMETRY = 3
enumerator FRAGMENT = 4
enumerator COMPUTE = 5
enum StateMatrix
enumerator SM_identity = 0
enumerator SM_plane_x = 1
enumerator SM_clipplane_x = 2
enumerator SM_mat_constant_x = 3
enumerator SM_vec_constant_x = 4
enumerator SM_world_to_view = 5
enumerator SM_view_to_world = 6
enumerator SM_world_to_apiview = 7
enumerator SM_apiview_to_world = 8
enumerator SM_model_to_view = 9
enumerator SM_view_to_model = 10
enumerator SM_apiview_to_view = 11
enumerator SM_view_to_apiview = 12
enumerator SM_clip_to_view = 13
enumerator SM_view_to_clip = 14
enumerator SM_apiclip_to_view = 15
enumerator SM_view_to_apiclip = 16
enumerator SM_view_x_to_view = 17
enumerator SM_view_to_view_x = 18
enumerator SM_apiview_x_to_view = 19
enumerator SM_view_to_apiview_x = 20
enumerator SM_clip_x_to_view = 21
enumerator SM_view_to_clip_x = 22
enumerator SM_apiclip_x_to_view = 23
enumerator SM_view_to_apiclip_x = 24
enumerator SM_model_to_apiview = 25
enumerator SM_apiview_to_model = 26
enumerator SM_apiview_to_apiclip = 27
enumerator SM_apiclip_to_apiview = 28
enumerator SM_world_to_apiclip_light_i = 29
enumerator SM_point_attenuation = 30
enumerator SM_INVALID = 31
ShaderEnums.__init__()
static ShaderEnums.format_stage()

Returns the stage as a string.

static ShaderEnums.get_matrix_deps()
static ShaderEnums.output_capabilities()

Outputs the given capabilities mask.