1
Fork 0
mirror of https://github.com/redstrate/Physis.git synced 2025-06-06 14:47:46 +00:00

Remove texture usage enum from Sampler

This is a bit of an awkward API, because we have to manually keep the
CRC list up-to-date when in other cases that's left up to consumers. I
added a comment about how to figure out this value.
This commit is contained in:
Joshua Goins 2025-06-02 17:44:04 -04:00
parent 1d3192de23
commit f46a32462e
2 changed files with 3 additions and 54 deletions

View file

@ -317,65 +317,13 @@ pub struct Constant {
values: [f32; 4], values: [f32; 4],
} }
// from https://github.com/NotAdam/Lumina/blob/master/src/Lumina/Data/Parsing/MtrlStructs.cs
#[binrw]
#[repr(u8)]
#[derive(Debug, Clone, Copy)]
pub enum TextureUsage {
#[brw(magic = 0x88408C04u32)]
Sampler,
#[brw(magic = 0x213CB439u32)]
Sampler0,
#[brw(magic = 0x563B84AFu32)]
Sampler1,
#[brw(magic = 0xFEA0F3D2u32)]
SamplerCatchlight,
#[brw(magic = 0x1E6FEF9Cu32)]
SamplerColorMap0,
#[brw(magic = 0x6968DF0Au32)]
SamplerColorMap1,
#[brw(magic = 0x115306BEu32)]
SamplerDiffuse,
#[brw(magic = 0xF8D7957Au32)]
SamplerEnvMap,
#[brw(magic = 0x8A4E82B6u32)]
SamplerMask,
#[brw(magic = 0x0C5EC1F1u32)]
SamplerNormal,
#[brw(magic = 0xAAB4D9E9u32)]
SamplerNormalMap0,
#[brw(magic = 0xDDB3E97Fu32)]
SamplerNormalMap1,
#[brw(magic = 0x87F6474Du32)]
SamplerReflection,
#[brw(magic = 0x2B99E025u32)]
SamplerSpecular,
#[brw(magic = 0x1BBC2F12u32)]
SamplerSpecularMap0,
#[brw(magic = 0x6CBB1F84u32)]
SamplerSpecularMap1,
#[brw(magic = 0xE6321AFCu32)]
SamplerWaveMap,
#[brw(magic = 0x574E22D6u32)]
SamplerWaveletMap0,
#[brw(magic = 0x20491240u32)]
SamplerWaveletMap1,
#[brw(magic = 0x95E1F64Du32)]
SamplerWhitecapMap,
#[brw(magic = 0x565f8fd8u32)]
UnknownDawntrail1,
#[brw(magic = 0xe5338c17u32)]
UnknownDawntrail2,
}
#[binrw] #[binrw]
#[derive(Debug, Clone, Copy)] #[derive(Debug, Clone, Copy)]
#[repr(C)] #[repr(C)]
#[allow(dead_code)] #[allow(dead_code)]
pub struct Sampler { pub struct Sampler {
texture_usage: TextureUsage, /// This is a CRC hash, it can be calculated via ShaderPackage::crc
pub texture_usage: u32,
flags: u32, // TODO: unknown flags: u32, // TODO: unknown
texture_index: u8, texture_index: u8,
unknown1: u8, unknown1: u8,

View file

@ -305,6 +305,7 @@ mod tests {
fn test_crc() { fn test_crc() {
assert_eq!(ShaderPackage::crc("PASS_0"), 0xC5A5389C); assert_eq!(ShaderPackage::crc("PASS_0"), 0xC5A5389C);
assert_eq!(ShaderPackage::crc("DecodeDepthBuffer"), 0x2C6C023C); assert_eq!(ShaderPackage::crc("DecodeDepthBuffer"), 0x2C6C023C);
assert_eq!(ShaderPackage::crc("g_Sampler"), 0x88408C04);
} }
#[test] #[test]