diff --git a/src/mtrl.rs b/src/mtrl.rs index 1e506a4..02f8c64 100644 --- a/src/mtrl.rs +++ b/src/mtrl.rs @@ -72,7 +72,7 @@ pub struct ShaderKey { #[derive(Debug, Clone, Copy)] #[repr(C)] #[allow(dead_code)] -struct Constant { +pub struct Constant { constant_id: u32, value_offset: u16, value_size: u16, @@ -82,7 +82,7 @@ struct Constant { #[binrw] #[repr(u8)] #[derive(Debug, Clone, Copy)] -enum TextureUsage { +pub enum TextureUsage { #[brw(magic = 0x88408C04u32)] Sampler, #[brw(magic = 0x213CB439u32)] @@ -132,7 +132,7 @@ enum TextureUsage { #[derive(Debug, Clone, Copy)] #[repr(C)] #[allow(dead_code)] -struct Sampler { +pub struct Sampler { texture_usage: TextureUsage, flags: u32, // TODO: unknown #[br(pad_after = 3)] @@ -173,13 +173,13 @@ struct MaterialData { header: MaterialHeader, #[br(count = header.shader_key_count)] - pub shader_keys: Vec, + shader_keys: Vec, #[br(count = header.constant_count)] - pub constants: Vec, + constants: Vec, #[br(count = header.sampler_count)] - pub samplers: Vec, + samplers: Vec, #[br(count = header.shader_value_list_size / 4)] - pub shader_values: Vec, + shader_values: Vec, } #[derive(Debug)] @@ -187,6 +187,9 @@ pub struct Material { pub shader_package_name: String, pub texture_paths: Vec, pub shader_keys: Vec, + pub constants: Vec, + pub samplers: Vec, + pub shader_values: Vec, } impl Material { @@ -228,6 +231,9 @@ impl Material { shader_package_name, texture_paths, shader_keys: mat_data.shader_keys, + constants: mat_data.constants, + samplers: mat_data.samplers, + shader_values: mat_data.shader_values }) } }