mirror of
https://github.com/thunderbrewhq/binana.git
synced 2025-12-12 17:52:29 +00:00
249 lines
5.1 KiB
C
249 lines
5.1 KiB
C
#ifndef GX_D3D9_H
|
|
#define GX_D3D9_H
|
|
|
|
#include "gx/device.h"
|
|
|
|
#include "external/d3d9/device.h"
|
|
|
|
#include "storm/array.h"
|
|
|
|
DECLARE_STRUCT(CGxDeviceD3d);
|
|
DECLARE_STRUCT(CGxDeviceD3d__GxVertexDecl);
|
|
|
|
DECLARE_ENUM(CGxDeviceD3d__EDeviceState);
|
|
|
|
enum CGxDeviceD3d__EDeviceState {
|
|
Ds_SrcBlend,
|
|
Ds_DstBlend,
|
|
Ds_TssMagFilter0,
|
|
Ds_TssMagFilter1,
|
|
Ds_TssMagFilter2,
|
|
Ds_TssMagFilter3,
|
|
Ds_TssMagFilter4,
|
|
Ds_TssMagFilter5,
|
|
Ds_TssMagFilter6,
|
|
Ds_TssMagFilter7,
|
|
Ds_TssMagFilter8,
|
|
Ds_TssMagFilter9,
|
|
Ds_TssMagFilter10,
|
|
Ds_TssMagFilter11,
|
|
Ds_TssMagFilter12,
|
|
Ds_TssMagFilter13,
|
|
Ds_TssMagFilter14,
|
|
Ds_TssMagFilter15,
|
|
Ds_TssMinFilter0,
|
|
Ds_TssMinFilter1,
|
|
Ds_TssMinFilter2,
|
|
Ds_TssMinFilter3,
|
|
Ds_TssMinFilter4,
|
|
Ds_TssMinFilter5,
|
|
Ds_TssMinFilter6,
|
|
Ds_TssMinFilter7,
|
|
Ds_TssMinFilter8,
|
|
Ds_TssMinFilter9,
|
|
Ds_TssMinFilter10,
|
|
Ds_TssMinFilter11,
|
|
Ds_TssMinFilter12,
|
|
Ds_TssMinFilter13,
|
|
Ds_TssMinFilter14,
|
|
Ds_TssMinFilter15,
|
|
Ds_TssMipFilter0,
|
|
Ds_TssMipFilter1,
|
|
Ds_TssMipFilter2,
|
|
Ds_TssMipFilter3,
|
|
Ds_TssMipFilter4,
|
|
Ds_TssMipFilter5,
|
|
Ds_TssMipFilter6,
|
|
Ds_TssMipFilter7,
|
|
Ds_TssMipFilter8,
|
|
Ds_TssMipFilter9,
|
|
Ds_TssMipFilter10,
|
|
Ds_TssMipFilter11,
|
|
Ds_TssMipFilter12,
|
|
Ds_TssMipFilter13,
|
|
Ds_TssMipFilter14,
|
|
Ds_TssMipFilter15,
|
|
Ds_TssWrapU0,
|
|
Ds_TssWrapU1,
|
|
Ds_TssWrapU2,
|
|
Ds_TssWrapU3,
|
|
Ds_TssWrapU4,
|
|
Ds_TssWrapU5,
|
|
Ds_TssWrapU6,
|
|
Ds_TssWrapU7,
|
|
Ds_TssWrapU8,
|
|
Ds_TssWrapU9,
|
|
Ds_TssWrapU10,
|
|
Ds_TssWrapU11,
|
|
Ds_TssWrapU12,
|
|
Ds_TssWrapU13,
|
|
Ds_TssWrapU14,
|
|
Ds_TssWrapU15,
|
|
Ds_TssWrapV0,
|
|
Ds_TssWrapV1,
|
|
Ds_TssWrapV2,
|
|
Ds_TssWrapV3,
|
|
Ds_TssWrapV4,
|
|
Ds_TssWrapV5,
|
|
Ds_TssWrapV6,
|
|
Ds_TssWrapV7,
|
|
Ds_TssWrapV8,
|
|
Ds_TssWrapV9,
|
|
Ds_TssWrapV10,
|
|
Ds_TssWrapV11,
|
|
Ds_TssWrapV12,
|
|
Ds_TssWrapV13,
|
|
Ds_TssWrapV14,
|
|
Ds_TssWrapV15,
|
|
Ds_TssTTF0,
|
|
Ds_TssTTF1,
|
|
Ds_TssTTF2,
|
|
Ds_TssTTF3,
|
|
Ds_TssTTF4,
|
|
Ds_TssTTF5,
|
|
Ds_TssTTF6,
|
|
Ds_TssTTF7,
|
|
Ds_TssMaxAnisotropy0,
|
|
Ds_TssMaxAnisotropy1,
|
|
Ds_TssMaxAnisotropy2,
|
|
Ds_TssMaxAnisotropy3,
|
|
Ds_TssMaxAnisotropy4,
|
|
Ds_TssMaxAnisotropy5,
|
|
Ds_TssMaxAnisotropy6,
|
|
Ds_TssMaxAnisotropy7,
|
|
Ds_TssMaxAnisotropy8,
|
|
Ds_TssMaxAnisotropy9,
|
|
Ds_TssMaxAnisotropy10,
|
|
Ds_TssMaxAnisotropy11,
|
|
Ds_TssMaxAnisotropy12,
|
|
Ds_TssMaxAnisotropy13,
|
|
Ds_TssMaxAnisotropy14,
|
|
Ds_TssMaxAnisotropy15,
|
|
Ds_TssTexCoordIndex0,
|
|
Ds_TssTexCoordIndex1,
|
|
Ds_TssTexCoordIndex2,
|
|
Ds_TssTexCoordIndex3,
|
|
Ds_TssTexCoordIndex4,
|
|
Ds_TssTexCoordIndex5,
|
|
Ds_TssTexCoordIndex6,
|
|
Ds_TssTexCoordIndex7,
|
|
Ds_TssColorOp0,
|
|
Ds_TssColorOp1,
|
|
Ds_TssColorOp2,
|
|
Ds_TssColorOp3,
|
|
Ds_TssColorOp4,
|
|
Ds_TssColorOp5,
|
|
Ds_TssColorOp6,
|
|
Ds_TssColorOp7,
|
|
Ds_TssAlphaOp0,
|
|
Ds_TssAlphaOp1,
|
|
Ds_TssAlphaOp2,
|
|
Ds_TssAlphaOp3,
|
|
Ds_TssAlphaOp4,
|
|
Ds_TssAlphaOp5,
|
|
Ds_TssAlphaOp6,
|
|
Ds_TssAlphaOp7,
|
|
Ds_TssColorArg10,
|
|
Ds_TssColorArg11,
|
|
Ds_TssColorArg12,
|
|
Ds_TssColorArg13,
|
|
Ds_TssColorArg14,
|
|
Ds_TssColorArg15,
|
|
Ds_TssColorArg16,
|
|
Ds_TssColorArg17,
|
|
Ds_TssColorArg20,
|
|
Ds_TssColorArg21,
|
|
Ds_TssColorArg22,
|
|
Ds_TssColorArg23,
|
|
Ds_TssColorArg24,
|
|
Ds_TssColorArg25,
|
|
Ds_TssColorArg26,
|
|
Ds_TssColorArg27,
|
|
Ds_TssAlphaArg10,
|
|
Ds_TssAlphaArg11,
|
|
Ds_TssAlphaArg12,
|
|
Ds_TssAlphaArg13,
|
|
Ds_TssAlphaArg14,
|
|
Ds_TssAlphaArg15,
|
|
Ds_TssAlphaArg16,
|
|
Ds_TssAlphaArg17,
|
|
Ds_TssAlphaArg20,
|
|
Ds_TssAlphaArg21,
|
|
Ds_TssAlphaArg22,
|
|
Ds_TssAlphaArg23,
|
|
Ds_TssAlphaArg24,
|
|
Ds_TssAlphaArg25,
|
|
Ds_TssAlphaArg26,
|
|
Ds_TssAlphaArg27,
|
|
Ds_AmbientMaterialSource,
|
|
Ds_DiffuseMaterialSource,
|
|
Ds_SpecularMaterialSource,
|
|
Ds_EmissiveMaterialSource,
|
|
Ds_Ambient,
|
|
Ds_AlphaBlendEnable,
|
|
Ds_AlphaTestEnable,
|
|
Ds_AlphaRef,
|
|
Ds_FogEnable,
|
|
Ds_ZWriteEnable,
|
|
Ds_ColorWriteEnable,
|
|
Ds_Lighting,
|
|
Ds_SpecularEnable,
|
|
Ds_CullMode,
|
|
Ds_ClipPlaneEnable,
|
|
Ds_ZFunc,
|
|
Ds_PointScaleA,
|
|
Ds_PointScaleB,
|
|
Ds_PointScaleC,
|
|
Ds_PointScaleEnable,
|
|
DeviceStates_Last
|
|
};
|
|
|
|
struct CGxDeviceD3d__GxVertexDecl {
|
|
uint32_t m_unk00;
|
|
};
|
|
STORM_TS_GROWABLE_ARRAY(CGxDeviceD3d__GxVertexDecl);
|
|
|
|
struct CGxDeviceD3d {
|
|
CGxDevice b_base;
|
|
void* m_hwnd;
|
|
uint16_t m_hwndClass;
|
|
uint16_t unk396E;
|
|
int32_t m_ownhwnd;
|
|
void* m_d3dLib;
|
|
IDirect3D9* m_d3d;
|
|
IDirect3DDevice9* m_d3dDevice;
|
|
D3DCAPS9 m_d3dCaps;
|
|
int32_t m_d3dIsHwDevice;
|
|
int32_t m_d3dNVAPI;
|
|
uint32_t m_d3dStereoEnabled; // UC
|
|
uint32_t unk3ABC;
|
|
uint32_t m_d3dStereoHandle; // UC
|
|
float m_d3dStereoConvergence; // UC
|
|
float m_d3dStereoSeparation; // UC
|
|
int32_t unk3ACC;
|
|
TSGrowableArray_CGxDeviceD3d__GxVertexDecl m_vertexDecl;
|
|
IDirect3DVertexDeclaration9* m_d3dVertexDecl[14];
|
|
D3DDISPLAYMODE m_desktopDisplayMode;
|
|
int32_t m_inScene;
|
|
uint32_t unk3B2C;
|
|
D3DFORMAT m_devDepthFormat;
|
|
D3DFORMAT m_devAdapterFormat;
|
|
uint32_t unk3B38;
|
|
IDirect3DSurface9* m_defColorSurface;
|
|
IDirect3DSurface9* m_defDepthSurface;
|
|
uint32_t unk3B44;
|
|
uint32_t unk3B48;
|
|
int32_t m_hwCursorNeedsUpdate;
|
|
IDirect3DTexture9* m_hwCursorTexture;
|
|
IDirect3DSurface9* m_hwCursorBitmap;
|
|
uint32_t unk3B58;
|
|
IDirect3DVertexDeclaration9* m_d3dCurrentVertexDecl;
|
|
IDirect3DIndexBuffer9* m_d3dCurrentIndexBuf;
|
|
IDirect3DVertexBuffer9* m_d3dVertexStreamBuf[8];
|
|
uint32_t m_d3dVertexStreamOfs[8];
|
|
uint32_t m_d3dVertexStreamStride[8];
|
|
uint32_t m_deviceStates[182];
|
|
bool m_texEnabled[8];
|
|
};
|
|
|
|
#endif
|