From 545888638e2e3f0bc97b88cf3ff1e97e7a255181 Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Sat, 27 Apr 2024 11:53:37 -0400 Subject: [PATCH] Expose shader keys, constants, samplers and shader values --- src/mtrl.rs | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/mtrl.rs b/src/mtrl.rs index c56f8ed..1e506a4 100644 --- a/src/mtrl.rs +++ b/src/mtrl.rs @@ -69,7 +69,8 @@ pub struct ShaderKey { } #[binrw] -#[derive(Debug)] +#[derive(Debug, Clone, Copy)] +#[repr(C)] #[allow(dead_code)] struct Constant { constant_id: u32, @@ -79,7 +80,8 @@ struct Constant { // from https://github.com/NotAdam/Lumina/blob/master/src/Lumina/Data/Parsing/MtrlStructs.cs #[binrw] -#[derive(Debug)] +#[repr(u8)] +#[derive(Debug, Clone, Copy)] enum TextureUsage { #[brw(magic = 0x88408C04u32)] Sampler, @@ -127,7 +129,8 @@ enum TextureUsage { } #[binrw] -#[derive(Debug)] +#[derive(Debug, Clone, Copy)] +#[repr(C)] #[allow(dead_code)] struct Sampler { texture_usage: TextureUsage, @@ -170,13 +173,13 @@ struct MaterialData { header: MaterialHeader, #[br(count = header.shader_key_count)] - shader_keys: Vec, + pub shader_keys: Vec, #[br(count = header.constant_count)] - constants: Vec, + pub constants: Vec, #[br(count = header.sampler_count)] - samplers: Vec, + pub samplers: Vec, #[br(count = header.shader_value_list_size / 4)] - shader_values: Vec, + pub shader_values: Vec, } #[derive(Debug)]