Fixed casing issues with MetaNames which probably was causing XML issues. Moved shader param names to new ShaderParamNames enum to preserve casing. Moved meta type names to new MetaTypeName enum to avoid polluting MetaNames.

This commit is contained in:
dexy
2019-10-31 17:11:12 +11:00
Unverified
parent 262e6666c9
commit 4834b8c520
25 changed files with 3728 additions and 2272 deletions
+65 -64
View File
@@ -405,7 +405,7 @@ namespace CodeWalker.Rendering
public Texture[] TexturesHD;
public RenderableTexture[] RenderableTextures;
public RenderableTexture[] RenderableTexturesHD;
public MetaName[] TextureParamHashes;
public ShaderParamNames[] TextureParamHashes;
public PrimitiveTopology Topology { get; set; }
public bool IsFragment = false;
public bool IsEmissive { get; set; } = false;
@@ -435,46 +435,46 @@ namespace CodeWalker.Rendering
public bool HDTextureEnable = true;
public static MetaName[] GetTextureSamplerList()
public static ShaderParamNames[] GetTextureSamplerList()
{
return new MetaName[]
return new ShaderParamNames[]
{
MetaName.DiffuseSampler, //base diffuse
MetaName.SpecSampler, //base specular
MetaName.BumpSampler, //base normal
MetaName.TintPaletteSampler, // _pal
MetaName.DetailSampler, // ENV_
MetaName.FlowSampler, //river _flow
MetaName.FogSampler, //river _fog , water slod
MetaName.TextureSampler_layer0, //CS_RSN_SL_Road_0007
MetaName.BumpSampler_layer0, //CS_RSN_SL_Road_0007_n
MetaName.heightMapSamplerLayer0, //nxg_cs_rsn_sl_road_0007_h
MetaName.TextureSampler_layer1, //IM_Road_009b
MetaName.BumpSampler_layer1, //IM_Road_010b_N
MetaName.heightMapSamplerLayer1, //nxg_im_road_010b_h
MetaName.TextureSampler_layer2, //IM_Concrete10
MetaName.BumpSampler_layer2, //IM_Concrete13_N
MetaName.heightMapSamplerLayer2, //nxg_im_concrete13_h
MetaName.TextureSampler_layer3, //SC1_RSN_NS_ground_0009
MetaName.BumpSampler_layer3, //sc1_rsn_ns_ground_0010_n
MetaName.heightMapSamplerLayer3, //nxg_sc1_rsn_ns_ground_0010_b_h
MetaName.lookupSampler, //TF_RSN_Msk_CS1_DesHill1, bh1_43_golf_blendmap_04_LOD
MetaName.heightSampler, //nxg_prop_tree_palm2_displ_l
MetaName.FoamSampler, //bj_beachfoam01_lod, CS_RSN_SL_RiverFoam_01_A_lodCS_RSN_SL_RiverFoam_01_A
MetaName.DirtSampler,
MetaName.DirtBumpSampler,
MetaName.DiffuseSampler2,
MetaName.DiffuseSampler3,
MetaName.DiffuseHfSampler,
MetaName.ComboHeightSamplerFur01,
MetaName.ComboHeightSamplerFur23,
MetaName.ComboHeightSamplerFur45,
MetaName.ComboHeightSamplerFur67,
MetaName.StippleSampler,
MetaName.FurMaskSampler,
MetaName.EnvironmentSampler,
MetaName.distanceMapSampler,
MetaName.textureSamp,
ShaderParamNames.DiffuseSampler, //base diffuse
ShaderParamNames.SpecSampler, //base specular
ShaderParamNames.BumpSampler, //base normal
ShaderParamNames.TintPaletteSampler, // _pal
ShaderParamNames.DetailSampler, // ENV_
ShaderParamNames.FlowSampler, //river _flow
ShaderParamNames.FogSampler, //river _fog , water slod
ShaderParamNames.TextureSampler_layer0, //CS_RSN_SL_Road_0007
ShaderParamNames.BumpSampler_layer0, //CS_RSN_SL_Road_0007_n
ShaderParamNames.heightMapSamplerLayer0, //nxg_cs_rsn_sl_road_0007_h
ShaderParamNames.TextureSampler_layer1, //IM_Road_009b
ShaderParamNames.BumpSampler_layer1, //IM_Road_010b_N
ShaderParamNames.heightMapSamplerLayer1, //nxg_im_road_010b_h
ShaderParamNames.TextureSampler_layer2, //IM_Concrete10
ShaderParamNames.BumpSampler_layer2, //IM_Concrete13_N
ShaderParamNames.heightMapSamplerLayer2, //nxg_im_concrete13_h
ShaderParamNames.TextureSampler_layer3, //SC1_RSN_NS_ground_0009
ShaderParamNames.BumpSampler_layer3, //sc1_rsn_ns_ground_0010_n
ShaderParamNames.heightMapSamplerLayer3, //nxg_sc1_rsn_ns_ground_0010_b_h
ShaderParamNames.lookupSampler, //TF_RSN_Msk_CS1_DesHill1, bh1_43_golf_blendmap_04_LOD
ShaderParamNames.heightSampler, //nxg_prop_tree_palm2_displ_l
ShaderParamNames.FoamSampler, //bj_beachfoam01_lod, CS_RSN_SL_RiverFoam_01_A_lodCS_RSN_SL_RiverFoam_01_A
ShaderParamNames.DirtSampler,
ShaderParamNames.DirtBumpSampler,
ShaderParamNames.DiffuseSampler2,
ShaderParamNames.DiffuseSampler3,
ShaderParamNames.DiffuseHfSampler,
ShaderParamNames.ComboHeightSamplerFur01,
ShaderParamNames.ComboHeightSamplerFur23,
ShaderParamNames.ComboHeightSamplerFur45,
ShaderParamNames.ComboHeightSamplerFur67,
ShaderParamNames.StippleSampler,
ShaderParamNames.FurMaskSampler,
ShaderParamNames.EnvironmentSampler,
ShaderParamNames.distanceMapSampler,
ShaderParamNames.textureSamp,
};
}
@@ -552,82 +552,83 @@ namespace CodeWalker.Rendering
var pl = shader.ParametersList.Parameters;
var hl = shader.ParametersList.Hashes;
List<TextureBase> texs = new List<TextureBase>();
List<MetaName> phashes = new List<MetaName>();
List<ShaderParamNames> phashes = new List<ShaderParamNames>();
if ((pl != null) && (hl != null))
{
for (int i = 0; (i < pl.Length) && (i < hl.Length); i++)
{
ShaderParamNames pName = (ShaderParamNames)hl[i];
var param = pl[i];
if (param.Data is TextureBase)
{
texs.Add(param.Data as TextureBase);
phashes.Add(hl[i]);
phashes.Add(pName);
}
switch (hl[i])
switch (pName)
{
case MetaName.HardAlphaBlend:
case ShaderParamNames.HardAlphaBlend:
HardAlphaBlend = ((Vector4)param.Data).X;
break;
case MetaName.useTessellation:
case ShaderParamNames.useTessellation:
useTessellation = ((Vector4)param.Data).X;
break;
case MetaName.wetnessMultiplier:
case ShaderParamNames.wetnessMultiplier:
wetnessMultiplier = ((Vector4)param.Data).X;
break;
case MetaName.bumpiness: //float
case ShaderParamNames.bumpiness: //float
bumpiness = ((Vector4)param.Data).X;
break;
case MetaName.detailSettings: //float4
case ShaderParamNames.detailSettings: //float4
detailSettings = (Vector4)param.Data;
break;
case MetaName.specMapIntMask: //float3
case ShaderParamNames.specMapIntMask: //float3
specMapIntMask = ((Vector4)param.Data).XYZ();
break;
case MetaName.specularIntensityMult: //float
case ShaderParamNames.specularIntensityMult: //float
specularIntensityMult = ((Vector4)param.Data).X;
break;
case MetaName.specularFalloffMult: //float
case ShaderParamNames.specularFalloffMult: //float
specularFalloffMult = ((Vector4)param.Data).X;
break;
case MetaName.specularFresnel: //float
case ShaderParamNames.specularFresnel: //float
specularFresnel= ((Vector4)param.Data).X;
break;
case MetaName.WindGlobalParams:
case MetaName.umGlobalOverrideParams:
case ShaderParamNames.WindGlobalParams:
case ShaderParamNames.umGlobalOverrideParams:
//WindOverrideParams = ((Vector4)param.Data); //todo...
break;
case MetaName.umGlobalParams:
case ShaderParamNames.umGlobalParams:
WindGlobalParams = ((Vector4)param.Data);
break;
case MetaName.RippleSpeed:
case ShaderParamNames.RippleSpeed:
RippleSpeed = ((Vector4)param.Data).X;
break;
case MetaName.RippleScale:
case ShaderParamNames.RippleScale:
RippleScale = ((Vector4)param.Data).X;
break;
case MetaName.RippleBumpiness:
case ShaderParamNames.RippleBumpiness:
RippleBumpiness = ((Vector4)param.Data).X;
break;
case MetaName.globalAnimUV0:
case ShaderParamNames.globalAnimUV0:
globalAnimUV0 = (Vector4)param.Data;
break;
case MetaName.globalAnimUV1:
case ShaderParamNames.globalAnimUV1:
globalAnimUV1 = (Vector4)param.Data;
break;
case MetaName.WaveOffset:
case ShaderParamNames.WaveOffset:
WaveOffset = ((Vector4)param.Data).X;
break;
case MetaName.WaterHeight:
case ShaderParamNames.WaterHeight:
WaterHeight = ((Vector4)param.Data).X;
break;
case MetaName.WaveMovement:
case ShaderParamNames.WaveMovement:
WaveMovement = ((Vector4)param.Data).X;
break;
case MetaName.HeightOpacity:
case ShaderParamNames.HeightOpacity:
HeightOpacity = ((Vector4)param.Data).X;
break;
case MetaName.DirtDecalMask:
case ShaderParamNames.DirtDecalMask:
DirtDecalMask = ((Vector4)param.Data);
break;
}
+1 -1
View File
@@ -77,7 +77,7 @@ namespace CodeWalker.Rendering
public int RenderVertexColourIndex = 1;
public int RenderTextureCoordIndex = 1;
public int RenderTextureSamplerCoord = 1;
public MetaName RenderTextureSampler = MetaName.DiffuseSampler;
public ShaderParamNames RenderTextureSampler = ShaderParamNames.DiffuseSampler;
public double CurrentRealTime = 0;
public float CurrentElapsedTime = 0;
+15 -15
View File
@@ -159,7 +159,7 @@ namespace CodeWalker.Rendering
public int RenderVertexColourIndex = 1;
public int RenderTextureCoordIndex = 1;
public int RenderTextureSamplerCoord = 1;
public MetaName RenderTextureSampler = MetaName.DiffuseSampler;
public ShaderParamNames RenderTextureSampler = ShaderParamNames.DiffuseSampler;
public bool SpecularEnable = true;
@@ -549,21 +549,21 @@ namespace CodeWalker.Rendering
if (itex.Key?.NameHash == 1678728908 /*"blank"*/) continue;
switch (ihash)
{
case MetaName.DiffuseSampler:
case MetaName.PlateBgSampler:
case ShaderParamNames.DiffuseSampler:
case ShaderParamNames.PlateBgSampler:
texture = itex;
break;
case MetaName.BumpSampler:
case MetaName.PlateBgBumpSampler:
case ShaderParamNames.BumpSampler:
case ShaderParamNames.PlateBgBumpSampler:
bumptex = itex;
break;
case MetaName.SpecSampler:
case ShaderParamNames.SpecSampler:
spectex = itex;
break;
case MetaName.DetailSampler:
case ShaderParamNames.DetailSampler:
detltex = itex;
break;
case MetaName.TintPaletteSampler:
case ShaderParamNames.TintPaletteSampler:
tintpal = itex;
if (tintpal.Key != null)
{
@@ -571,24 +571,24 @@ namespace CodeWalker.Rendering
tntpalind = (VSEntityVars.Vars.TintPaletteIndex + 0.5f) / tintpal.Key.Height;
}
break;
case MetaName.distanceMapSampler:
case ShaderParamNames.distanceMapSampler:
texture = itex;
isdistmap = true;
break;
case MetaName.DiffuseSampler2:
case ShaderParamNames.DiffuseSampler2:
texture2 = itex;
break;
case MetaName.heightSampler:
case MetaName.EnvironmentSampler:
case ShaderParamNames.heightSampler:
case ShaderParamNames.EnvironmentSampler:
//case MetaName.SnowSampler0:
//case MetaName.SnowSampler1:
//case MetaName.DiffuseSampler3:
//case MetaName.DirtSampler:
//case MetaName.DirtBumpSampler:
break;
case MetaName.FlowSampler:
case MetaName.FogSampler:
case MetaName.FoamSampler:
case ShaderParamNames.FlowSampler:
case ShaderParamNames.FogSampler:
case ShaderParamNames.FoamSampler:
if (texture == null) texture = itex;
break;
default:
+2 -2
View File
@@ -76,7 +76,7 @@ namespace CodeWalker.Rendering
public int RenderVertexColourIndex = 1;
public int RenderTextureCoordIndex = 1;
public int RenderTextureSamplerCoord = 1;
public MetaName RenderTextureSampler = MetaName.DiffuseSampler;
public ShaderParamNames RenderTextureSampler = ShaderParamNames.DiffuseSampler;
private Dictionary<VertexType, InputLayout> layouts = new Dictionary<VertexType, InputLayout>();
@@ -230,7 +230,7 @@ namespace CodeWalker.Rendering
var ihash = geom.TextureParamHashes[i];
switch (ihash)
{
case MetaName.DiffuseSampler:
case ShaderParamNames.DiffuseSampler:
texture = itex;
break;
}
+7 -7
View File
@@ -241,25 +241,25 @@ namespace CodeWalker.Rendering
var ihash = geom.TextureParamHashes[i];
switch (ihash)
{
case MetaName.DensitySampler:
case ShaderParamNames.DensitySampler:
DensitySampler = itex;
break;
case MetaName.normalSampler:
case ShaderParamNames.normalSampler:
NormalSampler = itex;
break;
case MetaName.DetailDensitySampler:
case ShaderParamNames.DetailDensitySampler:
DetailDensitySampler = itex;
break;
case MetaName.DetailNormalSampler:
case ShaderParamNames.DetailNormalSampler:
DetailNormalSampler = itex;
break;
case MetaName.DetailDensity2Sampler:
case ShaderParamNames.DetailDensity2Sampler:
DetailDensity2Sampler = itex;
break;
case MetaName.DetailNormal2Sampler:
case ShaderParamNames.DetailNormal2Sampler:
DetailNormal2Sampler = itex;
break;
case MetaName.DepthMapTexSampler:
case ShaderParamNames.DepthMapTexSampler:
DepthMapTexSampler = itex;
break;
default:
+5 -5
View File
@@ -213,11 +213,11 @@ namespace CodeWalker.Rendering
var ihash = geom.TextureParamHashes[i];
switch (ihash)
{
case MetaName.DiffuseSampler:
case MetaName.TextureSampler_layer0:
case MetaName.TextureSampler_layer1:
case MetaName.TextureSampler_layer2:
case MetaName.TextureSampler_layer3:
case ShaderParamNames.DiffuseSampler:
case ShaderParamNames.TextureSampler_layer0:
case ShaderParamNames.TextureSampler_layer1:
case ShaderParamNames.TextureSampler_layer2:
case ShaderParamNames.TextureSampler_layer3:
texture = itex;
break;
}
+19 -19
View File
@@ -92,7 +92,7 @@ namespace CodeWalker.Rendering
public int RenderVertexColourIndex = 1;
public int RenderTextureCoordIndex = 1;
public int RenderTextureSamplerCoord = 1;
public MetaName RenderTextureSampler = MetaName.DiffuseSampler;
public ShaderParamNames RenderTextureSampler = ShaderParamNames.DiffuseSampler;
private Dictionary<VertexType, InputLayout> layouts = new Dictionary<VertexType, InputLayout>();
@@ -298,13 +298,13 @@ namespace CodeWalker.Rendering
case WorldRenderMode.SingleTexture:
switch (RenderTextureSampler)
{
case MetaName.DiffuseSampler:
case ShaderParamNames.DiffuseSampler:
rendermode = 5;
break;
case MetaName.BumpSampler:
case ShaderParamNames.BumpSampler:
rendermode = 6;
break;
case MetaName.SpecSampler:
case ShaderParamNames.SpecSampler:
rendermode = 7;
break;
default:
@@ -387,40 +387,40 @@ namespace CodeWalker.Rendering
var ihash = geom.TextureParamHashes[i];
switch (ihash)
{
case MetaName.DiffuseSampler:
case ShaderParamNames.DiffuseSampler:
texture0 = itex;
break;
case MetaName.TextureSampler_layer0:
case ShaderParamNames.TextureSampler_layer0:
texture1 = itex;
break;
case MetaName.TextureSampler_layer1:
case ShaderParamNames.TextureSampler_layer1:
texture2 = itex;
break;
case MetaName.TextureSampler_layer2:
case ShaderParamNames.TextureSampler_layer2:
texture3 = itex;
break;
case MetaName.TextureSampler_layer3:
case ShaderParamNames.TextureSampler_layer3:
texture4 = itex;
break;
case MetaName.BumpSampler:
case ShaderParamNames.BumpSampler:
normals0 = itex;
break;
case MetaName.BumpSampler_layer0:
case ShaderParamNames.BumpSampler_layer0:
normals1 = itex;
break;
case MetaName.BumpSampler_layer1:
case ShaderParamNames.BumpSampler_layer1:
normals2 = itex;
break;
case MetaName.BumpSampler_layer2:
case ShaderParamNames.BumpSampler_layer2:
normals3 = itex;
break;
case MetaName.BumpSampler_layer3:
case ShaderParamNames.BumpSampler_layer3:
normals4 = itex;
break;
case MetaName.lookupSampler:
case ShaderParamNames.lookupSampler:
texturemask = itex;
break;
case MetaName.TintPaletteSampler:
case ShaderParamNames.TintPaletteSampler:
tintpal = itex;
if (tintpal.Key != null)
{
@@ -494,9 +494,9 @@ namespace CodeWalker.Rendering
usevc = false;
switch (RenderTextureSampler)
{
case MetaName.DiffuseSampler:
case MetaName.BumpSampler:
case MetaName.SpecSampler:
case ShaderParamNames.DiffuseSampler:
case ShaderParamNames.BumpSampler:
case ShaderParamNames.SpecSampler:
break;
default:
for (int i = 0; i < geom.RenderableTextures.Length; i++)
+7 -7
View File
@@ -189,14 +189,14 @@ namespace CodeWalker.Rendering
for (int i = 0; i < nparams; i++)
{
var h = shader.ParametersList.Hashes[i];
var h = (ShaderParamNames)shader.ParametersList.Hashes[i];
switch (h)
{
case MetaName.AlphaTest: VSGeomVars.Vars.AlphaTest = (Vector4)sparams[i].Data; break;
case MetaName.AlphaScale: VSGeomVars.Vars.AlphaScale = (Vector4)sparams[i].Data; break;
case MetaName.UseTreeNormals: VSGeomVars.Vars.UseTreeNormals = (Vector4)sparams[i].Data; break;
case MetaName.treeLod2Normal: VSGeomVars.Vars.treeLod2Normal = (Vector4)sparams[i].Data; break;
case MetaName.treeLod2Params: VSGeomVars.Vars.treeLod2Params = (Vector4)sparams[i].Data; break;
case ShaderParamNames.AlphaTest: VSGeomVars.Vars.AlphaTest = (Vector4)sparams[i].Data; break;
case ShaderParamNames.AlphaScale: VSGeomVars.Vars.AlphaScale = (Vector4)sparams[i].Data; break;
case ShaderParamNames.UseTreeNormals: VSGeomVars.Vars.UseTreeNormals = (Vector4)sparams[i].Data; break;
case ShaderParamNames.treeLod2Normal: VSGeomVars.Vars.treeLod2Normal = (Vector4)sparams[i].Data; break;
case ShaderParamNames.treeLod2Params: VSGeomVars.Vars.treeLod2Params = (Vector4)sparams[i].Data; break;
}
}
@@ -222,7 +222,7 @@ namespace CodeWalker.Rendering
var ihash = geom.TextureParamHashes[i];
switch (ihash)
{
case MetaName.DiffuseSampler:
case ShaderParamNames.DiffuseSampler:
texture = itex;
break;
}
+6 -6
View File
@@ -103,7 +103,7 @@ namespace CodeWalker.Rendering
public int RenderVertexColourIndex = 1;
public int RenderTextureCoordIndex = 1;
public int RenderTextureSamplerCoord = 1;
public MetaName RenderTextureSampler = MetaName.DiffuseSampler;
public ShaderParamNames RenderTextureSampler = ShaderParamNames.DiffuseSampler;
public double CurrentRealTime = 0;
public float CurrentElapsedTime = 0;
public bool SpecularEnable = true;
@@ -351,19 +351,19 @@ namespace CodeWalker.Rendering
if (itex == null) continue;
switch (ihash)
{
case MetaName.DiffuseSampler:
case ShaderParamNames.DiffuseSampler:
texture = itex;
break;
case MetaName.BumpSampler:
case ShaderParamNames.BumpSampler:
bumptex = itex;
break;
case MetaName.FlowSampler:
case ShaderParamNames.FlowSampler:
flowtex = itex;
break;
case MetaName.FoamSampler:
case ShaderParamNames.FoamSampler:
foamtex = itex;
break;
case MetaName.FogSampler:
case ShaderParamNames.FogSampler:
fogtex = itex;
break;
default: