RenderSystem: enforce type and type name consistency

Use same types used by the game in either the public presentations or binary code. And enforce type name consistency.
This commit is contained in:
Kawe Mazidjatari 2025-01-06 16:41:25 +01:00
parent 62d0dab7cd
commit e6c7c7d279
5 changed files with 97 additions and 97 deletions

View File

@ -33,8 +33,8 @@ public:
CShaderGlue* shaderset; //0x0058 CShaderGlue* shaderset; //0x0058
TextureHeader_t** textureHandles; //0x0060 TextureAsset_s** textureHandles; //0x0060
TextureHeader_t** streamingTextureHandles; //0x0068 TextureAsset_s** streamingTextureHandles; //0x0068
int16_t numStreamingTextureHandles; //0x0070 int16_t numStreamingTextureHandles; //0x0070

View File

@ -15,7 +15,7 @@
struct TextureStreamMgr_Task_s struct TextureStreamMgr_Task_s
{ {
TextureAsset_t* textureAsset; TextureAsset_s* textureAsset;
// The mip level count to load or drop. // The mip level count to load or drop.
uint8 mipLevelCount; uint8 mipLevelCount;
@ -87,7 +87,7 @@ struct TextureStreamMgr_s
Vector3D streamBspCameraPos; Vector3D streamBspCameraPos;
float streamBspHalfFovX; float streamBspHalfFovX;
float streamBspViewWidth; float streamBspViewWidth;
TextureAsset_t* streamableTextures[4]; TextureAsset_s* streamableTextures[4];
}; };
inline void(*v_StreamDB_Init)(const char* const pszLevelName); inline void(*v_StreamDB_Init)(const char* const pszLevelName);

View File

@ -4,111 +4,111 @@
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Structure definitions // Structure definitions
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
/*schema*/ struct TextureDesc_t /*schema*/ struct TextureDesc_s
{ {
uint64_t m_AssetGuid; uint64 m_AssetGuid;
const char* m_pDebugName; const char* m_pDebugName;
uint16 m_nWidth; uint16 m_nWidth;
uint16 m_nHeight; uint16 m_nHeight;
uint16 m_nDepth; uint16 m_nDepth;
uint16_t m_nImageFormat; uint16 m_nImageFormat;
}; };
/*schema*/ struct TextureHeader_t : public TextureDesc_t /*schema*/ struct TextureAsset_s : public TextureDesc_s
{ {
uint32_t m_nDataLength; uint32 m_nDataLength;
uint8_t unknown_2; uint8 unknown_2;
uint8_t m_nOptStreamedMipCount; uint8 m_nOptStreamedMipCount;
uint8_t m_nArraySize; uint8 m_nArraySize;
uint8_t m_nLayerCount; uint8 m_nLayerCount;
uint8_t m_nCPUAccessFlag; // [ PIXIE ]: In RTech::CreateDXBuffer textureDescription Usage is determined by the CPU Access Flag so I assume it's the same case here. uint8 m_nCPUAccessFlag; // [ PIXIE ]: In RTech::CreateDXBuffer textureDescription Usage is determined by the CPU Access Flag so I assume it's the same case here.
uint8_t m_nPermanentMipCount; uint8 m_nPermanentMipCount;
uint8_t m_nStreamedMipCount; uint8 m_nStreamedMipCount;
uint8_t unknown_4[13]; uint8 unknown_4[13];
__int64 m_nPixelCount; __int64 m_nPixelCount;
uint8_t unknown_5[3]; uint8 unknown_5[3];
uint8_t m_nTotalStreamedMipCount; // Does not get set until after RTech::CreateDXTexture. uint8 m_nTotalStreamedMipCount; // Does not get set until after RTech::CreateDXTexture.
uint8_t unk4[228]; uint8 unk4[228];
uint8_t unk5[57]; uint8 unk5[57];
ID3D11Texture2D* m_ppTexture; ID3D11Texture2D* m_ppTexture;
ID3D11ShaderResourceView* m_ppShaderResourceView; ID3D11ShaderResourceView* m_ppShaderResourceView;
uint8_t m_nTextureMipLevels; uint8 m_nTextureMipLevels;
uint8_t m_nTextureMipLevelsStreamedOpt; uint8 m_nTextureMipLevelsStreamedOpt;
}; };
struct TextureBytesPerPixel_t struct TextureBytesPerPixel_s
{ {
uint8_t x; uint8 x;
uint8_t y; uint8 y;
}; };
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Table definitions // Table definitions
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
static inline const TextureBytesPerPixel_t s_pBytesPerPixel[] = static inline const TextureBytesPerPixel_s s_pBytesPerPixel[] =
{ {
{ uint8_t(8u), uint8_t(4u) }, { u8(8u), u8(4u) },
{ uint8_t(8u), uint8_t(4u) }, { u8(8u), u8(4u) },
{ uint8_t(16u), uint8_t(4u) }, { u8(16u), u8(4u) },
{ uint8_t(16u), uint8_t(4u) }, { u8(16u), u8(4u) },
{ uint8_t(16u), uint8_t(4u) }, { u8(16u), u8(4u) },
{ uint8_t(16u), uint8_t(4u) }, { u8(16u), u8(4u) },
{ uint8_t(8u), uint8_t(4u) }, { u8(8u), u8(4u) },
{ uint8_t(8u), uint8_t(4u) }, { u8(8u), u8(4u) },
{ uint8_t(16u), uint8_t(4u) }, { u8(16u), u8(4u) },
{ uint8_t(16u), uint8_t(4u) }, { u8(16u), u8(4u) },
{ uint8_t(16u), uint8_t(4u) }, { u8(16u), u8(4u) },
{ uint8_t(16u), uint8_t(4u) }, { u8(16u), u8(4u) },
{ uint8_t(16u), uint8_t(4u) }, { u8(16u), u8(4u) },
{ uint8_t(16u), uint8_t(4u) }, { u8(16u), u8(4u) },
{ uint8_t(16u), uint8_t(1u) }, { u8(16u), u8(1u) },
{ uint8_t(16u), uint8_t(1u) }, { u8(16u), u8(1u) },
{ uint8_t(16u), uint8_t(1u) }, { u8(16u), u8(1u) },
{ uint8_t(12u), uint8_t(1u) }, { u8(12u), u8(1u) },
{ uint8_t(12u), uint8_t(1u) }, { u8(12u), u8(1u) },
{ uint8_t(12u), uint8_t(1u) }, { u8(12u), u8(1u) },
{ uint8_t(8u), uint8_t(1u) }, { u8(8u), u8(1u) },
{ uint8_t(8u), uint8_t(1u) }, { u8(8u), u8(1u) },
{ uint8_t(8u), uint8_t(1u) }, { u8(8u), u8(1u) },
{ uint8_t(8u), uint8_t(1u) }, { u8(8u), u8(1u) },
{ uint8_t(8u), uint8_t(1u) }, { u8(8u), u8(1u) },
{ uint8_t(8u), uint8_t(1u) }, { u8(8u), u8(1u) },
{ uint8_t(8u), uint8_t(1u) }, { u8(8u), u8(1u) },
{ uint8_t(8u), uint8_t(1u) }, { u8(8u), u8(1u) },
{ uint8_t(4u), uint8_t(1u) }, { u8(4u), u8(1u) },
{ uint8_t(4u), uint8_t(1u) }, { u8(4u), u8(1u) },
{ uint8_t(4u), uint8_t(1u) }, { u8(4u), u8(1u) },
{ uint8_t(4u), uint8_t(1u) }, { u8(4u), u8(1u) },
{ uint8_t(4u), uint8_t(1u) }, { u8(4u), u8(1u) },
{ uint8_t(4u), uint8_t(1u) }, { u8(4u), u8(1u) },
{ uint8_t(4u), uint8_t(1u) }, { u8(4u), u8(1u) },
{ uint8_t(4u), uint8_t(1u) }, { u8(4u), u8(1u) },
{ uint8_t(4u), uint8_t(1u) }, { u8(4u), u8(1u) },
{ uint8_t(4u), uint8_t(1u) }, { u8(4u), u8(1u) },
{ uint8_t(4u), uint8_t(1u) }, { u8(4u), u8(1u) },
{ uint8_t(4u), uint8_t(1u) }, { u8(4u), u8(1u) },
{ uint8_t(4u), uint8_t(1u) }, { u8(4u), u8(1u) },
{ uint8_t(4u), uint8_t(1u) }, { u8(4u), u8(1u) },
{ uint8_t(4u), uint8_t(1u) }, { u8(4u), u8(1u) },
{ uint8_t(4u), uint8_t(1u) }, { u8(4u), u8(1u) },
{ uint8_t(2u), uint8_t(1u) }, { u8(2u), u8(1u) },
{ uint8_t(2u), uint8_t(1u) }, { u8(2u), u8(1u) },
{ uint8_t(2u), uint8_t(1u) }, { u8(2u), u8(1u) },
{ uint8_t(2u), uint8_t(1u) }, { u8(2u), u8(1u) },
{ uint8_t(2u), uint8_t(1u) }, { u8(2u), u8(1u) },
{ uint8_t(2u), uint8_t(1u) }, { u8(2u), u8(1u) },
{ uint8_t(2u), uint8_t(1u) }, { u8(2u), u8(1u) },
{ uint8_t(2u), uint8_t(1u) }, { u8(2u), u8(1u) },
{ uint8_t(2u), uint8_t(1u) }, { u8(2u), u8(1u) },
{ uint8_t(1u), uint8_t(1u) }, { u8(1u), u8(1u) },
{ uint8_t(1u), uint8_t(1u) }, { u8(1u), u8(1u) },
{ uint8_t(1u), uint8_t(1u) }, { u8(1u), u8(1u) },
{ uint8_t(1u), uint8_t(1u) }, { u8(1u), u8(1u) },
{ uint8_t(1u), uint8_t(1u) }, { u8(1u), u8(1u) },
{ uint8_t(4u), uint8_t(1u) }, { u8(4u), u8(1u) },
{ uint8_t(4u), uint8_t(1u) }, { u8(4u), u8(1u) },
{ uint8_t(4u), uint8_t(1u) }, { u8(4u), u8(1u) },
{ uint8_t(2u), uint8_t(1u) }, { u8(2u), u8(1u) },
}; };
// Map dxgi format to txtr asset format // Map dxgi format to txtr asset format

View File

@ -11,7 +11,7 @@
#define STBSP_NOMINAL_TEX_RES 4096 #define STBSP_NOMINAL_TEX_RES 4096
struct MaterialGlue_t; struct MaterialGlue_t;
struct TextureAsset_t; struct TextureAsset_s;
struct StreamDBLump_s struct StreamDBLump_s
{ {

View File

@ -116,9 +116,9 @@ HRESULT __stdcall ResizeBuffers(IDXGISwapChain* pSwapChain, UINT nBufferCount, U
// Disable stack warning, tells us to move more data to the heap instead. Not really possible with 'initialData' here. Since its parallel processed. // Disable stack warning, tells us to move more data to the heap instead. Not really possible with 'initialData' here. Since its parallel processed.
// Also disable 6378, complains that there is no control path where it would use 'nullptr', if that happens 'Error' will be called though. // Also disable 6378, complains that there is no control path where it would use 'nullptr', if that happens 'Error' will be called though.
#pragma warning( disable : 6262 6387) #pragma warning( disable : 6262 6387)
void(*v_CreateTextureResource)(TextureHeader_t*, INT_PTR); void(*v_CreateTextureResource)(TextureAsset_s*, INT_PTR);
constexpr uint32_t ALIGNMENT_SIZE = 15; // Creates 2D texture and shader resource from textureHeader and imageData. constexpr uint32_t ALIGNMENT_SIZE = 15; // Creates 2D texture and shader resource from textureHeader and imageData.
void CreateTextureResource(TextureHeader_t* textureHeader, INT_PTR imageData) void CreateTextureResource(TextureAsset_s* textureHeader, INT_PTR imageData)
{ {
if (textureHeader->m_nDepth && !textureHeader->m_nHeight) // Return never gets hit. Maybe its some debug check? if (textureHeader->m_nDepth && !textureHeader->m_nHeight) // Return never gets hit. Maybe its some debug check?
return; return;
@ -143,7 +143,7 @@ void CreateTextureResource(TextureHeader_t* textureHeader, INT_PTR imageData)
if (textureHeader->m_nHeight >> mipLevel > 1) if (textureHeader->m_nHeight >> mipLevel > 1)
mipHeight = (textureHeader->m_nHeight >> mipLevel) - 1; mipHeight = (textureHeader->m_nHeight >> mipLevel) - 1;
const TextureBytesPerPixel_t& perPixel = s_pBytesPerPixel[textureHeader->m_nImageFormat]; const TextureBytesPerPixel_s& perPixel = s_pBytesPerPixel[textureHeader->m_nImageFormat];
const u8 x = perPixel.x; const u8 x = perPixel.x;
const u8 y = perPixel.y; const u8 y = perPixel.y;