mirror of
https://github.com/Mauler125/r5sdk.git
synced 2025-02-09 19:15:03 +01:00
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:
parent
62d0dab7cd
commit
e6c7c7d279
@ -33,8 +33,8 @@ public:
|
||||
|
||||
CShaderGlue* shaderset; //0x0058
|
||||
|
||||
TextureHeader_t** textureHandles; //0x0060
|
||||
TextureHeader_t** streamingTextureHandles; //0x0068
|
||||
TextureAsset_s** textureHandles; //0x0060
|
||||
TextureAsset_s** streamingTextureHandles; //0x0068
|
||||
|
||||
int16_t numStreamingTextureHandles; //0x0070
|
||||
|
||||
|
@ -15,7 +15,7 @@
|
||||
|
||||
struct TextureStreamMgr_Task_s
|
||||
{
|
||||
TextureAsset_t* textureAsset;
|
||||
TextureAsset_s* textureAsset;
|
||||
|
||||
// The mip level count to load or drop.
|
||||
uint8 mipLevelCount;
|
||||
@ -87,7 +87,7 @@ struct TextureStreamMgr_s
|
||||
Vector3D streamBspCameraPos;
|
||||
float streamBspHalfFovX;
|
||||
float streamBspViewWidth;
|
||||
TextureAsset_t* streamableTextures[4];
|
||||
TextureAsset_s* streamableTextures[4];
|
||||
};
|
||||
|
||||
inline void(*v_StreamDB_Init)(const char* const pszLevelName);
|
||||
|
@ -4,111 +4,111 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// Structure definitions
|
||||
//-----------------------------------------------------------------------------
|
||||
/*schema*/ struct TextureDesc_t
|
||||
/*schema*/ struct TextureDesc_s
|
||||
{
|
||||
uint64_t m_AssetGuid;
|
||||
const char* m_pDebugName;
|
||||
uint16 m_nWidth;
|
||||
uint16 m_nHeight;
|
||||
uint16 m_nDepth;
|
||||
uint16_t m_nImageFormat;
|
||||
uint64 m_AssetGuid;
|
||||
const char* m_pDebugName;
|
||||
uint16 m_nWidth;
|
||||
uint16 m_nHeight;
|
||||
uint16 m_nDepth;
|
||||
uint16 m_nImageFormat;
|
||||
};
|
||||
|
||||
/*schema*/ struct TextureHeader_t : public TextureDesc_t
|
||||
/*schema*/ struct TextureAsset_s : public TextureDesc_s
|
||||
{
|
||||
uint32_t m_nDataLength;
|
||||
uint8_t unknown_2;
|
||||
uint8_t m_nOptStreamedMipCount;
|
||||
uint8_t m_nArraySize;
|
||||
uint8_t 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_t m_nPermanentMipCount;
|
||||
uint8_t m_nStreamedMipCount;
|
||||
uint8_t unknown_4[13];
|
||||
uint32 m_nDataLength;
|
||||
uint8 unknown_2;
|
||||
uint8 m_nOptStreamedMipCount;
|
||||
uint8 m_nArraySize;
|
||||
uint8 m_nLayerCount;
|
||||
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 m_nPermanentMipCount;
|
||||
uint8 m_nStreamedMipCount;
|
||||
uint8 unknown_4[13];
|
||||
__int64 m_nPixelCount;
|
||||
uint8_t unknown_5[3];
|
||||
uint8_t m_nTotalStreamedMipCount; // Does not get set until after RTech::CreateDXTexture.
|
||||
uint8_t unk4[228];
|
||||
uint8_t unk5[57];
|
||||
uint8 unknown_5[3];
|
||||
uint8 m_nTotalStreamedMipCount; // Does not get set until after RTech::CreateDXTexture.
|
||||
uint8 unk4[228];
|
||||
uint8 unk5[57];
|
||||
ID3D11Texture2D* m_ppTexture;
|
||||
ID3D11ShaderResourceView* m_ppShaderResourceView;
|
||||
uint8_t m_nTextureMipLevels;
|
||||
uint8_t m_nTextureMipLevelsStreamedOpt;
|
||||
uint8 m_nTextureMipLevels;
|
||||
uint8 m_nTextureMipLevelsStreamedOpt;
|
||||
};
|
||||
|
||||
struct TextureBytesPerPixel_t
|
||||
struct TextureBytesPerPixel_s
|
||||
{
|
||||
uint8_t x;
|
||||
uint8_t y;
|
||||
uint8 x;
|
||||
uint8 y;
|
||||
};
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Table definitions
|
||||
//-----------------------------------------------------------------------------
|
||||
static inline const TextureBytesPerPixel_t s_pBytesPerPixel[] =
|
||||
static inline const TextureBytesPerPixel_s s_pBytesPerPixel[] =
|
||||
{
|
||||
{ uint8_t(8u), uint8_t(4u) },
|
||||
{ uint8_t(8u), uint8_t(4u) },
|
||||
{ uint8_t(16u), uint8_t(4u) },
|
||||
{ uint8_t(16u), uint8_t(4u) },
|
||||
{ uint8_t(16u), uint8_t(4u) },
|
||||
{ uint8_t(16u), uint8_t(4u) },
|
||||
{ uint8_t(8u), uint8_t(4u) },
|
||||
{ uint8_t(8u), uint8_t(4u) },
|
||||
{ uint8_t(16u), uint8_t(4u) },
|
||||
{ uint8_t(16u), uint8_t(4u) },
|
||||
{ uint8_t(16u), uint8_t(4u) },
|
||||
{ uint8_t(16u), uint8_t(4u) },
|
||||
{ uint8_t(16u), uint8_t(4u) },
|
||||
{ uint8_t(16u), uint8_t(4u) },
|
||||
{ uint8_t(16u), uint8_t(1u) },
|
||||
{ uint8_t(16u), uint8_t(1u) },
|
||||
{ uint8_t(16u), uint8_t(1u) },
|
||||
{ uint8_t(12u), uint8_t(1u) },
|
||||
{ uint8_t(12u), uint8_t(1u) },
|
||||
{ uint8_t(12u), uint8_t(1u) },
|
||||
{ uint8_t(8u), uint8_t(1u) },
|
||||
{ uint8_t(8u), uint8_t(1u) },
|
||||
{ uint8_t(8u), uint8_t(1u) },
|
||||
{ uint8_t(8u), uint8_t(1u) },
|
||||
{ uint8_t(8u), uint8_t(1u) },
|
||||
{ uint8_t(8u), uint8_t(1u) },
|
||||
{ uint8_t(8u), uint8_t(1u) },
|
||||
{ uint8_t(8u), uint8_t(1u) },
|
||||
{ uint8_t(4u), uint8_t(1u) },
|
||||
{ uint8_t(4u), uint8_t(1u) },
|
||||
{ uint8_t(4u), uint8_t(1u) },
|
||||
{ uint8_t(4u), uint8_t(1u) },
|
||||
{ uint8_t(4u), uint8_t(1u) },
|
||||
{ uint8_t(4u), uint8_t(1u) },
|
||||
{ uint8_t(4u), uint8_t(1u) },
|
||||
{ uint8_t(4u), uint8_t(1u) },
|
||||
{ uint8_t(4u), uint8_t(1u) },
|
||||
{ uint8_t(4u), uint8_t(1u) },
|
||||
{ uint8_t(4u), uint8_t(1u) },
|
||||
{ uint8_t(4u), uint8_t(1u) },
|
||||
{ uint8_t(4u), uint8_t(1u) },
|
||||
{ uint8_t(4u), uint8_t(1u) },
|
||||
{ uint8_t(4u), uint8_t(1u) },
|
||||
{ uint8_t(4u), uint8_t(1u) },
|
||||
{ uint8_t(2u), uint8_t(1u) },
|
||||
{ uint8_t(2u), uint8_t(1u) },
|
||||
{ uint8_t(2u), uint8_t(1u) },
|
||||
{ uint8_t(2u), uint8_t(1u) },
|
||||
{ uint8_t(2u), uint8_t(1u) },
|
||||
{ uint8_t(2u), uint8_t(1u) },
|
||||
{ uint8_t(2u), uint8_t(1u) },
|
||||
{ uint8_t(2u), uint8_t(1u) },
|
||||
{ uint8_t(2u), uint8_t(1u) },
|
||||
{ uint8_t(1u), uint8_t(1u) },
|
||||
{ uint8_t(1u), uint8_t(1u) },
|
||||
{ uint8_t(1u), uint8_t(1u) },
|
||||
{ uint8_t(1u), uint8_t(1u) },
|
||||
{ uint8_t(1u), uint8_t(1u) },
|
||||
{ uint8_t(4u), uint8_t(1u) },
|
||||
{ uint8_t(4u), uint8_t(1u) },
|
||||
{ uint8_t(4u), uint8_t(1u) },
|
||||
{ uint8_t(2u), uint8_t(1u) },
|
||||
{ u8(8u), u8(4u) },
|
||||
{ u8(8u), u8(4u) },
|
||||
{ u8(16u), u8(4u) },
|
||||
{ u8(16u), u8(4u) },
|
||||
{ u8(16u), u8(4u) },
|
||||
{ u8(16u), u8(4u) },
|
||||
{ u8(8u), u8(4u) },
|
||||
{ u8(8u), u8(4u) },
|
||||
{ u8(16u), u8(4u) },
|
||||
{ u8(16u), u8(4u) },
|
||||
{ u8(16u), u8(4u) },
|
||||
{ u8(16u), u8(4u) },
|
||||
{ u8(16u), u8(4u) },
|
||||
{ u8(16u), u8(4u) },
|
||||
{ u8(16u), u8(1u) },
|
||||
{ u8(16u), u8(1u) },
|
||||
{ u8(16u), u8(1u) },
|
||||
{ u8(12u), u8(1u) },
|
||||
{ u8(12u), u8(1u) },
|
||||
{ u8(12u), u8(1u) },
|
||||
{ u8(8u), u8(1u) },
|
||||
{ u8(8u), u8(1u) },
|
||||
{ u8(8u), u8(1u) },
|
||||
{ u8(8u), u8(1u) },
|
||||
{ u8(8u), u8(1u) },
|
||||
{ u8(8u), u8(1u) },
|
||||
{ u8(8u), u8(1u) },
|
||||
{ u8(8u), u8(1u) },
|
||||
{ u8(4u), u8(1u) },
|
||||
{ u8(4u), u8(1u) },
|
||||
{ u8(4u), u8(1u) },
|
||||
{ u8(4u), u8(1u) },
|
||||
{ u8(4u), u8(1u) },
|
||||
{ u8(4u), u8(1u) },
|
||||
{ u8(4u), u8(1u) },
|
||||
{ u8(4u), u8(1u) },
|
||||
{ u8(4u), u8(1u) },
|
||||
{ u8(4u), u8(1u) },
|
||||
{ u8(4u), u8(1u) },
|
||||
{ u8(4u), u8(1u) },
|
||||
{ u8(4u), u8(1u) },
|
||||
{ u8(4u), u8(1u) },
|
||||
{ u8(4u), u8(1u) },
|
||||
{ u8(4u), u8(1u) },
|
||||
{ u8(2u), u8(1u) },
|
||||
{ u8(2u), u8(1u) },
|
||||
{ u8(2u), u8(1u) },
|
||||
{ u8(2u), u8(1u) },
|
||||
{ u8(2u), u8(1u) },
|
||||
{ u8(2u), u8(1u) },
|
||||
{ u8(2u), u8(1u) },
|
||||
{ u8(2u), u8(1u) },
|
||||
{ u8(2u), u8(1u) },
|
||||
{ u8(1u), u8(1u) },
|
||||
{ u8(1u), u8(1u) },
|
||||
{ u8(1u), u8(1u) },
|
||||
{ u8(1u), u8(1u) },
|
||||
{ u8(1u), u8(1u) },
|
||||
{ u8(4u), u8(1u) },
|
||||
{ u8(4u), u8(1u) },
|
||||
{ u8(4u), u8(1u) },
|
||||
{ u8(2u), u8(1u) },
|
||||
};
|
||||
|
||||
// Map dxgi format to txtr asset format
|
||||
|
@ -11,7 +11,7 @@
|
||||
#define STBSP_NOMINAL_TEX_RES 4096
|
||||
|
||||
struct MaterialGlue_t;
|
||||
struct TextureAsset_t;
|
||||
struct TextureAsset_s;
|
||||
|
||||
struct StreamDBLump_s
|
||||
{
|
||||
|
@ -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.
|
||||
// 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)
|
||||
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.
|
||||
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?
|
||||
return;
|
||||
@ -143,7 +143,7 @@ void CreateTextureResource(TextureHeader_t* textureHeader, INT_PTR imageData)
|
||||
if (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 y = perPixel.y;
|
||||
|
Loading…
x
Reference in New Issue
Block a user