fix material prop types

This commit is contained in:
Matthew 2025-11-06 07:54:25 +11:00
parent b494e7f5da
commit 59b778012f
3 changed files with 44 additions and 32 deletions

View File

@ -164,37 +164,38 @@ bool Asset_Pack_Opened = false;
MatProp MatProp
GetMapProp(u8[] str) GetMapProp(u8[] str)
{ {
switch(str) with(MatProp) string s = ConvToStr!(u8)(str);
switch(s) with(MatProp)
{ {
case r"Ka": return Ambient; case "Ka": return Ambient;
case r"Kd": return Albedo; case "Kd": return Albedo;
case r"Ks": return Specular; case "Ks": return Specular;
case r"Ns": return SpecularExp; case "Ns": return SpecularExp;
case r"d": return Dissolve; case "d": return Dissolve;
case r"Tr": return Transparency; case "Tr": return Transparency;
case r"Tf": return Transmission; case "Tf": return Transmission;
case r"Ni": return OpticalDensity; case "Ni": return OpticalDensity;
case r"illum": return Illumination; case "illum": return Illumination;
case r"map_Ka": return AmbientMap; case "map_Ka": return AmbientMap;
case r"map_Kd": return DiffuseMap; case "map_Kd": return AlbedoMap;
case r"map_Ks": return SpecularMap; case "map_Ks": return SpecularMap;
case r"map_Ns": return SpecularHighlightMap; case "map_Ns": return SpecularHighlightMap;
case r"map_d": return AlphaMap; case "map_d": return AlphaMap;
case r"map_bump": case "map_bump":
case r"bump": return BumpMap; case "bump": return BumpMap;
case r"disp": return DisplacementMap; case "disp": return DisplacementMap;
case r"decal": return Stencil; case "decal": return Stencil;
case r"Pr": return Roughness; case "Pr": return Roughness;
case r"map_Pr": return RoughnessMap; case "map_Pr": return RoughnessMap;
case r"Pm": return Metallic; case "Pm": return Metallic;
case r"map_Pm": return MetallicMap; case "map_Pm": return MetallicMap;
case r"Pc": return ClearcoatThickness; case "Pc": return ClearcoatThickness;
case r"Pcr": return ClearcoatRoughness; case "Pcr": return ClearcoatRoughness;
case r"Ke": return Emissive; case "Ke": return Emissive;
case r"map_Ke": return EmissiveMap; case "map_Ke": return EmissiveMap;
case r"aniso": return Anisotropy; case "aniso": return Anisotropy;
case r"anisor": return AnisotropyMap; case "anisor": return AnisotropyMap;
case r"norm": return NormalMap; case "norm": return NormalMap;
default: return None; default: return None;
} }
} }
@ -388,6 +389,11 @@ UnloadAssetData(string name)
} }
unittest
{
{
MatProp prop = GetMapProp(cast(u8[])r"Ka");
}
}

View File

@ -2,7 +2,7 @@
name="Test_Runner" name="Test_Runner"
ldc2 platform.d aliases.d math.d util.d alloc.d external/xxhash/xxhash.d -P-I/usr/include/freetype2 -L-lfreetype --main --unittest --of=$name ldc2 platform.d aliases.d math.d util.d alloc.d assets.d external/xxhash/xxhash.d -P-I/usr/include/freetype2 -L-lfreetype --main --unittest --of=$name
rm $name.o rm $name.o
./$name ./$name
rm $name rm $name

6
util.d
View File

@ -33,6 +33,12 @@ Pause()
} }
} }
string
ConvToStr(T)(T[] arr)
{
return (cast(immutable(char)*)arr.ptr)[0 .. arr.length];
}
pragma(inline) bool pragma(inline) bool
CondIncr(i64 step, T)(bool cond, T* val) CondIncr(i64 step, T)(bool cond, T* val)
{ {