mirror of
https://github.com/Laupetin/OpenAssetTools.git
synced 2025-06-11 07:18:11 -05:00
Correctly identify update frequencies for shader arguments
This commit is contained in:
@ -338,6 +338,175 @@ namespace IW4
|
||||
{}
|
||||
};
|
||||
|
||||
inline MaterialUpdateFrequency s_codeConstUpdateFreq[]
|
||||
{
|
||||
MTL_UPDATE_RARELY, // LIGHT_POSITION
|
||||
MTL_UPDATE_RARELY, // LIGHT_DIFFUSE
|
||||
MTL_UPDATE_RARELY, // LIGHT_SPECULAR
|
||||
MTL_UPDATE_RARELY, // LIGHT_SPOTDIR
|
||||
MTL_UPDATE_RARELY, // LIGHT_SPOTFACTORS
|
||||
MTL_UPDATE_RARELY, // LIGHT_FALLOFF_PLACEMENT
|
||||
MTL_UPDATE_RARELY, // PARTICLE_CLOUD_COLOR
|
||||
MTL_UPDATE_RARELY, // GAMETIME
|
||||
MTL_UPDATE_RARELY, // PIXEL_COST_FRACS
|
||||
MTL_UPDATE_RARELY, // PIXEL_COST_DECODE
|
||||
MTL_UPDATE_RARELY, // FILTER_TAP_0
|
||||
MTL_UPDATE_RARELY, // FILTER_TAP_1
|
||||
MTL_UPDATE_RARELY, // FILTER_TAP_2
|
||||
MTL_UPDATE_RARELY, // FILTER_TAP_3
|
||||
MTL_UPDATE_RARELY, // FILTER_TAP_4
|
||||
MTL_UPDATE_RARELY, // FILTER_TAP_5
|
||||
MTL_UPDATE_RARELY, // FILTER_TAP_6
|
||||
MTL_UPDATE_RARELY, // FILTER_TAP_7
|
||||
MTL_UPDATE_RARELY, // COLOR_MATRIX_R
|
||||
MTL_UPDATE_RARELY, // COLOR_MATRIX_G
|
||||
MTL_UPDATE_RARELY, // COLOR_MATRIX_B
|
||||
MTL_UPDATE_RARELY, // SHADOWMAP_POLYGON_OFFSET
|
||||
MTL_UPDATE_RARELY, // RENDER_TARGET_SIZE
|
||||
MTL_UPDATE_RARELY, // DOF_EQUATION_VIEWMODEL_AND_FAR_BLUR
|
||||
MTL_UPDATE_RARELY, // DOF_EQUATION_SCENE
|
||||
MTL_UPDATE_RARELY, // DOF_LERP_SCALE
|
||||
MTL_UPDATE_RARELY, // DOF_LERP_BIAS
|
||||
MTL_UPDATE_RARELY, // DOF_ROW_DELTA
|
||||
MTL_UPDATE_RARELY, // MOTION_MATRIX_X
|
||||
MTL_UPDATE_RARELY, // MOTION_MATRIX_Y
|
||||
MTL_UPDATE_RARELY, // MOTION_MATRIX_W
|
||||
MTL_UPDATE_RARELY, // SHADOWMAP_SWITCH_PARTITION
|
||||
MTL_UPDATE_RARELY, // SHADOWMAP_SCALE
|
||||
MTL_UPDATE_RARELY, // ZNEAR
|
||||
MTL_UPDATE_RARELY, // LIGHTING_LOOKUP_SCALE
|
||||
MTL_UPDATE_RARELY, // DEBUG_BUMPMAP
|
||||
MTL_UPDATE_RARELY, // MATERIAL_COLOR
|
||||
MTL_UPDATE_RARELY, // FOG
|
||||
MTL_UPDATE_RARELY, // FOG_COLOR_LINEAR
|
||||
MTL_UPDATE_RARELY, // FOG_COLOR_GAMMA
|
||||
MTL_UPDATE_RARELY, // FOG_SUN_CONSTS
|
||||
MTL_UPDATE_RARELY, // FOG_SUN_COLOR_LINEAR
|
||||
MTL_UPDATE_RARELY, // FOG_SUN_COLOR_GAMMA
|
||||
MTL_UPDATE_RARELY, // FOG_SUN_DIR
|
||||
MTL_UPDATE_RARELY, // GLOW_SETUP
|
||||
MTL_UPDATE_RARELY, // GLOW_APPLY
|
||||
MTL_UPDATE_RARELY, // COLOR_BIAS
|
||||
MTL_UPDATE_RARELY, // COLOR_TINT_BASE
|
||||
MTL_UPDATE_RARELY, // COLOR_TINT_DELTA
|
||||
MTL_UPDATE_RARELY, // COLOR_TINT_QUADRATIC_DELTA
|
||||
MTL_UPDATE_RARELY, // OUTDOOR_FEATHER_PARMS
|
||||
MTL_UPDATE_RARELY, // ENVMAP_PARMS
|
||||
MTL_UPDATE_RARELY, // SUN_SHADOWMAP_PIXEL_ADJUST
|
||||
MTL_UPDATE_RARELY, // SPOT_SHADOWMAP_PIXEL_ADJUST
|
||||
MTL_UPDATE_RARELY, // COMPOSITE_FX_DISTORTION
|
||||
MTL_UPDATE_RARELY, // POSTFX_FADE_EFFECT
|
||||
MTL_UPDATE_RARELY, // VIEWPORT_DIMENSIONS
|
||||
MTL_UPDATE_RARELY, // FRAMEBUFFER_READ
|
||||
MTL_UPDATE_PER_PRIM, // BASE_LIGHTING_COORDS
|
||||
MTL_UPDATE_PER_PRIM, // LIGHT_PROBE_AMBIENT
|
||||
MTL_UPDATE_RARELY, // NEARPLANE_ORG
|
||||
MTL_UPDATE_RARELY, // NEARPLANE_DX
|
||||
MTL_UPDATE_RARELY, // NEARPLANE_DY
|
||||
MTL_UPDATE_RARELY, // CLIP_SPACE_LOOKUP_SCALE
|
||||
MTL_UPDATE_RARELY, // CLIP_SPACE_LOOKUP_OFFSET
|
||||
MTL_UPDATE_PER_OBJECT, // PARTICLE_CLOUD_MATRIX0
|
||||
MTL_UPDATE_PER_OBJECT, // PARTICLE_CLOUD_MATRIX1
|
||||
MTL_UPDATE_PER_OBJECT, // PARTICLE_CLOUD_MATRIX2
|
||||
MTL_UPDATE_PER_OBJECT, // PARTICLE_CLOUD_SPARK_COLOR0
|
||||
MTL_UPDATE_PER_OBJECT, // PARTICLE_CLOUD_SPARK_COLOR1
|
||||
MTL_UPDATE_PER_OBJECT, // PARTICLE_CLOUD_SPARK_COLOR2
|
||||
MTL_UPDATE_PER_OBJECT, // PARTICLE_FOUNTAIN_PARM0
|
||||
MTL_UPDATE_PER_OBJECT, // PARTICLE_FOUNTAIN_PARM1
|
||||
MTL_UPDATE_PER_OBJECT, // DEPTH_FROM_CLIP
|
||||
MTL_UPDATE_PER_OBJECT, // CODE_MESH_ARG_0
|
||||
MTL_UPDATE_PER_OBJECT, // CODE_MESH_ARG_1
|
||||
MTL_UPDATE_PER_OBJECT, // VIEW_MATRIX
|
||||
MTL_UPDATE_PER_OBJECT, // INVERSE_VIEW_MATRIX
|
||||
MTL_UPDATE_PER_OBJECT, // TRANSPOSE_VIEW_MATRIX
|
||||
MTL_UPDATE_PER_OBJECT, // INVERSE_TRANSPOSE_VIEW_MATRIX
|
||||
MTL_UPDATE_PER_OBJECT, // PROJECTION_MATRIX
|
||||
MTL_UPDATE_PER_OBJECT, // INVERSE_PROJECTION_MATRIX
|
||||
MTL_UPDATE_PER_OBJECT, // TRANSPOSE_PROJECTION_MATRIX
|
||||
MTL_UPDATE_PER_OBJECT, // INVERSE_TRANSPOSE_PROJECTION_MATRIX
|
||||
MTL_UPDATE_PER_OBJECT, // VIEW_PROJECTION_MATRIX
|
||||
MTL_UPDATE_PER_OBJECT, // INVERSE_VIEW_PROJECTION_MATRIX
|
||||
MTL_UPDATE_PER_OBJECT, // TRANSPOSE_VIEW_PROJECTION_MATRIX
|
||||
MTL_UPDATE_PER_OBJECT, // INVERSE_TRANSPOSE_VIEW_PROJECTION_MATRIX
|
||||
MTL_UPDATE_PER_OBJECT, // SHADOW_LOOKUP_MATRIX
|
||||
MTL_UPDATE_PER_OBJECT, // INVERSE_SHADOW_LOOKUP_MATRIX
|
||||
MTL_UPDATE_PER_OBJECT, // TRANSPOSE_SHADOW_LOOKUP_MATRIX
|
||||
MTL_UPDATE_PER_OBJECT, // INVERSE_TRANSPOSE_SHADOW_LOOKUP_MATRIX
|
||||
MTL_UPDATE_PER_PRIM, // WORLD_OUTDOOR_LOOKUP_MATRIX
|
||||
MTL_UPDATE_PER_PRIM, // INVERSE_WORLD_OUTDOOR_LOOKUP_MATRIX
|
||||
MTL_UPDATE_PER_PRIM, // TRANSPOSE_WORLD_OUTDOOR_LOOKUP_MATRIX
|
||||
MTL_UPDATE_PER_PRIM, // INVERSE_TRANSPOSE_WORLD_OUTDOOR_LOOKUP_MATRIX
|
||||
MTL_UPDATE_PER_PRIM, // WORLD_MATRIX0
|
||||
MTL_UPDATE_PER_PRIM, // INVERSE_WORLD_MATRIX0
|
||||
MTL_UPDATE_PER_PRIM, // TRANSPOSE_WORLD_MATRIX0
|
||||
MTL_UPDATE_PER_PRIM, // INVERSE_TRANSPOSE_WORLD_MATRIX0
|
||||
MTL_UPDATE_PER_PRIM, // WORLD_VIEW_MATRIX0
|
||||
MTL_UPDATE_PER_PRIM, // INVERSE_WORLD_VIEW_MATRIX0
|
||||
MTL_UPDATE_PER_PRIM, // TRANSPOSE_WORLD_VIEW_MATRIX0
|
||||
MTL_UPDATE_PER_PRIM, // INVERSE_TRANSPOSE_WORLD_VIEW_MATRIX0
|
||||
MTL_UPDATE_PER_PRIM, // WORLD_VIEW_PROJECTION_MATRIX0
|
||||
MTL_UPDATE_PER_PRIM, // INVERSE_WORLD_VIEW_PROJECTION_MATRIX0
|
||||
MTL_UPDATE_PER_PRIM, // TRANSPOSE_WORLD_VIEW_PROJECTION_MATRIX0
|
||||
MTL_UPDATE_PER_PRIM, // INVERSE_TRANSPOSE_WORLD_VIEW_PROJECTION_MATRIX0
|
||||
MTL_UPDATE_PER_PRIM, // WORLD_MATRIX1
|
||||
MTL_UPDATE_PER_PRIM, // INVERSE_WORLD_MATRIX1
|
||||
MTL_UPDATE_PER_PRIM, // TRANSPOSE_WORLD_MATRIX1
|
||||
MTL_UPDATE_PER_PRIM, // INVERSE_TRANSPOSE_WORLD_MATRIX1
|
||||
MTL_UPDATE_PER_PRIM, // WORLD_VIEW_MATRIX1
|
||||
MTL_UPDATE_PER_PRIM, // INVERSE_WORLD_VIEW_MATRIX1
|
||||
MTL_UPDATE_PER_PRIM, // TRANSPOSE_WORLD_VIEW_MATRIX1
|
||||
MTL_UPDATE_PER_PRIM, // INVERSE_TRANSPOSE_WORLD_VIEW_MATRIX1
|
||||
MTL_UPDATE_PER_PRIM, // WORLD_VIEW_PROJECTION_MATRIX1
|
||||
MTL_UPDATE_PER_PRIM, // INVERSE_WORLD_VIEW_PROJECTION_MATRIX1
|
||||
MTL_UPDATE_PER_PRIM, // TRANSPOSE_WORLD_VIEW_PROJECTION_MATRIX1
|
||||
MTL_UPDATE_PER_PRIM, // INVERSE_TRANSPOSE_WORLD_VIEW_PROJECTION_MATRIX1
|
||||
MTL_UPDATE_PER_PRIM, // WORLD_MATRIX2
|
||||
MTL_UPDATE_PER_PRIM, // INVERSE_WORLD_MATRIX2
|
||||
MTL_UPDATE_PER_PRIM, // TRANSPOSE_WORLD_MATRIX2
|
||||
MTL_UPDATE_PER_PRIM, // INVERSE_TRANSPOSE_WORLD_MATRIX2
|
||||
MTL_UPDATE_PER_PRIM, // WORLD_VIEW_MATRIX2
|
||||
MTL_UPDATE_PER_PRIM, // INVERSE_WORLD_VIEW_MATRIX2
|
||||
MTL_UPDATE_PER_PRIM, // TRANSPOSE_WORLD_VIEW_MATRIX2
|
||||
MTL_UPDATE_PER_PRIM, // INVERSE_TRANSPOSE_WORLD_VIEW_MATRIX2
|
||||
MTL_UPDATE_PER_PRIM, // WORLD_VIEW_PROJECTION_MATRIX2
|
||||
MTL_UPDATE_PER_PRIM, // INVERSE_WORLD_VIEW_PROJECTION_MATRIX2
|
||||
MTL_UPDATE_PER_PRIM, // TRANSPOSE_WORLD_VIEW_PROJECTION_MATRIX2
|
||||
MTL_UPDATE_PER_PRIM, // INVERSE_TRANSPOSE_WORLD_VIEW_PROJECTION_MATRIX2
|
||||
};
|
||||
static_assert(std::extent_v<decltype(s_codeConstUpdateFreq)> == CONST_SRC_TOTAL_COUNT);
|
||||
|
||||
inline MaterialUpdateFrequency s_codeSamplerUpdateFreq[]
|
||||
{
|
||||
MTL_UPDATE_RARELY, // BLACK
|
||||
MTL_UPDATE_RARELY, // WHITE
|
||||
MTL_UPDATE_RARELY, // IDENTITY_NORMAL_MAP
|
||||
MTL_UPDATE_RARELY, // MODEL_LIGHTING
|
||||
MTL_UPDATE_CUSTOM, // LIGHTMAP_PRIMARY
|
||||
MTL_UPDATE_CUSTOM, // LIGHTMAP_SECONDARY
|
||||
MTL_UPDATE_RARELY, // SHADOWMAP_SUN
|
||||
MTL_UPDATE_RARELY, // SHADOWMAP_SPOT
|
||||
MTL_UPDATE_PER_OBJECT, // FEEDBACK
|
||||
MTL_UPDATE_RARELY, // RESOLVED_POST_SUN
|
||||
MTL_UPDATE_RARELY, // RESOLVED_SCENE
|
||||
MTL_UPDATE_RARELY, // POST_EFFECT_0
|
||||
MTL_UPDATE_RARELY, // POST_EFFECT_1
|
||||
MTL_UPDATE_PER_OBJECT, // LIGHT_ATTENUATION
|
||||
MTL_UPDATE_RARELY, // OUTDOOR
|
||||
MTL_UPDATE_RARELY, // FLOATZ
|
||||
MTL_UPDATE_RARELY, // PROCESSED_FLOATZ
|
||||
MTL_UPDATE_RARELY, // RAW_FLOATZ
|
||||
MTL_UPDATE_RARELY, // HALF_PARTICLES
|
||||
MTL_UPDATE_RARELY, // HALF_PARTICLES_Z
|
||||
MTL_UPDATE_PER_OBJECT, // CASE_TEXTURE
|
||||
MTL_UPDATE_PER_OBJECT, // CINEMATIC_Y
|
||||
MTL_UPDATE_PER_OBJECT, // CINEMATIC_CR
|
||||
MTL_UPDATE_PER_OBJECT, // CINEMATIC_CB
|
||||
MTL_UPDATE_PER_OBJECT, // CINEMATIC_A
|
||||
MTL_UPDATE_CUSTOM, // REFLECTION_PROBE
|
||||
MTL_UPDATE_RARELY, // ALTERNATE_SCENE
|
||||
};
|
||||
static_assert(std::extent_v<decltype(s_codeSamplerUpdateFreq)> == TEXTURE_SRC_CODE_COUNT);
|
||||
|
||||
static constexpr std::pair<uint32_t, const char*> KnownMaterialSource(const char* name)
|
||||
{
|
||||
return std::make_pair(Common::R_HashString(name, 0u), name);
|
||||
|
Reference in New Issue
Block a user