diff --git a/src/Common/Game/T5/T5_Assets.h b/src/Common/Game/T5/T5_Assets.h index d6c01e01..9f07bf5f 100644 --- a/src/Common/Game/T5/T5_Assets.h +++ b/src/Common/Game/T5/T5_Assets.h @@ -1091,6 +1091,50 @@ namespace T5 GfxStateBits* stateBitsTable; }; + enum MaterialStreamStreamSource_e + { + STREAM_SRC_POSITION = 0x0, + STREAM_SRC_COLOR = 0x1, + STREAM_SRC_TEXCOORD_0 = 0x2, + STREAM_SRC_NORMAL = 0x3, + STREAM_SRC_TANGENT = 0x4, + STREAM_SRC_OPTIONAL_BEGIN = 0x5, + STREAM_SRC_PRE_OPTIONAL_BEGIN = 0x4, + STREAM_SRC_TEXCOORD_1 = 0x5, + STREAM_SRC_TEXCOORD_2 = 0x6, + STREAM_SRC_NORMAL_TRANSFORM_0 = 0x7, + STREAM_SRC_NORMAL_TRANSFORM_1 = 0x8, + STREAM_SRC_BLEND_WEIGHT = 0x9, + + STREAM_SRC_COUNT + }; + + enum MaterialStreamDestination_e + { + STREAM_DST_POSITION = 0x0, + STREAM_DST_NORMAL = 0x1, + STREAM_DST_COLOR_0 = 0x2, + STREAM_DST_COLOR_1 = 0x3, + STREAM_DST_DEPTH = 0x4, + STREAM_DST_TEXCOORD_0 = 0x5, + STREAM_DST_TEXCOORD_1 = 0x6, + STREAM_DST_TEXCOORD_2 = 0x7, + STREAM_DST_TEXCOORD_3 = 0x8, + STREAM_DST_TEXCOORD_4 = 0x9, + STREAM_DST_TEXCOORD_5 = 0xA, + STREAM_DST_TEXCOORD_6 = 0xB, + STREAM_DST_TEXCOORD_7 = 0xC, + STREAM_DST_TEXCOORD_8 = 0xD, + STREAM_DST_TEXCOORD_9 = 0xE, + STREAM_DST_TEXCOORD_10 = 0xF, + STREAM_DST_TEXCOORD_11 = 0x10, + STREAM_DST_TEXCOORD_12 = 0x11, + STREAM_DST_TEXCOORD_13 = 0x12, + STREAM_DST_BLENDWEIGHT = 0x13, + + STREAM_DST_COUNT + }; + struct MaterialStreamRouting { char source; @@ -1147,6 +1191,312 @@ namespace T5 MaterialPixelShaderProgram prog; }; + enum MaterialConstantSource + { + CONST_SRC_CODE_MAYBE_DIRTY_PS_BEGIN = 0x0, + + CONST_SRC_CODE_LIGHT_POSITION = 0x0, + CONST_SRC_CODE_LIGHT_DIFFUSE = 0x1, + CONST_SRC_CODE_LIGHT_SPECULAR = 0x2, + CONST_SRC_CODE_LIGHT_SPOTDIR = 0x3, + CONST_SRC_CODE_LIGHT_SPOTFACTORS = 0x4, + CONST_SRC_CODE_LIGHT_ATTENUATION = 0x5, + CONST_SRC_CODE_LIGHT_FALLOFF_A = 0x6, + CONST_SRC_CODE_LIGHT_FALLOFF_B = 0x7, + CONST_SRC_CODE_LIGHT_SPOT_MATRIX0 = 0x8, + CONST_SRC_CODE_LIGHT_SPOT_MATRIX1 = 0x9, + CONST_SRC_CODE_LIGHT_SPOT_MATRIX2 = 0xA, + CONST_SRC_CODE_LIGHT_SPOT_MATRIX3 = 0xB, + CONST_SRC_CODE_LIGHT_SPOT_AABB = 0xC, + CONST_SRC_CODE_LIGHT_CONE_CONTROL1 = 0xD, + CONST_SRC_CODE_LIGHT_CONE_CONTROL2 = 0xE, + CONST_SRC_CODE_LIGHT_SPOT_COOKIE_SLIDE_CONTROL = 0xF, + CONST_SRC_CODE_NEARPLANE_ORG = 0x10, + CONST_SRC_CODE_NEARPLANE_DX = 0x11, + CONST_SRC_CODE_NEARPLANE_DY = 0x12, + CONST_SRC_CODE_SHADOW_PARMS = 0x13, + CONST_SRC_CODE_SHADOWMAP_POLYGON_OFFSET = 0x14, + CONST_SRC_CODE_RENDER_TARGET_SIZE = 0x15, + CONST_SRC_CODE_VPOSX_TO_WORLD = 0x16, + CONST_SRC_CODE_VPOSY_TO_WORLD = 0x17, + CONST_SRC_CODE_VPOS1_TO_WORLD = 0x18, + CONST_SRC_CODE_LIGHT_FALLOFF_PLACEMENT = 0x19, + CONST_SRC_CODE_DOF_EQUATION_VIEWMODEL_AND_FAR_BLUR = 0x1A, + CONST_SRC_CODE_DOF_EQUATION_SCENE = 0x1B, + CONST_SRC_CODE_DOF_LERP_SCALE = 0x1C, + CONST_SRC_CODE_DOF_LERP_BIAS = 0x1D, + CONST_SRC_CODE_DOF_ROW_DELTA = 0x1E, + CONST_SRC_CODE_PARTICLE_CLOUD_COLOR = 0x1F, + CONST_SRC_CODE_GAMETIME = 0x20, + CONST_SRC_CODE_ALPHA_FADE = 0x21, + + CONST_SRC_CODE_MAYBE_DIRTY_PS_END = 0x22, + CONST_SRC_CODE_ALWAYS_DIRTY_PS_BEGIN = 0x22, + + CONST_SRC_CODE_PIXEL_COST_FRACS = 0x22, + CONST_SRC_CODE_PIXEL_COST_DECODE = 0x23, + CONST_SRC_CODE_FILTER_TAP_0 = 0x24, + CONST_SRC_CODE_FILTER_TAP_1 = 0x25, + CONST_SRC_CODE_FILTER_TAP_2 = 0x26, + CONST_SRC_CODE_FILTER_TAP_3 = 0x27, + CONST_SRC_CODE_FILTER_TAP_4 = 0x28, + CONST_SRC_CODE_FILTER_TAP_5 = 0x29, + CONST_SRC_CODE_FILTER_TAP_6 = 0x2A, + CONST_SRC_CODE_FILTER_TAP_7 = 0x2B, + CONST_SRC_CODE_COLOR_MATRIX_R = 0x2C, + CONST_SRC_CODE_COLOR_MATRIX_G = 0x2D, + CONST_SRC_CODE_COLOR_MATRIX_B = 0x2E, + + CONST_SRC_CODE_ALWAYS_DIRTY_PS_END = 0x2F, + CONST_SRC_CODE_NEVER_DIRTY_PS_BEGIN = 0x2F, + + CONST_SRC_CODE_SHADOWMAP_SWITCH_PARTITION = 0x2F, + CONST_SRC_CODE_SHADOWMAP_SCALE = 0x30, + CONST_SRC_CODE_ZNEAR = 0x31, + CONST_SRC_CODE_SUN_POSITION = 0x32, + CONST_SRC_CODE_SUN_DIFFUSE = 0x33, + CONST_SRC_CODE_SUN_SPECULAR = 0x34, + CONST_SRC_CODE_LIGHTING_LOOKUP_SCALE = 0x35, + CONST_SRC_CODE_DEBUG_BUMPMAP = 0x36, + CONST_SRC_CODE_MATERIAL_COLOR = 0x37, + CONST_SRC_CODE_FOG = 0x38, + CONST_SRC_CODE_FOG2 = 0x39, + CONST_SRC_CODE_FOG_COLOR = 0x3A, + CONST_SRC_CODE_SUN_FOG = 0x3B, + CONST_SRC_CODE_SUN_FOG_DIR = 0x3C, + CONST_SRC_CODE_SUN_FOG_COLOR = 0x3D, + CONST_SRC_CODE_GLOW_SETUP = 0x3E, + CONST_SRC_CODE_GLOW_APPLY = 0x3F, + CONST_SRC_CODE_COLOR_BIAS = 0x40, + CONST_SRC_CODE_COLOR_TINT_BASE = 0x41, + CONST_SRC_CODE_COLOR_TINT_DELTA = 0x42, + CONST_SRC_CODE_OUTDOOR_FEATHER_PARMS = 0x43, + CONST_SRC_CODE_SKY_TRANSITION = 0x44, + CONST_SRC_CODE_ENVMAP_PARMS = 0x45, + CONST_SRC_CODE_SPOT_SHADOWMAP_PIXEL_ADJUST = 0x46, + CONST_SRC_CODE_DLIGHT_SPOT_SHADOWMAP_PIXEL_ADJUST = 0x47, + CONST_SRC_CODE_CLIP_SPACE_LOOKUP_SCALE = 0x48, + CONST_SRC_CODE_CLIP_SPACE_LOOKUP_OFFSET = 0x49, + CONST_SRC_CODE_PARTICLE_CLOUD_MATRIX = 0x4A, + CONST_SRC_CODE_DEPTH_FROM_CLIP = 0x4B, + CONST_SRC_CODE_CODE_MESH_ARG_0 = 0x4C, + CONST_SRC_CODE_CODE_MESH_ARG_1 = 0x4D, + + CONST_SRC_CODE_CODE_MESH_ARG_LAST = 0x4D, + + CONST_SRC_CODE_BASE_LIGHTING_COORDS = 0x4E, + CONST_SRC_CODE_WIND_DIRECTION = 0x4F, + CONST_SRC_CODE_WATER_PARMS = 0x50, + CONST_SRC_CODE_GRASS_PARMS = 0x51, + CONST_SRC_CODE_GRASS_FORCE0 = 0x52, + CONST_SRC_CODE_GRASS_FORCE1 = 0x53, + CONST_SRC_CODE_GRASS_WIND_FORCE0 = 0x54, + CONST_SRC_CODE_MOTIONBLUR_DIRECTION_AND_MAGNITUDE = 0x55, + CONST_SRC_CODE_COMPOSITE_FX_DISTORTION = 0x56, + CONST_SRC_CODE_GLOW_BLOOM_SCALE = 0x57, + CONST_SRC_CODE_COMPOSITE_FX_OVERLAY_TEXCOORD = 0x58, + CONST_SRC_CODE_COLOR_BIAS1 = 0x59, + CONST_SRC_CODE_COLOR_TINT_BASE1 = 0x5A, + CONST_SRC_CODE_COLOR_TINT_DELTA1 = 0x5B, + CONST_SRC_CODE_POSTFX_FADE_EFFECT = 0x5C, + CONST_SRC_CODE_VIEWPORT_DIMENSIONS = 0x5D, + CONST_SRC_CODE_FRAMEBUFFER_READ = 0x5E, + CONST_SRC_CODE_RESIZE_PARAMS1 = 0x5F, + CONST_SRC_CODE_RESIZE_PARAMS2 = 0x60, + CONST_SRC_CODE_RESIZE_PARAMS3 = 0x61, + CONST_SRC_CODE_VARIANT_WIND_SPRING_0 = 0x62, + CONST_SRC_CODE_VARIANT_WIND_SPRING_1 = 0x63, + CONST_SRC_CODE_VARIANT_WIND_SPRING_2 = 0x64, + CONST_SRC_CODE_VARIANT_WIND_SPRING_3 = 0x65, + CONST_SRC_CODE_VARIANT_WIND_SPRING_4 = 0x66, + CONST_SRC_CODE_VARIANT_WIND_SPRING_5 = 0x67, + CONST_SRC_CODE_VARIANT_WIND_SPRING_6 = 0x68, + CONST_SRC_CODE_VARIANT_WIND_SPRING_7 = 0x69, + CONST_SRC_CODE_VARIANT_WIND_SPRING_8 = 0x6A, + CONST_SRC_CODE_VARIANT_WIND_SPRING_9 = 0x6B, + CONST_SRC_CODE_VARIANT_WIND_SPRING_10 = 0x6C, + CONST_SRC_CODE_VARIANT_WIND_SPRING_11 = 0x6D, + CONST_SRC_CODE_VARIANT_WIND_SPRING_12 = 0x6E, + CONST_SRC_CODE_VARIANT_WIND_SPRING_13 = 0x6F, + CONST_SRC_CODE_VARIANT_WIND_SPRING_14 = 0x70, + CONST_SRC_CODE_VARIANT_WIND_SPRING_15 = 0x71, + CONST_SRC_CODE_DESTRUCTIBLE_PARMS = 0x72, + CONST_SRC_CODE_CLOUD_WORLD_AREA = 0x73, + CONST_SRC_CODE_WATER_SCROLL = 0x74, + CONST_SRC_CODE_CROSSFADE_PARMS = 0x75, + CONST_SRC_CODE_CHARACTER_CHARRED_AMOUNT = 0x76, + CONST_SRC_CODE_TREECANOPY_PARMS = 0x77, + CONST_SRC_CODE_MARKS_HIT_NORMAL = 0x78, + CONST_SRC_CODE_POSTFX_CONTROL0 = 0x79, + CONST_SRC_CODE_POSTFX_CONTROL1 = 0x7A, + CONST_SRC_CODE_POSTFX_CONTROL2 = 0x7B, + CONST_SRC_CODE_POSTFX_CONTROL3 = 0x7C, + CONST_SRC_CODE_POSTFX_CONTROL4 = 0x7D, + CONST_SRC_CODE_POSTFX_CONTROL5 = 0x7E, + CONST_SRC_CODE_POSTFX_CONTROL6 = 0x7F, + CONST_SRC_CODE_POSTFX_CONTROL7 = 0x80, + CONST_SRC_CODE_POSTFX_CONTROL8 = 0x81, + CONST_SRC_CODE_POSTFX_CONTROL9 = 0x82, + CONST_SRC_CODE_POSTFX_CONTROLA = 0x83, + CONST_SRC_CODE_POSTFX_CONTROLB = 0x84, + CONST_SRC_CODE_POSTFX_CONTROLC = 0x85, + CONST_SRC_CODE_POSTFX_CONTROLD = 0x86, + CONST_SRC_CODE_POSTFX_CONTROLE = 0x87, + CONST_SRC_CODE_POSTFX_CONTROLF = 0x88, + CONST_SRC_CODE_HDRCONTROL_0 = 0x89, + CONST_SRC_CODE_HDRCONTROL_1 = 0x8A, + CONST_SRC_CODE_GLIGHT_POSXS = 0x8B, + CONST_SRC_CODE_GLIGHT_POSYS = 0x8C, + CONST_SRC_CODE_GLIGHT_POSZS = 0x8D, + CONST_SRC_CODE_GLIGHT_FALLOFFS = 0x8E, + CONST_SRC_CODE_GLIGHT_REDS = 0x8F, + CONST_SRC_CODE_GLIGHT_GREENS = 0x90, + CONST_SRC_CODE_GLIGHT_BLUES = 0x91, + CONST_SRC_CODE_DLIGHT_POSITION = 0x92, + CONST_SRC_CODE_DLIGHT_DIFFUSE = 0x93, + CONST_SRC_CODE_DLIGHT_SPECULAR = 0x94, + CONST_SRC_CODE_DLIGHT_ATTENUATION = 0x95, + CONST_SRC_CODE_DLIGHT_FALLOFF = 0x96, + CONST_SRC_CODE_DLIGHT_SPOT_MATRIX_0 = 0x97, + CONST_SRC_CODE_DLIGHT_SPOT_MATRIX_1 = 0x98, + CONST_SRC_CODE_DLIGHT_SPOT_MATRIX_2 = 0x99, + CONST_SRC_CODE_DLIGHT_SPOT_MATRIX_3 = 0x9A, + CONST_SRC_CODE_DLIGHT_SPOT_DIR = 0x9B, + CONST_SRC_CODE_DLIGHT_SPOT_FACTORS = 0x9C, + CONST_SRC_CODE_DLIGHT_SHADOW_LOOKUP_MATRIX_0 = 0x9D, + CONST_SRC_CODE_DLIGHT_SHADOW_LOOKUP_MATRIX_1 = 0x9E, + CONST_SRC_CODE_DLIGHT_SHADOW_LOOKUP_MATRIX_2 = 0x9F, + CONST_SRC_CODE_DLIGHT_SHADOW_LOOKUP_MATRIX_3 = 0xA0, + CONST_SRC_CODE_CLOUD_LAYER_CONTROL0 = 0xA1, + CONST_SRC_CODE_CLOUD_LAYER_CONTROL1 = 0xA2, + CONST_SRC_CODE_CLOUD_LAYER_CONTROL2 = 0xA3, + CONST_SRC_CODE_CLOUD_LAYER_CONTROL3 = 0xA4, + CONST_SRC_CODE_CLOUD_LAYER_CONTROL4 = 0xA5, + CONST_SRC_CODE_HERO_LIGHTING_R = 0xA6, + CONST_SRC_CODE_HERO_LIGHTING_G = 0xA7, + CONST_SRC_CODE_HERO_LIGHTING_B = 0xA8, + CONST_SRC_CODE_LIGHT_HERO_SCALE = 0xA9, + CONST_SRC_CODE_CINEMATIC_BLUR_BOX = 0xAA, + CONST_SRC_CODE_CINEMATIC_BLUR_BOX2 = 0xAB, + CONST_SRC_CODE_ADSZSCALE = 0xAC, + CONST_SRC_CODE_UI3D_UV_SETUP_0 = 0xAD, + CONST_SRC_CODE_UI3D_UV_SETUP_1 = 0xAE, + CONST_SRC_CODE_UI3D_UV_SETUP_2 = 0xAF, + CONST_SRC_CODE_UI3D_UV_SETUP_3 = 0xB0, + CONST_SRC_CODE_UI3D_UV_SETUP_4 = 0xB1, + CONST_SRC_CODE_UI3D_UV_SETUP_5 = 0xB2, + CONST_SRC_CODE_CHARACTER_DISSOLVE_COLOR = 0xB3, + CONST_SRC_CODE_CAMERA_LOOK = 0xB4, + CONST_SRC_CODE_CAMERA_UP = 0xB5, + CONST_SRC_CODE_CAMERA_SIDE = 0xB6, + CONST_SRC_CODE_GENERIC_PARAM0 = 0xB7, + CONST_SRC_CODE_GENERIC_PARAM1 = 0xB8, + CONST_SRC_CODE_GENERIC_PARAM2 = 0xB9, + CONST_SRC_CODE_GENERIC_PARAM3 = 0xBA, + CONST_SRC_CODE_GENERIC_PARAM4 = 0xBB, + CONST_SRC_CODE_GENERIC_PARAM5 = 0xBC, + CONST_SRC_CODE_GENERIC_PARAM6 = 0xBD, + CONST_SRC_CODE_GENERIC_PARAM7 = 0xBE, + CONST_SRC_CODE_EYEOFFSET = 0xBF, + CONST_SRC_CODE_CUSTOMWIND_CENTER = 0xC0, + CONST_SRC_CODE_CUSTOMWIND_SPRING = 0xC1, + CONST_SRC_CODE_SKY_COLOR_MULTIPLIER = 0xC2, + CONST_SRC_CODE_EXTRA_CAM_PARAM = 0xC3, + CONST_SRC_CODE_EMBLEM_LUT_SELECTOR = 0xC4, + + CONST_SRC_CODE_NEVER_DIRTY_PS_END = 0xC5, + CONST_SRC_CODE_COUNT_FLOAT4 = 0xC5, + CONST_SRC_FIRST_CODE_MATRIX = 0xC5, + + CONST_SRC_CODE_WORLD_MATRIX = 0xC5, + CONST_SRC_CODE_INVERSE_WORLD_MATRIX = 0xC6, + CONST_SRC_CODE_TRANSPOSE_WORLD_MATRIX = 0xC7, + CONST_SRC_CODE_INVERSE_TRANSPOSE_WORLD_MATRIX = 0xC8, + CONST_SRC_CODE_VIEW_MATRIX = 0xC9, + CONST_SRC_CODE_INVERSE_VIEW_MATRIX = 0xCA, + CONST_SRC_CODE_TRANSPOSE_VIEW_MATRIX = 0xCB, + CONST_SRC_CODE_INVERSE_TRANSPOSE_VIEW_MATRIX = 0xCC, + CONST_SRC_CODE_PROJECTION_MATRIX = 0xCD, + CONST_SRC_CODE_INVERSE_PROJECTION_MATRIX = 0xCE, + CONST_SRC_CODE_TRANSPOSE_PROJECTION_MATRIX = 0xCF, + CONST_SRC_CODE_INVERSE_TRANSPOSE_PROJECTION_MATRIX = 0xD0, + CONST_SRC_CODE_WORLD_VIEW_MATRIX = 0xD1, + CONST_SRC_CODE_INVERSE_WORLD_VIEW_MATRIX = 0xD2, + CONST_SRC_CODE_TRANSPOSE_WORLD_VIEW_MATRIX = 0xD3, + CONST_SRC_CODE_INVERSE_TRANSPOSE_WORLD_VIEW_MATRIX = 0xD4, + CONST_SRC_CODE_VIEW_PROJECTION_MATRIX = 0xD5, + CONST_SRC_CODE_INVERSE_VIEW_PROJECTION_MATRIX = 0xD6, + CONST_SRC_CODE_TRANSPOSE_VIEW_PROJECTION_MATRIX = 0xD7, + CONST_SRC_CODE_INVERSE_TRANSPOSE_VIEW_PROJECTION_MATRIX = 0xD8, + CONST_SRC_CODE_WORLD_VIEW_PROJECTION_MATRIX = 0xD9, + CONST_SRC_CODE_INVERSE_WORLD_VIEW_PROJECTION_MATRIX = 0xDA, + CONST_SRC_CODE_TRANSPOSE_WORLD_VIEW_PROJECTION_MATRIX = 0xDB, + CONST_SRC_CODE_INVERSE_TRANSPOSE_WORLD_VIEW_PROJECTION_MATRIX = 0xDC, + CONST_SRC_CODE_SHADOW_LOOKUP_MATRIX = 0xDD, + CONST_SRC_CODE_INVERSE_SHADOW_LOOKUP_MATRIX = 0xDE, + CONST_SRC_CODE_TRANSPOSE_SHADOW_LOOKUP_MATRIX = 0xDF, + CONST_SRC_CODE_INVERSE_TRANSPOSE_SHADOW_LOOKUP_MATRIX = 0xE0, + CONST_SRC_CODE_WORLD_OUTDOOR_LOOKUP_MATRIX = 0xE1, + CONST_SRC_CODE_INVERSE_WORLD_OUTDOOR_LOOKUP_MATRIX = 0xE2, + CONST_SRC_CODE_TRANSPOSE_WORLD_OUTDOOR_LOOKUP_MATRIX = 0xE3, + CONST_SRC_CODE_INVERSE_TRANSPOSE_WORLD_OUTDOOR_LOOKUP_MATRIX = 0xE4, + + CONST_SRC_TOTAL_COUNT, + CONST_SRC_NONE + }; + + enum MaterialTextureSource + { + TEXTURE_SRC_CODE_BLACK = 0x0, + TEXTURE_SRC_CODE_WHITE = 0x1, + TEXTURE_SRC_CODE_IDENTITY_NORMAL_MAP = 0x2, + TEXTURE_SRC_CODE_MODEL_LIGHTING = 0x3, + TEXTURE_SRC_CODE_LIGHTMAP_PRIMARY = 0x4, + TEXTURE_SRC_CODE_LIGHTMAP_SECONDARY = 0x5, + TEXTURE_SRC_CODE_SHADOWMAP_SUN = 0x6, + TEXTURE_SRC_CODE_SHADOWMAP_SPOT = 0x7, + TEXTURE_SRC_CODE_FEEDBACK = 0x8, + TEXTURE_SRC_CODE_RESOLVED_POST_SUN = 0x9, + TEXTURE_SRC_CODE_RESOLVED_SCENE = 0xA, + TEXTURE_SRC_CODE_POST_EFFECT_SRC = 0xB, + TEXTURE_SRC_CODE_POST_EFFECT_GODRAYS = 0xC, + TEXTURE_SRC_CODE_POST_EFFECT_0 = 0xD, + TEXTURE_SRC_CODE_POST_EFFECT_1 = 0xE, + TEXTURE_SRC_CODE_SKY = 0xF, + TEXTURE_SRC_CODE_LIGHT_ATTENUATION = 0x10, + TEXTURE_SRC_CODE_DLIGHT_ATTENUATION = 0x11, + TEXTURE_SRC_CODE_OUTDOOR = 0x12, + TEXTURE_SRC_CODE_FLOATZ = 0x13, + TEXTURE_SRC_CODE_PROCESSED_FLOATZ = 0x14, + TEXTURE_SRC_CODE_RAW_FLOATZ = 0x15, + TEXTURE_SRC_CODE_CASE_TEXTURE = 0x16, + TEXTURE_SRC_CODE_CINEMATIC_Y = 0x17, + TEXTURE_SRC_CODE_CINEMATIC_CR = 0x18, + TEXTURE_SRC_CODE_CINEMATIC_CB = 0x19, + TEXTURE_SRC_CODE_CINEMATIC_A = 0x1A, + TEXTURE_SRC_CODE_REFLECTION_PROBE = 0x1B, + TEXTURE_SRC_CODE_FEATHER_FLOAT_Z = 0x1C, + TEXTURE_SRC_CODE_TERRAIN_SCORCH_TEXTURE_0 = 0x1D, + TEXTURE_SRC_CODE_TERRAIN_SCORCH_TEXTURE_1 = 0x1E, + TEXTURE_SRC_CODE_TERRAIN_SCORCH_TEXTURE_2 = 0x1F, + TEXTURE_SRC_CODE_TERRAIN_SCORCH_TEXTURE_3 = 0x20, + + TEXTURE_SRC_CODE_TERRAIN_SCORCH_TEXTURE_LAST = 0x20, + + TEXTURE_SRC_CODE_LIGHTMAP_SECONDARYB = 0x21, + TEXTURE_SRC_CODE_TEXTURE_0 = 0x22, + TEXTURE_SRC_CODE_TEXTURE_1 = 0x23, + TEXTURE_SRC_CODE_TEXTURE_2 = 0x24, + TEXTURE_SRC_CODE_TEXTURE_3 = 0x25, + TEXTURE_SRC_CODE_IMPACT_MASK = 0x26, + TEXTURE_SRC_CODE_UI3D = 0x27, + TEXTURE_SRC_CODE_MISSILE_CAM = 0x28, + TEXTURE_SRC_CODE_COMPOSITE_RESULT = 0x29, + TEXTURE_SRC_CODE_HEATMAP = 0x2A, + + TEXTURE_SRC_CODE_COUNT + }; + struct MaterialArgumentCodeConst { uint16_t index; @@ -1185,15 +1535,32 @@ namespace T5 MaterialArgumentDef u; }; + enum MaterialType : unsigned char + { + MTL_TYPE_DEFAULT = 0x0, + MTL_TYPE_MODEL, + MTL_TYPE_MODEL_VERTCOL, + MTL_TYPE_WORLD, + MTL_TYPE_WORLD_VERTCOL, + + MTL_TYPE_COUNT + }; + + struct MaterialTypeInfo + { + const char* materialPrefix; + const char* techniqueSetPrefix; + }; + struct MaterialPass { MaterialVertexDeclaration* vertexDecl; MaterialVertexShader* vertexShader; MaterialPixelShader* pixelShader; - char perPrimArgCount; - char perObjArgCount; - char stableArgCount; - char customSamplerFlags; + unsigned char perPrimArgCount; + unsigned char perObjArgCount; + unsigned char stableArgCount; + unsigned char customSamplerFlags; MaterialShaderArgument* args; }; @@ -1205,6 +1572,154 @@ namespace T5 MaterialPass passArray[1]; }; + enum MaterialTechniqueType + { + TECHNIQUE_DEPTH_PREPASS = 0x0, + TECHNIQUE_BUILD_FLOAT_Z = 0x1, + TECHNIQUE_BUILD_SHADOWMAP_DEPTH = 0x2, + TECHNIQUE_BUILD_SHADOWMAP_COLOR = 0x3, + TECHNIQUE_UNLIT = 0x4, + TECHNIQUE_EMISSIVE = 0x5, + TECHNIQUE_EMISSIVE_SHADOW = 0x6, + TECHNIQUE_EMISSIVE_NV_INTZ = 0x7, + TECHNIQUE_EMISSIVE_SHADOW_NV_INTZ = 0x8, + TECHNIQUE_EMISSIVE_REFLECTED = 0x9, + + TECHNIQUE_LIT_BEGIN = 0xA, + + TECHNIQUE_LIT = 0xA, + TECHNIQUE_LIT_SUN = 0xB, + TECHNIQUE_LIT_SUN_SHADOW = 0xC, + TECHNIQUE_LIT_SPOT = 0xD, + TECHNIQUE_LIT_SPOT_SHADOW = 0xE, + TECHNIQUE_LIT_OMNI = 0xF, + TECHNIQUE_LIT_OMNI_SHADOW = 0x10, + TECHNIQUE_LIT_DLIGHT = 0x11, + TECHNIQUE_LIT_SUN_DLIGHT = 0x12, + TECHNIQUE_LIT_SUN_SHADOW_DLIGHT = 0x13, + TECHNIQUE_LIT_SPOT_DLIGHT = 0x14, + TECHNIQUE_LIT_SPOT_SHADOW_DLIGHT = 0x15, + TECHNIQUE_LIT_OMNI_DLIGHT = 0x16, + TECHNIQUE_LIT_OMNI_SHADOW_DLIGHT = 0x17, + TECHNIQUE_LIT_GLIGHT = 0x18, + TECHNIQUE_LIT_SUN_GLIGHT = 0x19, + TECHNIQUE_LIT_SUN_SHADOW_GLIGHT = 0x1A, + TECHNIQUE_LIT_SPOT_GLIGHT = 0x1B, + TECHNIQUE_LIT_SPOT_SHADOW_GLIGHT = 0x1C, + TECHNIQUE_LIT_OMNI_GLIGHT = 0x1D, + TECHNIQUE_LIT_OMNI_SHADOW_GLIGHT = 0x1E, + TECHNIQUE_LIT_DLIGHT_GLIGHT = 0x1F, + TECHNIQUE_LIT_SUN_DLIGHT_GLIGHT = 0x20, + TECHNIQUE_LIT_SUN_SHADOW_DLIGHT_GLIGHT = 0x21, + TECHNIQUE_LIT_SPOT_DLIGHT_GLIGHT = 0x22, + TECHNIQUE_LIT_SPOT_SHADOW_DLIGHT_GLIGHT = 0x23, + TECHNIQUE_LIT_OMNI_DLIGHT_GLIGHT = 0x24, + TECHNIQUE_LIT_OMNI_SHADOW_DLIGHT_GLIGHT = 0x25, + TECHNIQUE_LIT_ALPHA = 0x26, + TECHNIQUE_LIT_SUN_ALPHA = 0x27, + TECHNIQUE_LIT_SUN_SHADOW_ALPHA = 0x28, + TECHNIQUE_LIT_SPOT_ALPHA = 0x29, + TECHNIQUE_LIT_SPOT_SHADOW_ALPHA = 0x2A, + TECHNIQUE_LIT_OMNI_ALPHA = 0x2B, + TECHNIQUE_LIT_OMNI_SHADOW_ALPHA = 0x2C, + TECHNIQUE_LIT_REMAP = 0x2D, + TECHNIQUE_LIT_SUN_REMAP = 0x2E, + TECHNIQUE_LIT_SUN_SHADOW_REMAP = 0x2F, + TECHNIQUE_LIT_SPOT_REMAP = 0x30, + TECHNIQUE_LIT_SPOT_SHADOW_REMAP = 0x31, + TECHNIQUE_LIT_OMNI_REMAP = 0x32, + TECHNIQUE_LIT_OMNI_SHADOW_REMAP = 0x33, + TECHNIQUE_LIT_NO_HDR_SUPPORT = 0x34, + TECHNIQUE_LIT_FADE = 0x34, + TECHNIQUE_LIT_SUN_FADE = 0x35, + TECHNIQUE_LIT_SUN_SHADOW_FADE = 0x36, + TECHNIQUE_LIT_SPOT_FADE = 0x37, + TECHNIQUE_LIT_SPOT_SHADOW_FADE = 0x38, + TECHNIQUE_LIT_OMNI_FADE = 0x39, + TECHNIQUE_LIT_OMNI_SHADOW_FADE = 0x3A, + TECHNIQUE_LIT_CHARRED = 0x3B, + TECHNIQUE_LIT_FADE_CHARRED = 0x3C, + TECHNIQUE_LIT_SUN_CHARRED = 0x3D, + TECHNIQUE_LIT_SUN_FADE_CHARRED = 0x3E, + TECHNIQUE_LIT_SUN_SHADOW_CHARRED = 0x3F, + TECHNIQUE_LIT_SUN_SHADOW_FADE_CHARRED = 0x40, + TECHNIQUE_LIT_SPOT_CHARRED = 0x41, + TECHNIQUE_LIT_SPOT_FADE_CHARRED = 0x42, + TECHNIQUE_LIT_SPOT_SHADOW_CHARRED = 0x43, + TECHNIQUE_LIT_SPOT_SHADOW_FADE_CHARRED = 0x44, + TECHNIQUE_LIT_OMNI_CHARRED = 0x45, + TECHNIQUE_LIT_OMNI_FADE_CHARRED = 0x46, + TECHNIQUE_LIT_OMNI_SHADOW_CHARRED = 0x47, + TECHNIQUE_LIT_OMNI_SHADOW_FADE_CHARRED = 0x48, + TECHNIQUE_LIT_INSTANCED = 0x49, + TECHNIQUE_LIT_INSTANCED_SUN = 0x4A, + TECHNIQUE_LIT_INSTANCED_SUN_SHADOW = 0x4B, + TECHNIQUE_LIT_INSTANCED_SPOT = 0x4C, + TECHNIQUE_LIT_INSTANCED_SPOT_SHADOW = 0x4D, + TECHNIQUE_LIT_INSTANCED_OMNI = 0x4E, + TECHNIQUE_LIT_INSTANCED_OMNI_SHADOW = 0x4F, + + TECHNIQUE_LIT_NV_BEGIN = 0x50, + + TECHNIQUE_LIT_NV_INTZ = 0x50, + TECHNIQUE_LIT_SUN_NV_INTZ = 0x51, + TECHNIQUE_LIT_SUN_SHADOW_NV_INTZ = 0x52, + TECHNIQUE_LIT_SPOT_NV_INTZ = 0x53, + TECHNIQUE_LIT_SPOT_SHADOW_NV_INTZ = 0x54, + TECHNIQUE_LIT_OMNI_NV_INTZ = 0x55, + TECHNIQUE_LIT_OMNI_SHADOW_NV_INTZ = 0x56, + TECHNIQUE_LIT_DLIGHT_NV_INTZ = 0x57, + TECHNIQUE_LIT_SUN_DLIGHT_NV_INTZ = 0x58, + TECHNIQUE_LIT_SUN_SHADOW_DLIGHT_NV_INTZ = 0x59, + TECHNIQUE_LIT_SPOT_DLIGHT_NV_INTZ = 0x5A, + TECHNIQUE_LIT_SPOT_SHADOW_DLIGHT_NV_INTZ = 0x5B, + TECHNIQUE_LIT_OMNI_DLIGHT_NV_INTZ = 0x5C, + TECHNIQUE_LIT_OMNI_SHADOW_DLIGHT_NV_INTZ = 0x5D, + TECHNIQUE_LIT_GLIGHT_NV_INTZ = 0x5E, + TECHNIQUE_LIT_SUN_GLIGHT_NV_INTZ = 0x5F, + TECHNIQUE_LIT_SUN_SHADOW_GLIGHT_NV_INTZ = 0x60, + TECHNIQUE_LIT_SPOT_GLIGHT_NV_INTZ = 0x61, + TECHNIQUE_LIT_SPOT_SHADOW_GLIGHT_NV_INTZ = 0x62, + TECHNIQUE_LIT_OMNI_GLIGHT_NV_INTZ = 0x63, + TECHNIQUE_LIT_OMNI_SHADOW_GLIGHT_NV_INTZ = 0x64, + TECHNIQUE_LIT_DLIGHT_GLIGHT_NV_INTZ = 0x65, + TECHNIQUE_LIT_SUN_DLIGHT_GLIGHT_NV_INTZ = 0x66, + TECHNIQUE_LIT_SUN_SHADOW_DLIGHT_GLIGHT_NV_INTZ = 0x67, + TECHNIQUE_LIT_SPOT_DLIGHT_GLIGHT_NV_INTZ = 0x68, + TECHNIQUE_LIT_SPOT_SHADOW_DLIGHT_GLIGHT_NV_INTZ = 0x69, + TECHNIQUE_LIT_OMNI_DLIGHT_GLIGHT_NV_INTZ = 0x6A, + TECHNIQUE_LIT_OMNI_SHADOW_DLIGHT_GLIGHT_NV_INTZ = 0x6B, + TECHNIQUE_LIT_INSTANCED_NV_INTZ = 0x6C, + TECHNIQUE_LIT_INSTANCED_SUN_NV_INTZ = 0x6D, + TECHNIQUE_LIT_INSTANCED_SUN_SHADOW_NV_INTZ = 0x6E, + TECHNIQUE_LIT_INSTANCED_SPOT_NV_INTZ = 0x6F, + TECHNIQUE_LIT_INSTANCED_SPOT_SHADOW_NV_INTZ = 0x70, + TECHNIQUE_LIT_INSTANCED_OMNI_NV_INTZ = 0x71, + TECHNIQUE_LIT_INSTANCED_OMNI_SHADOW_NV_INTZ = 0x72, + + TECHNIQUE_LIT_NV_END = 0x73, + + TECHNIQUE_LIT_END = 0x73, + + TECHNIQUE_LIGHT_SPOT = 0x73, + TECHNIQUE_LIGHT_OMNI = 0x74, + TECHNIQUE_LIGHT_SPOT_SHADOW = 0x75, + TECHNIQUE_LIGHT_SPOT_CHARRED = 0x76, + TECHNIQUE_LIGHT_OMNI_CHARRED = 0x77, + TECHNIQUE_LIGHT_SPOT_SHADOW_CHARRED = 0x78, + TECHNIQUE_FAKELIGHT_NORMAL = 0x79, + TECHNIQUE_FAKELIGHT_VIEW = 0x7A, + TECHNIQUE_SUNLIGHT_PREVIEW = 0x7B, + TECHNIQUE_CASE_TEXTURE = 0x7C, + TECHNIQUE_WIREFRAME_SOLID = 0x7D, + TECHNIQUE_WIREFRAME_SHADED = 0x7E, + TECHNIQUE_DEBUG_BUMPMAP = 0x7F, + TECHNIQUE_DEBUG_BUMPMAP_INSTANCED = 0x80, + TECHNIQUE_IMPACT_MASK = 0x81, + + TECHNIQUE_COUNT + }; + struct MaterialTechniqueSet { const char* name; diff --git a/src/ObjCommon/Game/T5/Techset/TechsetConstantsT5.h b/src/ObjCommon/Game/T5/Techset/TechsetConstantsT5.h new file mode 100644 index 00000000..628533f5 --- /dev/null +++ b/src/ObjCommon/Game/T5/Techset/TechsetConstantsT5.h @@ -0,0 +1,2063 @@ +#pragma once + +#include "Game/T5/T5.h" +#include "Techset/CommonTechnique.h" + +namespace T5 +{ + inline const char* techniqueTypeNames[]{ + "depth prepass", + "build floatz", + "build shadowmap depth", + "build shadowmap color", + "unlit", + "emissive", + "emissive shadow", + "emissive nvintz", + "emissive shadow nvintz", + "emissive reflected", + "lit", + "lit sun", + "lit sun shadow", + "lit spot", + "lit spot shadow", + "lit omni", + "lit omni shadow", + "lit dlight", + "lit sun dlight", + "lit sun shadow dlight", + "lit spot dlight", + "lit spot shadow dlight", + "lit omni dlight", + "lit omni shadow dlight", + "lit glight", + "lit sun glight", + "lit sun shadow glight", + "lit spot glight", + "lit spot shadow glight", + "lit omni glight", + "lit omni shadow glight", + "lit dlight glight", + "lit sun dlight glight", + "lit sun shadow dlight glight", + "lit spot dlight glight", + "lit spot shadow dlight glight", + "lit omni dlight glight", + "lit omni shadow dlight glight", + "lit alpha", + "lit sun alpha", + "lit sun shadow alpha", + "lit spot alpha", + "lit spot shadow alpha", + "lit omni alpha", + "lit omni shadow alpha", + "lit remap", + "lit sun remap", + "lit sun shadow remap", + "lit spot remap", + "lit spot shadow remap", + "lit omni remap", + "lit omni shadow remap", + "lit fade", + "lit sun fade", + "lit sun shadow fade", + "lit spot fade", + "lit spot shadow fade", + "lit omni fade", + "lit omni shadow fade", + "lit charred", + "lit fade charred", + "lit sun charred", + "lit sun fade charred", + "lit sun shadow charred", + "lit sun shadow fade charred", + "lit spot charred", + "lit spot fade charred", + "lit spot shadow charred", + "lit spot shadow fade charred", + "lit omni charred", + "lit omni fade charred", + "lit omni shadow charred", + "lit omni shadow fade charred", + "lit instanced", + "lit instanced sun", + "lit instanced sun shadow", + "lit instanced spot", + "lit instanced spot shadow", + "lit instanced omni", + "lit instanced omni shadow", + "lit nvintz", + "lit sun nvintz", + "lit sun shadow nvintz", + "lit spot nvintz", + "lit spot shadow nvintz", + "lit omni nvintz", + "lit omni shadow nvintz", + "lit dlight nvintz", + "lit sun dlight nvintz", + "lit sun shadow dlight nvintz", + "lit spot dlight nvintz", + "lit spot shadow dlight nvintz", + "lit omni dlight nvintz", + "lit omni shadow dlight nvintz", + "lit glight nvintz", + "lit sun glight nvintz", + "lit sun shadow glight nvintz", + "lit spot glight nvintz", + "lit spot shadow glight nvintz", + "lit omni glight nvintz", + "lit omni shadow glight nvintz", + "lit dlight glight nvintz", + "lit sun dlight glight nvintz", + "lit sun shadow dlight glight nvintz", + "lit spot dlight glight nvintz", + "lit spot shadow dlight glight nvintz", + "lit omni dlight glight nvintz", + "lit omni shadow dlight glight nvintz", + "lit instanced nvintz", + "lit instanced sun nvintz", + "lit instanced sun shadow nvintz", + "lit instanced spot nvintz", + "lit instanced spot shadow nvintz", + "lit instanced omni nvintz", + "lit instanced omni shadow nvintz", + "light spot", + "light omni", + "light spot shadow", + "light spot charred", + "light omni charred", + "light spot shadow charred", + "fakelight normal", + "fakelight view", + "sunlight preview", + "case texture", + "solid wireframe", + "shaded wireframe", + "debug bumpmap", + "debug bumpmap instanced", + "impact mask", + }; + static_assert(std::extent_v == TECHNIQUE_COUNT); + + static techset::CommonStreamRoutingSourceInfo streamRoutingSources[]{ + { + .name = "position", + .abbreviation = "p", + .optional = false, + }, + { + .name = "color", + .abbreviation = "c", + .optional = false, + }, + { + .name = "texcoord[0]", + .abbreviation = "t0", + .optional = false, + }, + { + .name = "normal", + .abbreviation = "n", + .optional = false, + }, + { + .name = "tangent", + .abbreviation = "t", + .optional = false, + }, + { + .name = "texcoord[1]", + .abbreviation = "t1", + .optional = false, + }, + { + .name = "texcoord[2]", + .abbreviation = "t2", + .optional = true, + }, + { + .name = "normalTransform[0]", + .abbreviation = "n0", + .optional = true, + }, + { + .name = "normalTransform[1]", + .abbreviation = "n1", + .optional = true, + }, + { + .name = "blendWeight", + .abbreviation = "b", + .optional = true, + }, + }; + static_assert(std::extent_v == STREAM_SRC_COUNT); + + static techset::CommonStreamRoutingDestinationInfo streamRoutingDestinations[]{ + { + .name = "position", + .abbreviation = "p", + }, + { + .name = "normal", + .abbreviation = "n", + }, + { + .name = "color[0]", + .abbreviation = "c0", + }, + { + .name = "color[1]", + .abbreviation = "c1", + }, + { + .name = "depth", + .abbreviation = "d", + }, + { + .name = "texcoord[0]", + .abbreviation = "t0", + }, + { + .name = "texcoord[1]", + .abbreviation = "t1", + }, + { + .name = "texcoord[2]", + .abbreviation = "t2", + }, + { + .name = "texcoord[3]", + .abbreviation = "t3", + }, + { + .name = "texcoord[4]", + .abbreviation = "t4", + }, + { + .name = "texcoord[5]", + .abbreviation = "t5", + }, + { + .name = "texcoord[6]", + .abbreviation = "t6", + }, + { + .name = "texcoord[7]", + .abbreviation = "t7", + }, + { + .name = "texcoord[8]", + .abbreviation = "t8", + }, + { + .name = "texcoord[9]", + .abbreviation = "t9", + }, + { + .name = "texcoord[10]", + .abbreviation = "t10", + }, + { + .name = "texcoord[11]", + .abbreviation = "t11", + }, + { + .name = "texcoord[12]", + .abbreviation = "t12", + }, + { + .name = "texcoord[13]", + .abbreviation = "t13", + }, + { + .name = "blendWeight", + .abbreviation = "b", + }, + }; + static_assert(std::extent_v == STREAM_DST_COUNT); + + static techset::CommonCodeConstSourceInfo commonCodeConstSources[]{ + { + .value = CONST_SRC_CODE_LIGHT_POSITION, + .accessor = "lightPosition", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_LIGHT_DIFFUSE, + .accessor = "lightDiffuse", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_LIGHT_SPOTDIR, + .accessor = "lightSpotDir", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_LIGHT_SPOTFACTORS, + .accessor = "lightSpotFactors", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_LIGHT_ATTENUATION, + .accessor = "lightAttenuation", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_LIGHT_FALLOFF_A, + .accessor = "lightFallOffA", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_LIGHT_FALLOFF_B, + .accessor = "lightFallOffB", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_LIGHT_SPOT_MATRIX0, + .accessor = "lightSpotMatrix0", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_LIGHT_SPOT_MATRIX1, + .accessor = "lightSpotMatrix1", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_LIGHT_SPOT_MATRIX2, + .accessor = "lightSpotMatrix2", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_LIGHT_SPOT_MATRIX3, + .accessor = "lightSpotMatrix3", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_LIGHT_SPOT_AABB, + .accessor = "lightSpotAABB", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_LIGHT_CONE_CONTROL1, + .accessor = "lightConeControl1", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_LIGHT_CONE_CONTROL2, + .accessor = "lightConeControl2", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_LIGHT_SPOT_COOKIE_SLIDE_CONTROL, + .accessor = "lightSpotCookieSlideControl", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_SHADOW_PARMS, + .accessor = "shadowParms", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_SHADOWMAP_POLYGON_OFFSET, + .accessor = "shadowmapPolygonOffset", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_RENDER_TARGET_SIZE, + .accessor = "renderTargetSize", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_UPSCALED_TARGET_SIZE, + .accessor = "upscaledTargetSize", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_DOF_EQUATION_VIEWMODEL_AND_FAR_BLUR, + .accessor = "dofEquationViewModelAndFarBlur", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_DOF_EQUATION_SCENE, + .accessor = "dofEquationScene", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_DOF_LERP_SCALE, + .accessor = "dofLerpScale", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_DOF_LERP_BIAS, + .accessor = "dofLerpBias", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_DOF_ROW_DELTA, + .accessor = "dofRowDelta", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_PARTICLE_CLOUD_COLOR, + .accessor = "particleCloudColor", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_GAMETIME, + .accessor = "gameTime", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_FILTER_TAP_0, + .accessor = "filterTap", + .arrayCount = 8, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_COLOR_MATRIX_R, + .accessor = "colorMatrixR", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_COLOR_MATRIX_G, + .accessor = "colorMatrixG", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_COLOR_MATRIX_B, + .accessor = "colorMatrixB", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_SHADOWMAP_SWITCH_PARTITION, + .accessor = "shadowmapSwitchPartition", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_SUNSHADOWMAP_PIXEL_SIZE, + .accessor = "sunShadowmapPixelSize", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_SHADOWMAP_SCALE, + .accessor = "shadowmapScale", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_ZNEAR, + .accessor = "zNear", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_SUN_POSITION, + .accessor = "sunPosition", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_SUN_DIFFUSE, + .accessor = "sunDiffuse", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_LIGHTING_LOOKUP_SCALE, + .accessor = "lightingLookupScale", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_DEBUG_BUMPMAP, + .accessor = "debugBumpmap", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_DEBUG_PERFORMANCE, + .accessor = "debugPerformance", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_MATERIAL_COLOR, + .accessor = "materialColor", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_FOG, + .accessor = "fogConsts", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_FOG2, + .accessor = "fogConsts2", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_FOG_COLOR, + .accessor = "fogColor", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_SUN_FOG, + .accessor = "sunFog", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_SUN_FOG_DIR, + .accessor = "sunFogDir", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_SUN_FOG_COLOR, + .accessor = "sunFogColor", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_GLOW_SETUP, + .accessor = "glowSetup", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_GLOW_APPLY, + .accessor = "glowApply", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_COLOR_BIAS, + .accessor = "colorBias", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_COLOR_TINT_BASE, + .accessor = "colorTintBase", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_COLOR_TINT_DELTA, + .accessor = "colorTintDelta", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_OUTDOOR_FEATHER_PARMS, + .accessor = "outdoorFeatherParms", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_SKY_TRANSITION, + .accessor = "skyTransition", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_SPOT_SHADOWMAP_PIXEL_ADJUST, + .accessor = "spotShadowmapPixelAdjust", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_DLIGHT_SPOT_SHADOWMAP_PIXEL_ADJUST, + .accessor = "dlightSpotShadowmapPixelAdjust", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_CLIP_SPACE_LOOKUP_SCALE, + .accessor = "clipSpaceLookupScale", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT, + }, + { + .value = CONST_SRC_CODE_CLIP_SPACE_LOOKUP_OFFSET, + .accessor = "clipSpaceLookupOffset", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT, + }, + { + .value = CONST_SRC_CODE_PARTICLE_CLOUD_MATRIX, + .accessor = "particleCloudMatrix", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT, + }, + { + .value = CONST_SRC_CODE_PARTICLE_CLOUD_VEL_WORLD, + .accessor = "particleCloudVelWorld", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT, + }, + { + .value = CONST_SRC_CODE_DEPTH_FROM_CLIP, + .accessor = "depthFromClip", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT, + }, + { + .value = CONST_SRC_CODE_CODE_MESH_ARG_0, + .accessor = "codeMeshArg", + .arrayCount = 2, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT, + }, + { + .value = CONST_SRC_CODE_GRID_LIGHTING_COORDS_AND_VIS, + .accessor = "gridLightingCoordsAndVis", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM, + }, + { + .value = CONST_SRC_CODE_GRID_LIGHTING_SH_0, + .accessor = "gridLightingSH0", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM, + }, + { + .value = CONST_SRC_CODE_GRID_LIGHTING_SH_1, + .accessor = "gridLightingSH1", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM, + }, + { + .value = CONST_SRC_CODE_GRID_LIGHTING_SH_2, + .accessor = "gridLightingSH2", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM, + }, + { + .value = CONST_SRC_CODE_REFLECTION_LIGHTING_SH_0, + .accessor = "reflectionLightingSH0", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_REFLECTION_LIGHTING_SH_1, + .accessor = "reflectionLightingSH1", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_REFLECTION_LIGHTING_SH_2, + .accessor = "reflectionLightingSH2", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_WIND_DIRECTION, + .accessor = "windDirection", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_MOTIONBLUR_DIRECTION_AND_MAGNITUDE, + .accessor = "motionblurDirectionAndMagnitude", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_COMPOSITE_FX_DISTORTION, + .accessor = "flameDistortion", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_GLOW_BLOOM_SCALE, + .accessor = "bloomScale", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_COMPOSITE_FX_OVERLAY_TEXCOORD, + .accessor = "overlayTexCoord", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_COLOR_BIAS1, + .accessor = "colorBias1", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_COLOR_TINT_BASE1, + .accessor = "colorTintBase1", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_COLOR_TINT_DELTA1, + .accessor = "colorTintDelta1", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_POSTFX_FADE_EFFECT, + .accessor = "fadeEffect", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_VIEWPORT_DIMENSIONS, + .accessor = "viewportDimensions", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_FRAMEBUFFER_READ, + .accessor = "framebufferRead", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_RESIZE_PARAMS1, + .accessor = "resizeParams1", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_RESIZE_PARAMS2, + .accessor = "resizeParams2", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_RESIZE_PARAMS3, + .accessor = "resizeParams3", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_VARIANT_WIND_SPRING_0, + .accessor = "variantWindSpring", + .arrayCount = 16, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_CHARACTER_CHARRED_AMOUNT, + .accessor = "_characterCharredAmount", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_POSTFX_CONTROL0, + .accessor = "postFxControl0", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_POSTFX_CONTROL1, + .accessor = "postFxControl1", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_POSTFX_CONTROL2, + .accessor = "postFxControl2", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_POSTFX_CONTROL3, + .accessor = "postFxControl3", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_POSTFX_CONTROL4, + .accessor = "postFxControl4", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_POSTFX_CONTROL5, + .accessor = "postFxControl5", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_POSTFX_CONTROL6, + .accessor = "postFxControl6", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_POSTFX_CONTROL7, + .accessor = "postFxControl7", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_POSTFX_CONTROL8, + .accessor = "postFxControl8", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_POSTFX_CONTROL9, + .accessor = "postFxControl9", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_POSTFX_CONTROLA, + .accessor = "postFxControlA", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_POSTFX_CONTROLB, + .accessor = "postFxControlB", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_POSTFX_CONTROLC, + .accessor = "postFxControlC", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_POSTFX_CONTROLD, + .accessor = "postFxControlD", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_POSTFX_CONTROLE, + .accessor = "postFxControlE", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_POSTFX_CONTROLF, + .accessor = "postFxControlF", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_HDRCONTROL_0, + .accessor = "hdrControl0", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_HDRCONTROL_1, + .accessor = "hdrControl1", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_GLIGHT_POSXS, + .accessor = "glightPosXs", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_GLIGHT_POSYS, + .accessor = "glightPosYs", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_GLIGHT_POSZS, + .accessor = "glightPosZs", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_GLIGHT_FALLOFFS, + .accessor = "glightFallOffs", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_GLIGHT_REDS, + .accessor = "glightReds", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_GLIGHT_GREENS, + .accessor = "glightGreens", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_GLIGHT_BLUES, + .accessor = "glightBlues", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_DLIGHT_POSITION, + .accessor = "dlightPosition", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_DLIGHT_DIFFUSE, + .accessor = "dlightDiffuse", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_DLIGHT_ATTENUATION, + .accessor = "dlightAttenuation", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_DLIGHT_FALLOFF, + .accessor = "dlightFallOff", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_DLIGHT_SPOT_MATRIX_0, + .accessor = "dlightSpotMatrix0", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_DLIGHT_SPOT_MATRIX_1, + .accessor = "dlightSpotMatrix1", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_DLIGHT_SPOT_MATRIX_2, + .accessor = "dlightSpotMatrix2", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_DLIGHT_SPOT_MATRIX_3, + .accessor = "dlightSpotMatrix3", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_DLIGHT_SPOT_DIR, + .accessor = "dlightSpotDir", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_DLIGHT_SPOT_FACTORS, + .accessor = "dlightSpotFactors", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_DLIGHT_SHADOW_LOOKUP_MATRIX_0, + .accessor = "dlightShadowLookupMatrix0", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_DLIGHT_SHADOW_LOOKUP_MATRIX_1, + .accessor = "dlightShadowLookupMatrix1", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_DLIGHT_SHADOW_LOOKUP_MATRIX_2, + .accessor = "dlightShadowLookupMatrix2", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_DLIGHT_SHADOW_LOOKUP_MATRIX_3, + .accessor = "dlightShadowLookupMatrix3", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_CLOUD_LAYER_CONTROL0, + .accessor = "cloudLayerControl0", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_CLOUD_LAYER_CONTROL1, + .accessor = "cloudLayerControl1", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_CLOUD_LAYER_CONTROL2, + .accessor = "cloudLayerControl2", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_CLOUD_LAYER_CONTROL3, + .accessor = "cloudLayerControl3", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_CLOUD_LAYER_CONTROL4, + .accessor = "cloudLayerControl4", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_HERO_LIGHTING_R, + .accessor = "heroLightingR", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_HERO_LIGHTING_G, + .accessor = "heroLightingG", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_HERO_LIGHTING_B, + .accessor = "heroLightingB", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_LIGHT_HERO_SCALE, + .accessor = "lightHeroScale", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_CINEMATIC_BLUR_BOX, + .accessor = "cinematicBlurBox", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_CINEMATIC_BLUR_BOX2, + .accessor = "cinematicBlurBox2", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_ADSZSCALE, + .accessor = "adsZScale", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_UI3D_UV_SETUP_0, + .accessor = "ui3dUVSetup0", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_UI3D_UV_SETUP_1, + .accessor = "ui3dUVSetup1", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_UI3D_UV_SETUP_2, + .accessor = "ui3dUVSetup2", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_UI3D_UV_SETUP_3, + .accessor = "ui3dUVSetup3", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_UI3D_UV_SETUP_4, + .accessor = "ui3dUVSetup4", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_UI3D_UV_SETUP_5, + .accessor = "ui3dUVSetup5", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_CHARACTER_DISSOLVE_COLOR, + .accessor = "_characterDissolveColor", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_CAMERA_LOOK, + .accessor = "cameraLook", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_CAMERA_UP, + .accessor = "cameraUp", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_CAMERA_SIDE, + .accessor = "cameraSide", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_RIMINTENSITY, + .accessor = "rimIntensity", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_GENERIC_PARAM0, + .accessor = "scriptVector0", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_GENERIC_PARAM1, + .accessor = "scriptVector1", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_GENERIC_PARAM2, + .accessor = "scriptVector2", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_GENERIC_PARAM3, + .accessor = "scriptVector3", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_GENERIC_PARAM4, + .accessor = "scriptVector4", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_GENERIC_PARAM5, + .accessor = "scriptVector5", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_GENERIC_PARAM6, + .accessor = "scriptVector6", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_GENERIC_PARAM7, + .accessor = "scriptVector7", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_GENERIC_EYEOFFSET, + .accessor = "genericEyeOffset", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_GENERIC_QUADINTENSITY, + .accessor = "genericQuadIntensity", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_WEAPON_PARAM0, + .accessor = "weaponParam0", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_WEAPON_PARAM1, + .accessor = "weaponParam1", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_WEAPON_PARAM2, + .accessor = "weaponParam2", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_WEAPON_PARAM3, + .accessor = "weaponParam3", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_WEAPON_PARAM4, + .accessor = "weaponParam4", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_WEAPON_PARAM5, + .accessor = "weaponParam5", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_WEAPON_PARAM6, + .accessor = "weaponParam6", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_WEAPON_PARAM7, + .accessor = "weaponParam7", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_WEAPON_PARAM8, + .accessor = "weaponParam8", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_WEAPON_PARAM9, + .accessor = "weaponParam9", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_QRCODE_0, + .accessor = "qrcode0", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_QRCODE_1, + .accessor = "qrcode1", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_QRCODE_2, + .accessor = "qrcode2", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_QRCODE_3, + .accessor = "qrcode3", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_QRCODE_4, + .accessor = "qrcode4", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_QRCODE_5, + .accessor = "qrcode5", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_QRCODE_6, + .accessor = "qrcode6", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_QRCODE_7, + .accessor = "qrcode7", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_QRCODE_8, + .accessor = "qrcode8", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_QRCODE_9, + .accessor = "qrcode9", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_QRCODE_10, + .accessor = "qrcode10", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_QRCODE_11, + .accessor = "qrcode11", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_EYEOFFSET, + .accessor = "eyeOffset", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = CONST_SRC_CODE_SKY_COLOR_MULTIPLIER, + .accessor = "skyColorMultiplier", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_EXTRA_CAM_PARAM, + .accessor = "extraCamParam", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_EMBLEM_LUT_SELECTOR, + .accessor = "emblemLUTSelector", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_DEBUG_COLOR_OVERRIDE, + .accessor = "debugColorOverride", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_DEBUG_ALPHA_OVERRIDE, + .accessor = "debugAlphaOverride", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_DEBUG_NORMAL_OVERRIDE, + .accessor = "debugNormalOverride", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_DEBUG_SPECULAR_OVERRIDE, + .accessor = "debugSpecularOverride", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_DEBUG_GLOSS_OVERRIDE, + .accessor = "debugGlossOverride", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_DEBUG_OCCLUSION_OVERRIDE, + .accessor = "debugOcclusionOverride", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_WORLD_MATRIX, + .accessor = "worldMatrix", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM, + }, + { + .value = CONST_SRC_CODE_INVERSE_WORLD_MATRIX, + .accessor = "inverseWorldMatrix", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM, + }, + { + .value = CONST_SRC_CODE_TRANSPOSE_WORLD_MATRIX, + .accessor = "transposeWorldMatrix", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM, + }, + { + .value = CONST_SRC_CODE_INVERSE_TRANSPOSE_WORLD_MATRIX, + .accessor = "inverseTransposeWorldMatrix", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM, + }, + { + .value = CONST_SRC_CODE_VIEW_MATRIX, + .accessor = "viewMatrix", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_INVERSE_VIEW_MATRIX, + .accessor = "inverseViewMatrix", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_TRANSPOSE_VIEW_MATRIX, + .accessor = "transposeViewMatrix", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_INVERSE_TRANSPOSE_VIEW_MATRIX, + .accessor = "inverseTransposeViewMatrix", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_PROJECTION_MATRIX, + .accessor = "projectionMatrix", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT, + }, + { + .value = CONST_SRC_CODE_INVERSE_PROJECTION_MATRIX, + .accessor = "inverseProjectionMatrix", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT, + }, + { + .value = CONST_SRC_CODE_TRANSPOSE_PROJECTION_MATRIX, + .accessor = "transposeProjectionMatrix", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT, + }, + { + .value = CONST_SRC_CODE_INVERSE_TRANSPOSE_PROJECTION_MATRIX, + .accessor = "inverseTransposeProjectionMatrix", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT, + }, + { + .value = CONST_SRC_CODE_WORLD_VIEW_MATRIX, + .accessor = "worldViewMatrix", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM, + }, + { + .value = CONST_SRC_CODE_INVERSE_WORLD_VIEW_MATRIX, + .accessor = "inverseWorldViewMatrix", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM, + }, + { + .value = CONST_SRC_CODE_TRANSPOSE_WORLD_VIEW_MATRIX, + .accessor = "transposeWorldViewMatrix", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM, + }, + { + .value = CONST_SRC_CODE_INVERSE_TRANSPOSE_WORLD_VIEW_MATRIX, + .accessor = "inverseTransposeWorldViewMatrix", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM, + }, + { + .value = CONST_SRC_CODE_VIEW_PROJECTION_MATRIX, + .accessor = "viewProjectionMatrix", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT, + }, + { + .value = CONST_SRC_CODE_INVERSE_VIEW_PROJECTION_MATRIX, + .accessor = "inverseViewProjectionMatrix", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT, + }, + { + .value = CONST_SRC_CODE_TRANSPOSE_VIEW_PROJECTION_MATRIX, + .accessor = "transposeViewProjectionMatrix", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT, + }, + { + .value = CONST_SRC_CODE_INVERSE_TRANSPOSE_VIEW_PROJECTION_MATRIX, + .accessor = "inverseTransposeViewProjectionMatrix", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT, + }, + { + .value = CONST_SRC_CODE_WORLD_VIEW_PROJECTION_MATRIX, + .accessor = "worldViewProjectionMatrix", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM, + }, + { + .value = CONST_SRC_CODE_INVERSE_WORLD_VIEW_PROJECTION_MATRIX, + .accessor = "inverseWorldViewProjectionMatrix", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM, + }, + { + .value = CONST_SRC_CODE_TRANSPOSE_WORLD_VIEW_PROJECTION_MATRIX, + .accessor = "transposeWorldViewProjectionMatrix", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM, + }, + { + .value = CONST_SRC_CODE_INVERSE_TRANSPOSE_WORLD_VIEW_PROJECTION_MATRIX, + .accessor = "inverseTransposeWorldViewProjectionMatrix", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM, + }, + { + .value = CONST_SRC_CODE_SHADOW_LOOKUP_MATRIX, + .accessor = "shadowLookupMatrix", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_INVERSE_SHADOW_LOOKUP_MATRIX, + .accessor = "inverseShadowLookupMatrix", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_TRANSPOSE_SHADOW_LOOKUP_MATRIX, + .accessor = "transposeShadowLookupMatrix", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_INVERSE_TRANSPOSE_SHADOW_LOOKUP_MATRIX, + .accessor = "inverseTransposeShadowLookupMatrix", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = CONST_SRC_CODE_WORLD_OUTDOOR_LOOKUP_MATRIX, + .accessor = "worldOutdoorLookupMatrix", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM, + }, + { + .value = CONST_SRC_CODE_INVERSE_WORLD_OUTDOOR_LOOKUP_MATRIX, + .accessor = "inverseWorldOutdoorLookupMatrix", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM, + }, + { + .value = CONST_SRC_CODE_TRANSPOSE_WORLD_OUTDOOR_LOOKUP_MATRIX, + .accessor = "transposeWorldOutdoorLookupMatrix", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM, + }, + { + .value = CONST_SRC_CODE_INVERSE_TRANSPOSE_WORLD_OUTDOOR_LOOKUP_MATRIX, + .accessor = "inverseTransposeWorldOutdoorLookupMatrix", + .arrayCount = 0, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM, + }, + + // clang-format off + /* + {.value = CONST_SRC_CODE_LIGHT_POSITION, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_LIGHT_DIFFUSE, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_LIGHT_SPECULAR, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_LIGHT_SPOTDIR, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_LIGHT_SPOTFACTORS, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_LIGHT_ATTENUATION, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_LIGHT_FALLOFF_A, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_LIGHT_FALLOFF_B, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_LIGHT_SPOT_MATRIX0, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_LIGHT_SPOT_MATRIX1, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_LIGHT_SPOT_MATRIX2, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_LIGHT_SPOT_MATRIX3, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_LIGHT_SPOT_AABB, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_LIGHT_CONE_CONTROL1, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_LIGHT_CONE_CONTROL2, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_LIGHT_SPOT_COOKIE_SLIDE_CONTROL, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_NEARPLANE_ORG, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_NEARPLANE_DX, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_NEARPLANE_DY, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_SHADOW_PARMS, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_SHADOWMAP_POLYGON_OFFSET, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_RENDER_TARGET_SIZE, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_VPOSX_TO_WORLD, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_VPOSY_TO_WORLD, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_VPOS1_TO_WORLD, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_LIGHT_FALLOFF_PLACEMENT, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_DOF_EQUATION_VIEWMODEL_AND_FAR_BLUR, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_DOF_EQUATION_SCENE, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_DOF_LERP_SCALE, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_DOF_LERP_BIAS, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_DOF_ROW_DELTA, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_PARTICLE_CLOUD_COLOR, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_GAMETIME, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_ALPHA_FADE, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_PIXEL_COST_FRACS, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_PIXEL_COST_DECODE, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_FILTER_TAP_0, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_FILTER_TAP_1, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_FILTER_TAP_2, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_FILTER_TAP_3, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_FILTER_TAP_4, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_FILTER_TAP_5, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_FILTER_TAP_6, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_FILTER_TAP_7, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_COLOR_MATRIX_R, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_COLOR_MATRIX_G, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_COLOR_MATRIX_B, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_SHADOWMAP_SWITCH_PARTITION, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_SHADOWMAP_SCALE, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_ZNEAR, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_SUN_POSITION, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_SUN_DIFFUSE, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_SUN_SPECULAR, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_LIGHTING_LOOKUP_SCALE, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_DEBUG_BUMPMAP, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_MATERIAL_COLOR, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_FOG, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_FOG2, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_FOG_COLOR, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_SUN_FOG, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_SUN_FOG_DIR, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_SUN_FOG_COLOR, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_GLOW_SETUP, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_GLOW_APPLY, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_COLOR_BIAS, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_COLOR_TINT_BASE, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_COLOR_TINT_DELTA, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_OUTDOOR_FEATHER_PARMS, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_SKY_TRANSITION, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_ENVMAP_PARMS, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_SPOT_SHADOWMAP_PIXEL_ADJUST, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_DLIGHT_SPOT_SHADOWMAP_PIXEL_ADJUST, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_CLIP_SPACE_LOOKUP_SCALE, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,}, +{.value = CONST_SRC_CODE_CLIP_SPACE_LOOKUP_OFFSET, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,}, +{.value = CONST_SRC_CODE_PARTICLE_CLOUD_MATRIX, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,}, +{.value = CONST_SRC_CODE_DEPTH_FROM_CLIP, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,}, +{.value = CONST_SRC_CODE_CODE_MESH_ARG_0, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,}, +{.value = CONST_SRC_CODE_CODE_MESH_ARG_1, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,}, +{.value = CONST_SRC_CODE_BASE_LIGHTING_COORDS, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM,}, +{.value = CONST_SRC_CODE_WIND_DIRECTION, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,}, +{.value = CONST_SRC_CODE_WATER_PARMS, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM,}, +{.value = CONST_SRC_CODE_GRASS_PARMS, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_GRASS_FORCE0, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_GRASS_FORCE1, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_GRASS_WIND_FORCE0, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_MOTIONBLUR_DIRECTION_AND_MAGNITUDE, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_COMPOSITE_FX_DISTORTION, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_GLOW_BLOOM_SCALE, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_COMPOSITE_FX_OVERLAY_TEXCOORD, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_COLOR_BIAS1, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_COLOR_TINT_BASE1, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_COLOR_TINT_DELTA1, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_POSTFX_FADE_EFFECT, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_VIEWPORT_DIMENSIONS, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_FRAMEBUFFER_READ, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_RESIZE_PARAMS1, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_RESIZE_PARAMS2, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_RESIZE_PARAMS3, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_VARIANT_WIND_SPRING_0, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_VARIANT_WIND_SPRING_1, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_VARIANT_WIND_SPRING_2, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_VARIANT_WIND_SPRING_3, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_VARIANT_WIND_SPRING_4, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_VARIANT_WIND_SPRING_5, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_VARIANT_WIND_SPRING_6, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_VARIANT_WIND_SPRING_7, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_VARIANT_WIND_SPRING_8, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_VARIANT_WIND_SPRING_9, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_VARIANT_WIND_SPRING_10, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_VARIANT_WIND_SPRING_11, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_VARIANT_WIND_SPRING_12, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_VARIANT_WIND_SPRING_13, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_VARIANT_WIND_SPRING_14, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_VARIANT_WIND_SPRING_15, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_DESTRUCTIBLE_PARMS, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_CLOUD_WORLD_AREA, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_WATER_SCROLL, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_CROSSFADE_PARMS, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_CHARACTER_CHARRED_AMOUNT, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_TREECANOPY_PARMS, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_MARKS_HIT_NORMAL, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM,}, +{.value = CONST_SRC_CODE_POSTFX_CONTROL0, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_POSTFX_CONTROL1, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_POSTFX_CONTROL2, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_POSTFX_CONTROL3, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_POSTFX_CONTROL4, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_POSTFX_CONTROL5, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_POSTFX_CONTROL6, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_POSTFX_CONTROL7, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_POSTFX_CONTROL8, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_POSTFX_CONTROL9, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_POSTFX_CONTROLA, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_POSTFX_CONTROLB, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_POSTFX_CONTROLC, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_POSTFX_CONTROLD, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_POSTFX_CONTROLE, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_POSTFX_CONTROLF, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_HDRCONTROL_0, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_HDRCONTROL_1, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_GLIGHT_POSXS, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_GLIGHT_POSYS, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_GLIGHT_POSZS, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_GLIGHT_FALLOFFS, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_GLIGHT_REDS, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_GLIGHT_GREENS, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_GLIGHT_BLUES, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_DLIGHT_POSITION, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_DLIGHT_DIFFUSE, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_DLIGHT_SPECULAR, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_DLIGHT_ATTENUATION, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_DLIGHT_FALLOFF, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_DLIGHT_SPOT_MATRIX_0, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_DLIGHT_SPOT_MATRIX_1, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_DLIGHT_SPOT_MATRIX_2, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_DLIGHT_SPOT_MATRIX_3, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_DLIGHT_SPOT_DIR, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_DLIGHT_SPOT_FACTORS, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_DLIGHT_SHADOW_LOOKUP_MATRIX_0, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_DLIGHT_SHADOW_LOOKUP_MATRIX_1, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_DLIGHT_SHADOW_LOOKUP_MATRIX_2, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_DLIGHT_SHADOW_LOOKUP_MATRIX_3, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_CLOUD_LAYER_CONTROL0, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_CLOUD_LAYER_CONTROL1, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_CLOUD_LAYER_CONTROL2, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_CLOUD_LAYER_CONTROL3, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_CLOUD_LAYER_CONTROL4, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_HERO_LIGHTING_R, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_HERO_LIGHTING_G, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_HERO_LIGHTING_B, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_LIGHT_HERO_SCALE, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_CINEMATIC_BLUR_BOX, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_CINEMATIC_BLUR_BOX2, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_ADSZSCALE, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_UI3D_UV_SETUP_0, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_UI3D_UV_SETUP_1, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_UI3D_UV_SETUP_2, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_UI3D_UV_SETUP_3, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_UI3D_UV_SETUP_4, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_UI3D_UV_SETUP_5, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_CHARACTER_DISSOLVE_COLOR, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_CAMERA_LOOK, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_CAMERA_UP, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_CAMERA_SIDE, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_GENERIC_PARAM0, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_GENERIC_PARAM1, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_GENERIC_PARAM2, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_GENERIC_PARAM3, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_GENERIC_PARAM4, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_GENERIC_PARAM5, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_GENERIC_PARAM6, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_GENERIC_PARAM7, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_EYEOFFSET, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_CUSTOMWIND_CENTER, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_CUSTOMWIND_SPRING, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_SKY_COLOR_MULTIPLIER, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_EXTRA_CAM_PARAM, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_EMBLEM_LUT_SELECTOR, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY,}, +{.value = CONST_SRC_CODE_WORLD_MATRIX, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM,}, +{.value = CONST_SRC_CODE_INVERSE_WORLD_MATRIX, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM,}, +{.value = CONST_SRC_CODE_TRANSPOSE_WORLD_MATRIX, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM,}, +{.value = CONST_SRC_CODE_INVERSE_TRANSPOSE_WORLD_MATRIX, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM,}, +{.value = CONST_SRC_CODE_VIEW_MATRIX, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,}, +{.value = CONST_SRC_CODE_INVERSE_VIEW_MATRIX, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,}, +{.value = CONST_SRC_CODE_TRANSPOSE_VIEW_MATRIX, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,}, +{.value = CONST_SRC_CODE_INVERSE_TRANSPOSE_VIEW_MATRIX, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,}, +{.value = CONST_SRC_CODE_PROJECTION_MATRIX, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,}, +{.value = CONST_SRC_CODE_INVERSE_PROJECTION_MATRIX, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,}, +{.value = CONST_SRC_CODE_TRANSPOSE_PROJECTION_MATRIX, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,}, +{.value = CONST_SRC_CODE_INVERSE_TRANSPOSE_PROJECTION_MATRIX, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,}, +{.value = CONST_SRC_CODE_WORLD_VIEW_MATRIX, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM,}, +{.value = CONST_SRC_CODE_INVERSE_WORLD_VIEW_MATRIX, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM,}, +{.value = CONST_SRC_CODE_TRANSPOSE_WORLD_VIEW_MATRIX, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM,}, +{.value = CONST_SRC_CODE_INVERSE_TRANSPOSE_WORLD_VIEW_MATRIX, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM,}, +{.value = CONST_SRC_CODE_VIEW_PROJECTION_MATRIX, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,}, +{.value = CONST_SRC_CODE_INVERSE_VIEW_PROJECTION_MATRIX, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,}, +{.value = CONST_SRC_CODE_TRANSPOSE_VIEW_PROJECTION_MATRIX, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,}, +{.value = CONST_SRC_CODE_INVERSE_TRANSPOSE_VIEW_PROJECTION_MATRIX, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,}, +{.value = CONST_SRC_CODE_WORLD_VIEW_PROJECTION_MATRIX, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM,}, +{.value = CONST_SRC_CODE_INVERSE_WORLD_VIEW_PROJECTION_MATRIX, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM,}, +{.value = CONST_SRC_CODE_TRANSPOSE_WORLD_VIEW_PROJECTION_MATRIX, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM,}, +{.value = CONST_SRC_CODE_INVERSE_TRANSPOSE_WORLD_VIEW_PROJECTION_MATRIX, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM,}, +{.value = CONST_SRC_CODE_SHADOW_LOOKUP_MATRIX, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,}, +{.value = CONST_SRC_CODE_INVERSE_SHADOW_LOOKUP_MATRIX, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,}, +{.value = CONST_SRC_CODE_TRANSPOSE_SHADOW_LOOKUP_MATRIX, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,}, +{.value = CONST_SRC_CODE_INVERSE_TRANSPOSE_SHADOW_LOOKUP_MATRIX, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT,}, +{.value = CONST_SRC_CODE_WORLD_OUTDOOR_LOOKUP_MATRIX, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM,}, +{.value = CONST_SRC_CODE_INVERSE_WORLD_OUTDOOR_LOOKUP_MATRIX, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM,}, +{.value = CONST_SRC_CODE_TRANSPOSE_WORLD_OUTDOOR_LOOKUP_MATRIX, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM,}, +{.value = CONST_SRC_CODE_INVERSE_TRANSPOSE_WORLD_OUTDOOR_LOOKUP_MATRIX, .accessor = "", .arrayCount = x, .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_PRIM,}, + */ + // clang-format on + }; + + static techset::CommonCodeSamplerSourceInfo commonCodeSamplerSources[]{ + { + .value = TEXTURE_SRC_CODE_BLACK, + .accessor = "black", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = TEXTURE_SRC_CODE_WHITE, + .accessor = "white", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = TEXTURE_SRC_CODE_IDENTITY_NORMAL_MAP, + .accessor = "identityNormalMap", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = TEXTURE_SRC_CODE_MODEL_LIGHTING, + .accessor = "modelLightingSampler", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = TEXTURE_SRC_CODE_LIGHTMAP_PRIMARY, + .accessor = "lightmapSamplerPrimary", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = TEXTURE_SRC_CODE_LIGHTMAP_SECONDARY, + .accessor = "lightmapSamplerSecondary", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = TEXTURE_SRC_CODE_SHADOWMAP_SUN, + .accessor = "shadowmapSamplerSun", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = TEXTURE_SRC_CODE_SHADOWMAP_SPOT, + .accessor = "shadowmapSamplerSpot", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = TEXTURE_SRC_CODE_FEEDBACK, + .accessor = "feedbackSampler", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT, + }, + { + .value = TEXTURE_SRC_CODE_RESOLVED_POST_SUN, + .accessor = "resolvedPostSun", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = TEXTURE_SRC_CODE_RESOLVED_SCENE, + .accessor = "resolvedScene", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = TEXTURE_SRC_CODE_POST_EFFECT_SRC, + .accessor = "postEffectSrc", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = TEXTURE_SRC_CODE_POST_EFFECT_GODRAYS, + .accessor = "postEffectGodRays", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = TEXTURE_SRC_CODE_POST_EFFECT_0, + .accessor = "postEffect0", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = TEXTURE_SRC_CODE_POST_EFFECT_1, + .accessor = "postEffect1", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = TEXTURE_SRC_CODE_SKY, + .accessor = "sky", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = TEXTURE_SRC_CODE_LIGHT_ATTENUATION, + .accessor = "attenuationSampler", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT, + }, + { + .value = TEXTURE_SRC_CODE_DLIGHT_ATTENUATION, + .accessor = "dlightAttenuationSampler", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = TEXTURE_SRC_CODE_OUTDOOR, + .accessor = "outdoor", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = TEXTURE_SRC_CODE_FLOATZ, + .accessor = "floatZSampler", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = TEXTURE_SRC_CODE_PROCESSED_FLOATZ, + .accessor = "processedFloatZSampler", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = TEXTURE_SRC_CODE_RAW_FLOATZ, + .accessor = "rawFloatZSampler", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = TEXTURE_SRC_CODE_CASE_TEXTURE, + .accessor = "caseTextureSampler" /* Made up, nowhere to be seen */, + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT, + }, + { + .value = TEXTURE_SRC_CODE_CINEMATIC_Y, + .accessor = "cinematicYSampler", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT, + }, + { + .value = TEXTURE_SRC_CODE_CINEMATIC_CR, + .accessor = "cinematicCrSampler", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT, + }, + { + .value = TEXTURE_SRC_CODE_CINEMATIC_CB, + .accessor = "cinematicCbSampler", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT, + }, + { + .value = TEXTURE_SRC_CODE_CINEMATIC_A, + .accessor = "cinematicASampler", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT, + }, + { + .value = TEXTURE_SRC_CODE_REFLECTION_PROBE, + .accessor = "reflectionProbeSampler", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = TEXTURE_SRC_CODE_FEATHER_FLOAT_Z, + .accessor = "featherFloatZSampler", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = TEXTURE_SRC_CODE_TERRAIN_SCORCH_TEXTURE_0, + .accessor = "terrainScorchTextureSampler0", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT, + }, + { + .value = TEXTURE_SRC_CODE_TERRAIN_SCORCH_TEXTURE_1, + .accessor = "terrainScorchTextureSampler1", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT, + }, + { + .value = TEXTURE_SRC_CODE_TERRAIN_SCORCH_TEXTURE_2, + .accessor = "terrainScorchTextureSampler2", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT, + }, + { + .value = TEXTURE_SRC_CODE_TERRAIN_SCORCH_TEXTURE_3, + .accessor = "terrainScorchTextureSampler3", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT, + }, + { + .value = TEXTURE_SRC_CODE_LIGHTMAP_SECONDARYB, + .accessor = "lightmapSamplerSecondaryB", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::CUSTOM, + }, + { + .value = TEXTURE_SRC_CODE_TEXTURE_0, + .accessor = "codeTexture0", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = TEXTURE_SRC_CODE_TEXTURE_1, + .accessor = "codeTexture1", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = TEXTURE_SRC_CODE_TEXTURE_2, + .accessor = "codeTexture2", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = TEXTURE_SRC_CODE_TEXTURE_3, + .accessor = "codeTexture3", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = TEXTURE_SRC_CODE_IMPACT_MASK, + .accessor = "impactMaskSampler", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = TEXTURE_SRC_CODE_UI3D, + .accessor = "ui3dSampler", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = TEXTURE_SRC_CODE_MISSILE_CAM, + .accessor = "missileCamSampler", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + { + .value = TEXTURE_SRC_CODE_COMPOSITE_RESULT, + .accessor = "compositeResult", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::PER_OBJECT, + }, + { + .value = TEXTURE_SRC_CODE_HEATMAP, + .accessor = "heatmapSampler", + .updateFrequency = techset::CommonCodeSourceUpdateFrequency::RARELY, + }, + }; + + inline MaterialTypeInfo g_materialTypeInfo[]{ + {"", "" }, + {"m/", "m_" }, + {"mc/", "mc_"}, + {"w/", "w_" }, + {"wc/", "wc_"}, + }; + static_assert(std::extent_v == MTL_TYPE_COUNT); +} // namespace T5 diff --git a/src/ObjWriting/Game/T5/Techset/TechsetDumperT5.cpp b/src/ObjWriting/Game/T5/Techset/TechsetDumperT5.cpp new file mode 100644 index 00000000..09f1f79d --- /dev/null +++ b/src/ObjWriting/Game/T5/Techset/TechsetDumperT5.cpp @@ -0,0 +1,339 @@ +#include "TechsetDumperT5.h" + +#include "Game/T5/Material/MaterialConstantZoneStateT5.h" +#include "Game/T5/Techset/TechsetConstantsT5.h" +#include "Shader/ShaderCommon.h" +#include "Techset/CommonTechniqueDumper.h" +#include "Techset/CommonTechsetDumper.h" +#include "Techset/ShaderDumpingZoneState.h" +#include "Techset/TechniqueDumpingZoneState.h" + +#include +#include + +using namespace T5; + +namespace +{ + void DumpPixelShader(const AssetDumpingContext& context, const MaterialPixelShader& pixelShader) + { + const auto shaderFile = context.OpenAssetFile(shader::GetFileNameForPixelShaderAssetName(pixelShader.name)); + + if (!shaderFile) + return; + + shaderFile->write(reinterpret_cast(pixelShader.prog.loadDef.program), pixelShader.prog.loadDef.programSize * sizeof(uint32_t)); + } + + void DumpVertexShader(const AssetDumpingContext& context, const MaterialVertexShader& vertexShader) + { + const auto shaderFile = context.OpenAssetFile(shader::GetFileNameForVertexShaderAssetName(vertexShader.name)); + + if (!shaderFile) + return; + + shaderFile->write(reinterpret_cast(vertexShader.prog.loadDef.program), vertexShader.prog.loadDef.programSize * sizeof(uint32_t)); + } + + void DumpShaders(AssetDumpingContext& context, const MaterialTechniqueSet& techset) + { + auto* shaderState = context.GetZoneAssetDumperState(); + + for (const auto* technique : techset.techniques) + { + if (!technique || !shaderState->ShouldDumpTechnique(technique)) + continue; + + for (auto passIndex = 0u; passIndex < technique->passCount; passIndex++) + { + const auto* pixelShader = technique->passArray[passIndex].pixelShader; + if (pixelShader && shaderState->ShouldDumpPixelShader(pixelShader)) + DumpPixelShader(context, *pixelShader); + + const auto* vertexShader = technique->passArray[passIndex].vertexShader; + if (vertexShader && shaderState->ShouldDumpVertexShader(vertexShader)) + DumpVertexShader(context, *vertexShader); + } + } + } + + techset::CommonVertexDeclaration ConvertToCommonVertexDeclaration(const MaterialVertexDeclaration* vertexDecl) + { + std::vector commonRouting; + + if (vertexDecl) + { + const auto streamCount = std::min(static_cast(vertexDecl->streamCount), std::extent_v); + for (auto streamIndex = 0u; streamIndex < streamCount; streamIndex++) + { + const auto& routing = vertexDecl->routing.data[streamIndex]; + commonRouting.emplace_back(techset::CommonStreamRouting{ + .m_source = static_cast(routing.source), + .m_destination = static_cast(routing.dest), + }); + } + } + + return techset::CommonVertexDeclaration{ + .m_routing = std::move(commonRouting), + }; + } + + techset::CommonShaderArg ConvertToCommonArg(const MaterialShaderArgument& arg) + { + switch (arg.type) + { + case MTL_ARG_CODE_VERTEX_CONST: + case MTL_ARG_CODE_PIXEL_CONST: + return techset::CommonShaderArg{ + .m_type = techset::CommonShaderArgType::CODE_CONST, + .m_destination = {.dx9 = + { + .m_destination_register = arg.dest, + }}, + .m_value = { + .code_const_source = static_cast(arg.u.codeConst.index), + } + }; + + case MTL_ARG_MATERIAL_VERTEX_CONST: + case MTL_ARG_MATERIAL_PIXEL_CONST: + return techset::CommonShaderArg{ + .m_type = techset::CommonShaderArgType::MATERIAL_CONST, + .m_destination = {.dx9 = + { + .m_destination_register = arg.dest, + }}, + .m_value = { + .name_hash = arg.u.nameHash, + } + }; + + case MTL_ARG_CODE_PIXEL_SAMPLER: + return techset::CommonShaderArg{ + .m_type = techset::CommonShaderArgType::CODE_SAMPLER, + .m_destination = {.dx9 = + { + .m_destination_register = arg.dest, + }}, + .m_value = { + .code_sampler_source = static_cast(arg.u.codeSampler), + } + }; + + case MTL_ARG_MATERIAL_PIXEL_SAMPLER: + return techset::CommonShaderArg{ + .m_type = techset::CommonShaderArgType::MATERIAL_SAMPLER, + .m_destination = {.dx9 = + { + .m_destination_register = arg.dest, + }}, + .m_value = { + .name_hash = arg.u.nameHash, + } + }; + + default: + case MTL_ARG_LITERAL_VERTEX_CONST: + case MTL_ARG_LITERAL_PIXEL_CONST: + if (arg.u.literalConst) + { + return techset::CommonShaderArg{ + .m_type = techset::CommonShaderArgType::LITERAL_CONST, + .m_destination = {.dx9 = + { + .m_destination_register = arg.dest, + }}, + .m_value = { + .literal_value = + { + (*arg.u.literalConst)[0], + (*arg.u.literalConst)[1], + (*arg.u.literalConst)[2], + (*arg.u.literalConst)[3], + }, } + }; + } + + return techset::CommonShaderArg{ + .m_type = techset::CommonShaderArgType::LITERAL_CONST, + .m_destination = {.dx9 = + { + .m_destination_register = arg.dest, + }}, + .m_value = {}, + }; + } + } + + techset::CommonTechniqueShader ConvertToCommonShader(const MaterialPass& pass, const MaterialVertexShader* vertexShader) + { + techset::CommonTechniqueShader result{}; + if (!vertexShader) + return result; + + if (vertexShader->name) + result.m_name = vertexShader->name; + + if (vertexShader->prog.loadDef.program) + { + result.m_shader_bin = vertexShader->prog.loadDef.program; + result.m_shader_bin_size = vertexShader->prog.loadDef.programSize * sizeof(uint32_t); + } + + if (pass.args) + { + const size_t totalArgCount = pass.perPrimArgCount + pass.perObjArgCount + pass.stableArgCount; + for (auto argIndex = 0uz; argIndex < totalArgCount; argIndex++) + { + const auto& arg = pass.args[argIndex]; + + switch (arg.type) + { + case MTL_ARG_CODE_VERTEX_CONST: + case MTL_ARG_MATERIAL_VERTEX_CONST: + case MTL_ARG_LITERAL_VERTEX_CONST: + result.m_args.emplace_back(ConvertToCommonArg(arg)); + break; + default: + break; + } + } + } + + return result; + } + + techset::CommonTechniqueShader ConvertToCommonShader(const MaterialPass& pass, const MaterialPixelShader* pixelShader) + { + techset::CommonTechniqueShader result{}; + if (!pixelShader) + return result; + + if (pixelShader->name) + result.m_name = pixelShader->name; + + if (pixelShader->prog.loadDef.program) + { + result.m_shader_bin = pixelShader->prog.loadDef.program; + result.m_shader_bin_size = pixelShader->prog.loadDef.programSize * sizeof(uint32_t); + } + + if (pass.args) + { + const size_t totalArgCount = pass.perPrimArgCount + pass.perObjArgCount + pass.stableArgCount; + for (auto argIndex = 0uz; argIndex < totalArgCount; argIndex++) + { + const auto& arg = pass.args[argIndex]; + + switch (arg.type) + { + case MTL_ARG_CODE_PIXEL_CONST: + case MTL_ARG_CODE_PIXEL_SAMPLER: + case MTL_ARG_MATERIAL_PIXEL_CONST: + case MTL_ARG_MATERIAL_PIXEL_SAMPLER: + case MTL_ARG_LITERAL_PIXEL_CONST: + result.m_args.emplace_back(ConvertToCommonArg(arg)); + break; + default: + break; + } + } + } + + return result; + } + + techset::CommonTechnique ConvertToCommonTechnique(const MaterialTechnique& technique) + { + std::vector passes; + + for (auto passIndex = 0u; passIndex < technique.passCount; passIndex++) + { + const auto& pass = technique.passArray[passIndex]; + + passes.emplace_back(techset::CommonPass{ + .m_sampler_flags = pass.customSamplerFlags, + .m_dx_version = techset::DxVersion::DX9, + .m_vertex_shader = ConvertToCommonShader(pass, pass.vertexShader), + .m_pixel_shader = ConvertToCommonShader(pass, pass.pixelShader), + .m_vertex_declaration = ConvertToCommonVertexDeclaration(pass.vertexDecl), + }); + } + + return techset::CommonTechnique{ + .m_name = technique.name ? technique.name : std::string(), + .m_flags = technique.flags, + .m_passes = std::move(passes), + }; + } + + void DumpTechniques(AssetDumpingContext& context, const MaterialTechniqueSet& techset) + { + static techset::CommonCodeSourceInfos codeSourceInfos(commonCodeConstSources, + std::extent_v, + commonCodeSamplerSources, + std::extent_v); + static techset::CommonStreamRoutingInfos routingInfos( + streamRoutingSources, std::extent_v, streamRoutingDestinations, std::extent_v); + + auto* techniqueState = context.GetZoneAssetDumperState(); + const auto* materialConstantState = context.GetZoneAssetDumperState(); + for (const auto* technique : techset.techniques) + { + if (technique && techniqueState->ShouldDumpTechnique(technique)) + { + const auto commonTechnique = ConvertToCommonTechnique(*technique); + + techset::DumpCommonTechnique(context, commonTechnique, codeSourceInfos, routingInfos, *materialConstantState); + } + } + } + + techset::CommonTechset ConvertToCommonTechset(const MaterialTechniqueSet& techset) + { + std::vector techniqueNames(std::extent_v); + + for (auto techniqueIndex = 0u; techniqueIndex < std::extent_v; techniqueIndex++) + { + const auto* technique = techset.techniques[techniqueIndex]; + if (technique && technique->name) + techniqueNames[techniqueIndex] = technique->name; + } + + return techset::CommonTechset{ + .m_name = techset.name, + .m_technique_names = std::move(techniqueNames), + }; + } + + void DumpTechset(const AssetDumpingContext& context, const MaterialTechniqueSet& techset) + { + static techset::CommonTechniqueTypeNames commonNames(techniqueTypeNames, std::extent_v); + const auto commonTechset = ConvertToCommonTechset(techset); + + techset::DumpCommonTechset(commonNames, context, commonTechset); + } +} // namespace + +namespace techset +{ + DumperT5::DumperT5(const AssetPool& pool) + : AbstractAssetDumper(pool) + { + } + + void DumperT5::Dump(AssetDumpingContext& context) + { + context.GetZoneAssetDumperState()->EnsureInitialized(); + AbstractAssetDumper::Dump(context); + } + + void DumperT5::DumpAsset(AssetDumpingContext& context, const XAssetInfo& asset) + { + const auto* techniqueSet = asset.Asset(); + DumpTechset(context, *techniqueSet); + DumpTechniques(context, *techniqueSet); + DumpShaders(context, *techniqueSet); + } +} // namespace techset diff --git a/src/ObjWriting/Game/T5/Techset/TechsetDumperT5.h b/src/ObjWriting/Game/T5/Techset/TechsetDumperT5.h new file mode 100644 index 00000000..5a616730 --- /dev/null +++ b/src/ObjWriting/Game/T5/Techset/TechsetDumperT5.h @@ -0,0 +1,18 @@ +#pragma once + +#include "Dumping/AbstractAssetDumper.h" +#include "Game/T5/T5.h" + +namespace techset +{ + class DumperT5 final : public AbstractAssetDumper + { + public: + explicit DumperT5(const AssetPool& pool); + + void Dump(AssetDumpingContext& context) override; + + protected: + void DumpAsset(AssetDumpingContext& context, const XAssetInfo& asset) override; + }; +} // namespace techset