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
GetMapProp(u8[] str)
{
switch(str) with(MatProp)
string s = ConvToStr!(u8)(str);
switch(s) with(MatProp)
{
case r"Ka": return Ambient;
case r"Kd": return Albedo;
case r"Ks": return Specular;
case r"Ns": return SpecularExp;
case r"d": return Dissolve;
case r"Tr": return Transparency;
case r"Tf": return Transmission;
case r"Ni": return OpticalDensity;
case r"illum": return Illumination;
case r"map_Ka": return AmbientMap;
case r"map_Kd": return DiffuseMap;
case r"map_Ks": return SpecularMap;
case r"map_Ns": return SpecularHighlightMap;
case r"map_d": return AlphaMap;
case r"map_bump":
case r"bump": return BumpMap;
case r"disp": return DisplacementMap;
case r"decal": return Stencil;
case r"Pr": return Roughness;
case r"map_Pr": return RoughnessMap;
case r"Pm": return Metallic;
case r"map_Pm": return MetallicMap;
case r"Pc": return ClearcoatThickness;
case r"Pcr": return ClearcoatRoughness;
case r"Ke": return Emissive;
case r"map_Ke": return EmissiveMap;
case r"aniso": return Anisotropy;
case r"anisor": return AnisotropyMap;
case r"norm": return NormalMap;
case "Ka": return Ambient;
case "Kd": return Albedo;
case "Ks": return Specular;
case "Ns": return SpecularExp;
case "d": return Dissolve;
case "Tr": return Transparency;
case "Tf": return Transmission;
case "Ni": return OpticalDensity;
case "illum": return Illumination;
case "map_Ka": return AmbientMap;
case "map_Kd": return AlbedoMap;
case "map_Ks": return SpecularMap;
case "map_Ns": return SpecularHighlightMap;
case "map_d": return AlphaMap;
case "map_bump":
case "bump": return BumpMap;
case "disp": return DisplacementMap;
case "decal": return Stencil;
case "Pr": return Roughness;
case "map_Pr": return RoughnessMap;
case "Pm": return Metallic;
case "map_Pm": return MetallicMap;
case "Pc": return ClearcoatThickness;
case "Pcr": return ClearcoatRoughness;
case "Ke": return Emissive;
case "map_Ke": return EmissiveMap;
case "aniso": return Anisotropy;
case "anisor": return AnisotropyMap;
case "norm": return NormalMap;
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"
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
./$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
CondIncr(i64 step, T)(bool cond, T* val)
{