commonlibsse_ng\re\n/
NiSourceTexture.rs

1use crate::re::NiTexture::{NiTexture, NiTextureVtbl};
2use crate::re::offsets_ni_rtti::NiRTTI_NiSourceTexture;
3use crate::re::offsets_rtti::RTTI_NiSourceTexture;
4use crate::re::offsets_vtable::VTABLE_NiSourceTexture;
5use crate::rel::id::VariantID;
6
7use windows::Win32::Graphics::Direct3D11::{ID3D11ShaderResourceView, ID3D11Texture2D};
8
9#[repr(C)]
10#[derive(Debug)]
11pub struct BSGraphicsTexture {
12    pub texture: *mut ID3D11Texture2D,               // 0x00
13    pub unk08: u64,                                  // 0x08
14    pub resourceView: *mut ID3D11ShaderResourceView, // 0x10
15}
16const _: () = assert!(core::mem::size_of::<BSGraphicsTexture>() == 0x18);
17
18#[repr(C)]
19#[derive(Debug)]
20pub struct NiSourceTexture {
21    pub __base: NiTexture,                       // 0x00 - 40
22    pub unk40: *mut BSResourceStream,            // 0x40
23    pub rendererTexture: *mut BSGraphicsTexture, // 0x48
24    pub flags: u8,                               // 0x50
25    pub pad51: u8,                               // 0x51
26    pub pad52: u16,                              // 0x52
27    pub pad54: u32,                              // 0x54
28}
29const _: () = assert!(core::mem::size_of::<NiSourceTexture>() == 0x58);
30
31impl NiSourceTexture {
32    pub const RTTI: VariantID = RTTI_NiSourceTexture;
33    pub const NI_RTTI: VariantID = NiRTTI_NiSourceTexture;
34    pub const VTABLE: [VariantID; 1] = VTABLE_NiSourceTexture;
35}
36
37#[repr(C)]
38pub struct NiSourceTextureVtbl {
39    pub __base: NiTextureVtbl,
40
41    // virtual-s from 0x25 to 0x2A
42    pub Unk25: extern "C" fn(this: *const NiSourceTexture) -> u32, // 25
43    pub Unk26: extern "C" fn(this: *const NiSourceTexture) -> u32, // 26
44    pub Unk27: extern "C" fn(this: *const NiSourceTexture),        // 27
45    pub Unk28: extern "C" fn(this: *const NiSourceTexture),        // 28
46    pub Unk29: extern "C" fn(this: *const NiSourceTexture),        // 29
47    pub Unk2A: extern "C" fn(this: *const NiSourceTexture),        // 2A
48}
49
50// FFI declarations
51
52#[repr(C)]
53pub struct BSResourceStream;