mirror of
https://github.com/thunderbrewhq/binana.git
synced 2025-12-12 09:52:28 +00:00
81 lines
2.3 KiB
C
81 lines
2.3 KiB
C
#ifndef GX_CAPS_H
|
|
#define GX_CAPS_H
|
|
|
|
#include "system/types.h"
|
|
|
|
#include "gx/types.h"
|
|
|
|
typedef struct CGxCaps CGxCaps;
|
|
|
|
struct CGxCaps {
|
|
int32_t m_numTmus;
|
|
int32_t m_pixelCenterOnEdge;
|
|
int32_t m_texelCenterOnEdge;
|
|
int32_t m_numStreams;
|
|
// Always set to 1 in CGxDeviceOpenGl
|
|
// Set to 1 if D3d9 Caps2 & 0x1
|
|
// this could be an undocumented flag
|
|
// CGxDeviceD3d::Draw skips a calculation if 1
|
|
// could also be a bug: maybe they meant to check
|
|
// D3DDEVCAPS2_STREAMOFFSET in DevCaps2
|
|
// but mistakenly checked Caps2
|
|
// in which case this could be called m_streamOffset
|
|
int32_t int10;
|
|
EGxColorFormat m_colorFormat;
|
|
// set to zero in CGxDeviceOpenGl::CGxDeviceOpenGl
|
|
uint32_t unk18;
|
|
uint32_t m_maxIndex;
|
|
int32_t m_generateMipMaps;
|
|
// int32_t m_texFmt[GxTexFormats_Last];
|
|
int32_t m_texFmt[13];
|
|
// int32_t m_texTarget[GxTexTargets_Last];
|
|
int32_t m_texTarget[4];
|
|
uint32_t m_texNonPow2;
|
|
// uint32_t m_texMaxSize[GxTexTargets_Last];
|
|
uint32_t m_texMaxSize[4];
|
|
int32_t m_rttFormat[13];
|
|
uint32_t unkB0;
|
|
// int32_t m_shaderTargets[GxShTargets_Last];
|
|
int32_t m_shaderTargets[6];
|
|
// Evidence for this: go to 0x00684CD8
|
|
uint32_t m_shaderConstants[6];
|
|
int32_t m_texFilterTrilinear;
|
|
int32_t m_texFilterAnisotropic;
|
|
uint32_t m_maxTexAnisotropy;
|
|
int32_t m_depthBias;
|
|
int32_t m_colorWrite;
|
|
int32_t m_maxClipPlanes;
|
|
// CGxDeviceD3d::ISetCaps
|
|
int32_t m_hwCursor;
|
|
int32_t m_occlusionQuery;
|
|
// GxOverride_Unk8
|
|
int32_t m_pointParameters;
|
|
float m_pointScaleMax;
|
|
int32_t m_pointSprite;
|
|
uint32_t m_blendFactor;
|
|
// in CGxDeviceOpenGl:
|
|
// members are initialized to zero
|
|
// in CGxDeviceD3d:
|
|
// members are initialized to zero
|
|
uint32_t unk114[5];
|
|
// Used by RTAlphaSupported
|
|
int32_t m_oglRtAlpha;
|
|
int32_t m_stereoAvailable;
|
|
// in CGxDeviceOpenGl:
|
|
// always true
|
|
// in CGxDeviceD3d:
|
|
// always true
|
|
int32_t int130;
|
|
// in CGxDeviceOpenGl:
|
|
// always true
|
|
// in CGxDeviceD3d:
|
|
// true if this->b_base.m_caps.m_shaderTargets[4 (GxSh_Pixel)] != 4 (GxShPS_ps_3_0);
|
|
int32_t int134;
|
|
// in CGxDeviceOpenGl:
|
|
// true if this->b_base.m_caps.m_shaderTargets[4 (GxSh_Pixel)] != 12 (GxShPS_arbfp1);
|
|
// in CGxDeviceD3d:
|
|
// true if this->b_base.m_caps.m_shaderTargets[4 (GxSh_Pixel)] != 4 (GxShPS_ps_3_0);
|
|
int32_t int138;
|
|
};
|
|
|
|
#endif
|