chore(profile): a lot of work having to do with graphics

This commit is contained in:
phaneron 2025-06-04 17:42:08 -04:00
parent ebf88595d9
commit 2363e04c76
153 changed files with 2402 additions and 566 deletions

View file

@ -234,11 +234,11 @@ struct CGxDeviceD3d {
D3DFORMAT m_devAdapterFormat;
// used by CGxDeviceD3d::DeviceSetRenderTarget
// IDirect3DSurface9* surface3B38;
LPDIRECT3DSURFACE9 m_defDepthStencilSurface;
LPDIRECT3DSURFACE9 m_defDepthStencilSurface; // OG name in 6.0.2?
LPDIRECT3DSURFACE9 m_defColorSurface;
LPDIRECT3DSURFACE9 m_defDepthSurface;
// used in DeviceReadPixels
LPDIRECT3DSURFACE9 surface3B44; // m_backBufferSurface?
LPDIRECT3DSURFACE9 surface3B44; // m_defBBSurface? also potential OG name in 6.0.2: !m_defBBView
LPDIRECT3DQUERY9 m_eventQuery; // UC m_queryEvent? m_eventQuery?
int32_t m_hwCursorDirty;
LPDIRECT3DTEXTURE9 m_hwCursorTexture;

View file

@ -213,7 +213,7 @@ struct CGxDevice__v_table {
void* v_fn_57_TexCreate;
// void TexDestroy(CGxTex* texId);
void* v_fn_58_TexDestroy;
// int32_t TexCopy(CGxTex* sourceTex, CGxTex* destTex, const C2iVector& pos, const C2iVector& size, uint32_t level, uint32_t plane);
// int32_t TexCopy(CGxTex* destTex, CGxTex* sourceTex, const C2iVector& pos, const C2iVector& size, uint32_t level, uint32_t plane);
void* v_fn_59_TexCopy;
// bool TexStretch(CGxTex* sourceTex, CGxTex* destTex, const CiRect* destRect, const CiRect* sourceRect, uint32_t level, uint32_t plane);
void* v_fn_60_TexStretch;
@ -308,7 +308,7 @@ struct CGxDevice {
int32_t intF5C;
int32_t m_windowVisible;
// set to 1 by ICursorClip
int32_t intF64;
int32_t m_windowFocus;
// Incremented by CGxDevice::ScenePresent
int32_t m_frameCount; // m_perfCounter?
// seems to have the same place as CGxDeviceD3d::m_d3dNeedsReset (Alpha)
@ -357,13 +357,12 @@ struct CGxDevice {
uint32_t m_primVertexSize;
CGxBuf* m_primIndexBuf;
int32_t m_primIndexDirty;
// EmergencyMem unk28C4[GxPoolTargets_Last];
// EmergencyMem m_emergencyMem[GxPoolTargets_Last];
EmergencyMem m_emergencyMem[2]; // 0x28C4
TSFixedArray_CGxAppRenderState m_appRenderStates;
TSFixedArray_CGxStateBom m_hwRenderStates;
// Accessed by ITexForceRecreation
// uint32_t unk2904[3]; // 0x2904 (size 0xC) // possibly: m_textures? TSList<CGxTex> ?
TSExplicitList_CGxTex m_textures;
TSExplicitList_CGxTex m_textures; // 0x2904 (size 0xC)
CGxDevice__TextureTarget m_textureTarget[2];
TSExplicitList_CGxQuery m_queryList; // 0x2928
int32_t m_scrShotClick; // 0x2934

View file

@ -32,8 +32,8 @@ struct CGxFormat {
C2iVector size;
// set by CVGxTripleBufferCallback
uint32_t backBufferCount; // buffering? buffer? framebufferCount?
uint32_t sampleCount;
float sampleQuality; // UC, write at 00769693
uint32_t multisampleCount;
float multisampleQuality; // UC, write at 00769693
CGxFormat__Format colorFormat;
uint32_t refreshRate;
uint32_t vsync;

View file

@ -12,6 +12,7 @@ STORM_TS_GROWABLE_ARRAY(HTEXTURE);
typedef struct CGxTexFlags CGxTexFlags;
typedef struct CGxTex CGxTex;
// !gxTex->m_flags.m_multiSampled
struct CGxTexFlags {
// unsigned __int32 m_filter : 3;
// unsigned __int32 m_wrapU : 1;
@ -20,6 +21,8 @@ struct CGxTexFlags {
// unsigned __int32 m_generateMipMaps : 1;
// unsigned __int32 m_renderTarget : 1;
// unsigned __int32 m_maxAnisotropy : 5;
uint32_t f_flags;
};

View file

@ -24,6 +24,7 @@ DECLARE_ENUM(EGxQueryType);
DECLARE_ENUM(EGxTexCommand);
DECLARE_ENUM(EGxTexFilter);
DECLARE_ENUM(EGxTexFormat);
DECLARE_ENUM(EGxTexGen);
DECLARE_ENUM(EGxTexTarget);
DECLARE_ENUM(EGxTexWrapMode);
DECLARE_ENUM(EGxXform);
@ -221,7 +222,7 @@ enum EGxRenderState {
GxRs_PointScaleMin = 81,
GxRs_PointScaleMax = 82,
GxRs_PointSprite = 83,
GxRs_LineWidth = 84, // LineWidth?
Unk84 = 84, // LineWidth? BlendFactor?
GxRs_ColorMaterial = 85,
GxRenderStates_Last = 86
};
@ -273,7 +274,7 @@ enum EGxTexCommand {
GxTex_Lock = 0,
GxTex_Latch = 1,
GxTex_Unlock = 2,
GxTex_3 = 3,
GxTex_3 = 3, //
GxTexCommands_Last = 4
};
@ -304,6 +305,17 @@ enum EGxTexFormat {
GxTexFormats_Last = 0xD,
};
enum EGxTexGen {
GxTexGen_Disable = 0x0,
GxTexGen_Object = 0x1,
GxTexGen_World = 0x2,
GxTexGen_View = 0x3,
GxTexGen_ViewReflection = 0x4,
GxTexGen_ViewNormal = 0x5,
GxTexGen_SphereMap = 0x6,
GxTexGens_Last = 0x7,
};
enum EGxTexTarget {
GxTex_2d = 0x0,
GxTex_CubeMap = 0x1,