mirror of
https://github.com/thunderbrewhq/binana.git
synced 2026-05-03 05:03:50 +00:00
fix(profile): overhaul 3.3.5a-windows-386 to work with SuperImportSymbolsScript.py
This commit is contained in:
parent
bdb3389efb
commit
2d003672ec
39 changed files with 1476 additions and 1232 deletions
|
|
@ -7,31 +7,32 @@ DECLARE_ENUM(BlitFormat);
|
|||
#include "tempest/vector.h"
|
||||
|
||||
enum BlitAlpha {
|
||||
BlitAlpha_0 = 0,
|
||||
BlitAlpha_1 = 1,
|
||||
BlitAlpha_8 = 2,
|
||||
BlitAlpha_Filler = 3,
|
||||
BlitAlphas_Last = 4
|
||||
BlitAlpha_0 = 0,
|
||||
BlitAlpha_1 = 1,
|
||||
BlitAlpha_8 = 2,
|
||||
BlitAlpha_Filler = 3,
|
||||
BlitAlphas_Last = 4
|
||||
};
|
||||
|
||||
enum BlitFormat {
|
||||
BlitFormat_Unknown = 0,
|
||||
BlitFormat_Abgr8888 = 1,
|
||||
BlitFormat_Argb8888 = 2,
|
||||
BlitFormat_Argb4444 = 3,
|
||||
BlitFormat_Argb1555 = 4,
|
||||
BlitFormat_Rgb565 = 5,
|
||||
BlitFormat_Dxt1 = 6,
|
||||
BlitFormat_Dxt3 = 7,
|
||||
BlitFormat_Dxt5 = 8,
|
||||
BlitFormat_Uv88 = 9,
|
||||
BlitFormat_Gr1616F = 10,
|
||||
BlitFormat_R32F = 11,
|
||||
BlitFormat_D24X8 = 12,
|
||||
BlitFormats_Last = 13
|
||||
BlitFormat_Unknown = 0,
|
||||
BlitFormat_Abgr8888 = 1,
|
||||
BlitFormat_Argb8888 = 2,
|
||||
BlitFormat_Argb4444 = 3,
|
||||
BlitFormat_Argb1555 = 4,
|
||||
BlitFormat_Rgb565 = 5,
|
||||
BlitFormat_Dxt1 = 6,
|
||||
BlitFormat_Dxt3 = 7,
|
||||
BlitFormat_Dxt5 = 8,
|
||||
BlitFormat_Uv88 = 9,
|
||||
BlitFormat_Gr1616F = 10,
|
||||
BlitFormat_R32F = 11,
|
||||
BlitFormat_D24X8 = 12,
|
||||
BlitFormats_Last = 13
|
||||
};
|
||||
|
||||
// typedef void (*BLIT_FUNCTION)(const C2iVector&, const void*, uint32_t, void*, uint32_t);
|
||||
typedef void (*BLIT_FUNCTION)(C2iVector*, void*, uint32_t, void*, uint32_t);
|
||||
typedef void (*BLIT_FUNCTION_interface)(C2iVector*, void*, uint32_t, void*, uint32_t);
|
||||
typedef BLIT_FUNCTION_interface BLIT_FUNCTION;
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -4,29 +4,29 @@
|
|||
#include "system/types.h"
|
||||
|
||||
#include "storm/array.h"
|
||||
#include "storm/array/uint16_t.h"
|
||||
#include "storm/array/uint32_t.h"
|
||||
#include "storm/array/c2vector.h"
|
||||
#include "storm/array/c3vector.h"
|
||||
#include "storm/array/cimvector.h"
|
||||
#include "storm/array/uint16_t.h"
|
||||
#include "storm/array/uint32_t.h"
|
||||
|
||||
#include "tempest/box.h"
|
||||
#include "tempest/matrix.h"
|
||||
#include "tempest/rect.h"
|
||||
#include "tempest/plane.h"
|
||||
#include "tempest/rect.h"
|
||||
#include "tempest/vector.h"
|
||||
|
||||
#include "gx/types.h"
|
||||
#include "gx/caps.h"
|
||||
#include "gx/format.h"
|
||||
#include "gx/apilight.h"
|
||||
#include "gx/state_bom.h"
|
||||
#include "gx/shader.h"
|
||||
#include "gx/matrix_stack.h"
|
||||
#include "gx/buffer.h"
|
||||
#include "gx/texture.h"
|
||||
#include "gx/query.h"
|
||||
#include "gx/caps.h"
|
||||
#include "gx/emergencymem.h"
|
||||
#include "gx/format.h"
|
||||
#include "gx/matrix_stack.h"
|
||||
#include "gx/query.h"
|
||||
#include "gx/shader.h"
|
||||
#include "gx/state_bom.h"
|
||||
#include "gx/texture.h"
|
||||
#include "gx/types.h"
|
||||
|
||||
DECLARE_STRUCT(CGxAppRenderState);
|
||||
DECLARE_STRUCT(CGxPushedRenderState);
|
||||
|
|
@ -36,347 +36,363 @@ DECLARE_STRUCT(CGxDevice__TextureTarget);
|
|||
DECLARE_STRUCT(CGxDevice__v_table);
|
||||
DECLARE_STRUCT(CGxDevice__GxLight);
|
||||
|
||||
typedef void (*DEVICERESTOREDCALLBACK)();
|
||||
typedef int32_t (
|
||||
*GxWindowProc_interface)(void* window, uint32_t message, uintptr_t wparam, intptr_t lparam);
|
||||
typedef GxWindowProc_interface GxWindowProc;
|
||||
|
||||
typedef void (*DEVICERESTOREDCALLBACK_interface)();
|
||||
typedef DEVICERESTOREDCALLBACK_interface DEVICERESTOREDCALLBACK;
|
||||
STORM_TS_GROWABLE_ARRAY(DEVICERESTOREDCALLBACK);
|
||||
|
||||
typedef void (*TEXTURERECREATIONCALLBACK)();
|
||||
typedef void (*TEXTURERECREATIONCALLBACK_interface)();
|
||||
typedef TEXTURERECREATIONCALLBACK_interface TEXTURERECREATIONCALLBACK;
|
||||
STORM_TS_GROWABLE_ARRAY(TEXTURERECREATIONCALLBACK);
|
||||
|
||||
typedef void (*STEREOCHANGEDCALLBACK)();
|
||||
typedef void (*STEREOCHANGEDCALLBACK_interface)();
|
||||
typedef STEREOCHANGEDCALLBACK_interface STEREOCHANGEDCALLBACK;
|
||||
STORM_TS_GROWABLE_ARRAY(STEREOCHANGEDCALLBACK);
|
||||
|
||||
struct CGxAppRenderState {
|
||||
CGxStateBom m_value;
|
||||
uint32_t m_stackDepth;
|
||||
int32_t m_dirty;
|
||||
CGxStateBom m_value;
|
||||
uint32_t m_stackDepth;
|
||||
int32_t m_dirty;
|
||||
};
|
||||
STORM_TS_FIXED_ARRAY(CGxAppRenderState);
|
||||
|
||||
struct CGxPushedRenderState {
|
||||
EGxRenderState m_which;
|
||||
CGxStateBom m_value;
|
||||
uint32_t m_stackDepth;
|
||||
EGxRenderState m_which;
|
||||
CGxStateBom m_value;
|
||||
uint32_t m_stackDepth;
|
||||
};
|
||||
STORM_TS_GROWABLE_ARRAY(CGxPushedRenderState);
|
||||
|
||||
struct ShaderConstants {
|
||||
C4Vector constants[256];
|
||||
uint32_t unk1;
|
||||
uint32_t unk2;
|
||||
C4Vector constants[256];
|
||||
uint32_t unk1;
|
||||
uint32_t unk2;
|
||||
};
|
||||
|
||||
struct CGxDevice__TextureTarget {
|
||||
CGxTex* m_texture;
|
||||
uint32_t m_plane;
|
||||
void* m_apiSpecific;
|
||||
CGxTex* m_texture;
|
||||
uint32_t m_plane;
|
||||
void* m_apiSpecific;
|
||||
};
|
||||
|
||||
// 84 functions
|
||||
struct CGxDevice__v_table {
|
||||
// void ITexMarkAsUpdated(CGxTex* texId);
|
||||
void* v_fn_0_ITexMarkAsUpdated;
|
||||
// void IRsSendToHw(EGxRenderState rs);
|
||||
// no base implementation
|
||||
void* v_fn_1_IRsSendToHw;
|
||||
// void ICursorCreate(const CGxFormat& format);
|
||||
void* v_fn_2_ICursorCreate;
|
||||
// void ICursorDestroy();
|
||||
void* v_fn_3_ICursorDestroy;
|
||||
// void ICursorDraw();
|
||||
void* v_fn_4_ICursorDraw;
|
||||
// This gets called when window is resized. It runs a list of callbacks in an array.
|
||||
// two functions that are in this array (ONLY once in-game, not in login screen):
|
||||
// * 007E7FE0
|
||||
// * 00512920
|
||||
// void NotifyOnDeviceRestored();
|
||||
void* v_fn_5_NotifyOnDeviceRestored;
|
||||
// void NotifyOnTextureRecreation();
|
||||
void* v_fn_6_NotifyOnTextureRecreation;
|
||||
// void NotifyOnStereoChanged();
|
||||
void* v_fn_7_NotifyOnStereoChanged;
|
||||
// void `scalar deleting destructor'(uint32_t __flags)
|
||||
void* v_fn_8_scalar_deleting_destructor;
|
||||
// int32_t DeviceCreate(uintptr_t hwnd, const CGxFormat& format);
|
||||
void* v_fn_9_DeviceCreate;
|
||||
// int32_t DeviceCreate(long (*windowProc)(void*, uint32_t, uint32_t, int32_t), CGxFormat const& format);
|
||||
void* v_fn_10_DeviceCreate;
|
||||
// void DeviceDestroy();
|
||||
void* v_fn_11_DeviceDestroy;
|
||||
// void DeviceEvictResources();
|
||||
void* v_fn_12_DeviceEvictResources;
|
||||
// int32_t DeviceSetFormat(const CGxFormat& format);
|
||||
void* v_fn_13_DeviceSetFormat;
|
||||
// void DeviceSetBaseMipLevel(uint32_t mipLevel);
|
||||
void* v_fn_14_DeviceSetBaseMipLevel;
|
||||
// void DeviceSetGamma(const CGxGammaRamp& ramp);
|
||||
void* v_fn_15_DeviceSetGamma;
|
||||
// void DeviceSetGamma(float gamma);
|
||||
void* v_fn_16_DeviceSetGamma;
|
||||
// no base implementation
|
||||
// void* DeviceWindow();
|
||||
void* v_fn_17_DeviceWindow;
|
||||
// void DeviceTakeScreenShot();
|
||||
void* v_fn_18_DeviceTakeScreenShot;
|
||||
// void DeviceReadScreenShot(uint32_t& w, uint32_t& h, const CImVector*& pixels) */
|
||||
void* v_fn_19_DeviceReadScreenShot;
|
||||
// void DeviceReadPixels(CiRect& rect, TSGrowableArray<CImVector>& pixels);
|
||||
void* v_fn_20_DeviceReadPixels;
|
||||
// void DeviceReadDepths(CiRect& rect, TSGrowableArray<float>& depths);
|
||||
void* v_fn_21_DeviceReadDepths;
|
||||
// void DeviceWM(EGxWM wm, int32_t param1, int32_t param2);
|
||||
void* v_fn_22_DeviceWM;
|
||||
// void DeviceSetRenderTarget(EGxBuffer buffer, CGxTex* texture, uint32_t plane);
|
||||
void* v_fn_23_DeviceSetRenderTarget;
|
||||
// void v_fn_24(); DeviceReleaseDepthBuffer?
|
||||
// d3d:
|
||||
// this->m_d3dDevice->GetDepthStencilSurface(&PTR_00C6033C);
|
||||
// PTR_00C6033C->Release();
|
||||
void* v_fn_24;
|
||||
// void v_fn_25(); DeviceResetDepthBuffer?
|
||||
// d3d:
|
||||
// this->m_d3dDevice->SetDepthStencilSurface(PTR_00C6033C);
|
||||
void* v_fn_25;
|
||||
// void v_fn_26(CGxTex* texId); DeviceResolveDepthBuffer(CGxTex*) seems to be the most logical candidate for this
|
||||
// d3d:
|
||||
// if (this->m_context) {
|
||||
// if (texId &&
|
||||
// (texId->m_needsCreation ||
|
||||
// (texId->m_apiSpecificData == nullptr &&
|
||||
// texId->m_apiSpecificData2 == nullptr)) {
|
||||
// this->ITexCreate(texId);
|
||||
// }
|
||||
// this->m_d3dDevice->SetDepthStencilSurface(texId->m_apiSpecificData);
|
||||
// }
|
||||
// void DeviceResolveDepthBuffer(CGxTex* texId);
|
||||
void* v_fn_26_DeviceResolveDepthBuffer;
|
||||
// void DeviceCopyTex(CGxTex* sourceTex, uint32_t sourcePlane, CGxTex* destTex, uint32_t destPlane);
|
||||
void* v_fn_27_DeviceCopyTex;
|
||||
// void DeviceOverride(EGxOverride override, uint32_t value);
|
||||
void* v_fn_28_DeviceOverride;
|
||||
// void AddDeviceRestoredCallback(DEVICERESTOREDCALLBACK callback);
|
||||
void* v_fn_29_AddDeviceRestoredCallback;
|
||||
// int32_t RemoveDeviceRestoredCallback(DEVICERESTOREDCALLBACK callback);
|
||||
void* v_fn_30_RemoveDeviceRestoredCallback;
|
||||
// void AddTextureRecreationCallback(TEXTURERECREATIONCALLBACK callback);
|
||||
void* v_fn_31_AddTextureRecreationCallback;
|
||||
// int32_t RemoveTextureRecreationCallback(TEXTURERECREATIONCALLBACK callback);
|
||||
void* v_fn_32_RemoveTextureRecreationCallback;
|
||||
// void AddStereoChangedCallback(STEREOCHANGEDCALLBACK callback);
|
||||
void* v_fn_33_AddStereoChangedCallback;
|
||||
// int32_t RemoveStereoChangeCallback(STEREOCHANGEDCALLBACK callback);
|
||||
void* v_fn_34_RemoveStereoChangedCallback;
|
||||
// void CapsWindowSize(CRect& dst);
|
||||
void* v_fn_35_CapsWindowSize;
|
||||
// void CapsWindowSizeInScreenCoords(CRect& dst);
|
||||
void* v_fn_36_CapsWindowSizeInScreenCoords;
|
||||
// void LogCrashInfo(char* buffer, uint32_t buffersize);
|
||||
void* v_fn_37_LogCrashInfo;
|
||||
// void ScenePresent();
|
||||
void* v_fn_38_ScenePresent;
|
||||
// void SceneClear(uint32_t mask, CImVector color);
|
||||
void* v_fn_39_SceneClear;
|
||||
// void XformSetProjection(const C44Matrix& matrix);
|
||||
void* v_fn_40_XformSetProjection;
|
||||
// void XformSetView(const C44Matrix& matrix);
|
||||
void* v_fn_41_XformSetView;
|
||||
// void Draw(CGxBatch* batch, int32_t indexed);
|
||||
void* v_fn_42_Draw;
|
||||
// void PrimBegin(EGxPrim primType);
|
||||
void* v_fn_43_PrimBegin;
|
||||
// void PrimDrawElements();
|
||||
void* v_fn_44_PrimDrawElements;
|
||||
// void PrimVertex(const C3Vector& v);
|
||||
void* v_fn_45_PrimVertex;
|
||||
// void PrimTexCoord(uint32_t tmu, const C2Vector& t);
|
||||
void* v_fn_46_PrimTexCoord;
|
||||
// void PrimNormal(const C3Vector& n);
|
||||
void* v_fn_47_PrimNormal;
|
||||
// void PrimColor(const CImVector& c);
|
||||
void* v_fn_48_PrimColor;
|
||||
// void PrimPointSize(float s);
|
||||
void* v_fn_49_PrimPointSize;
|
||||
// void PrimeLineWidth(float w);
|
||||
void* v_fn_50_PrimLineWidth;
|
||||
// void MasterEnableSet(EGxMasterEnables state, int32_t enable);
|
||||
void* v_fn_51_MasterEnableSet;
|
||||
// void PoolSizeSet(CGxPool* pool, uint32_t size);
|
||||
void* v_fn_52_PoolSizeSet;
|
||||
// void PoolDestroy(CGxPool* pool);
|
||||
void* v_fn_53_PoolDestroy;
|
||||
// char* BufLock(CGxBuf* buf);
|
||||
void* v_fn_54_BufLock;
|
||||
// int32_t BufUnlock(CGxBuf* buf, uint32_t size);
|
||||
void* v_fn_55_BufUnlock;
|
||||
// void BufData(CGxBuf* buf, const void* data, uint32_t size, uint32_t offset);
|
||||
void* v_fn_56_BufData;
|
||||
// int32_t TexCreate(EGxTexTarget target, uint32_t width, uint32_t height, uint32_t depth, EGxTexFormat format, EGxTexFormat dataFormat, CGxTexFlags flags, void* userArg, void (*userFunc)(EGxTexCommand, uint32_t, uint32_t, uint32_t, uint32_t, void*, uint32_t&, void const*&), const char* name, CGxTex*& texId);
|
||||
void* v_fn_57_TexCreate;
|
||||
// void TexDestroy(CGxTex* texId);
|
||||
void* v_fn_58_TexDestroy;
|
||||
// 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;
|
||||
// void TexSetCacheSize(int32_t cacheSize);
|
||||
void* v_fn_61_TexSetCacheSize;
|
||||
// void QueryCreate(CGxQuery*& query, EGxQueryType type);
|
||||
void* v_fn_62_QueryCreate;
|
||||
// void QueryDestroy(CGxQuery*& query);
|
||||
void* v_fn_63_QueryDestroy;
|
||||
// bool QueryBegin(CGxQuery* query);
|
||||
void* v_fn_64_QueryBegin;
|
||||
// bool QueryEnd(CGxQuery* query);
|
||||
void* v_fn_65_QueryEnd;
|
||||
// bool QueryGetParam(CGxQuery* query, EGxQueryParam param, uint32_t* data);
|
||||
void* v_fn_66_QueryGetParam;
|
||||
// bool QueryGetData(CGxQuery* query, uint32_t* data);
|
||||
void* v_fn_67_QueryGetData;
|
||||
// void ShaderCreate(CGxShader* shaders[], EGxShTarget target, const char* a3, const char* a4, int32_t permutations);
|
||||
void* v_fn_68_ShaderCreate;
|
||||
// void ShaderDestroy(CGxShader*& shader);
|
||||
void* v_fn_69_ShaderDestroy;
|
||||
// void ShaderConstantsSet(EGxShTarget target, uint32_t index, const float* constraints, uint32_t count);
|
||||
void* v_fn_70_ShaderConstantsSet;
|
||||
// void IShaderReload(CGxShader* shader, const char* a2, const char* a3);
|
||||
void* v_fn_71_IShaderReload;
|
||||
// void IShaderCreate(CGxShader* shader);
|
||||
void* v_fn_72_IShaderCreate;
|
||||
// void CursorSetVisible(int32_t visible);
|
||||
void* v_fn_73_CursorSetVisible;
|
||||
// uint32_t* CursorLock();
|
||||
void* v_fn_74_CursorLock;
|
||||
// void CursorUnlock(uint32_t x, uint32_t y);
|
||||
void* v_fn_75_CursorUnlock;
|
||||
// void StereoSetConvergence(float c);
|
||||
void* v_fn_76_StereoSetConvergence;
|
||||
// float StereoGetConvergence();
|
||||
void* v_fn_77_StereoGetConvergence;
|
||||
// void StereoSetSeparation(float s);
|
||||
void* v_fn_78_StereoSetSeparation;
|
||||
// double StereoGetSeparation();
|
||||
void* v_fn_79_StereoGetSeparation;
|
||||
// bool StereoEnabled();
|
||||
void* v_fn_80_StereoEnabled;
|
||||
// void DebugGroupBegin(const char* a1, char* a2);
|
||||
void* v_fn_81_DebugGroupBegin;
|
||||
// void DebugGroupEnd();
|
||||
void* v_fn_82_DebugGroupEnd;
|
||||
// void DebugEvent(const char* a1, char* a2);
|
||||
void* v_fn_83_DebugEvent;
|
||||
// void ITexMarkAsUpdated(CGxTex* texId);
|
||||
void* v_fn_0_ITexMarkAsUpdated;
|
||||
// void IRsSendToHw(EGxRenderState rs);
|
||||
// no base implementation
|
||||
void* v_fn_1_IRsSendToHw;
|
||||
// void ICursorCreate(const CGxFormat& format);
|
||||
void* v_fn_2_ICursorCreate;
|
||||
// void ICursorDestroy();
|
||||
void* v_fn_3_ICursorDestroy;
|
||||
// void ICursorDraw();
|
||||
void* v_fn_4_ICursorDraw;
|
||||
// This gets called when window is resized. It runs a list of callbacks in an array.
|
||||
// two functions that are in this array (ONLY once in-game, not in login screen):
|
||||
// * 007E7FE0
|
||||
// * 00512920
|
||||
// void NotifyOnDeviceRestored();
|
||||
void* v_fn_5_NotifyOnDeviceRestored;
|
||||
// void NotifyOnTextureRecreation();
|
||||
void* v_fn_6_NotifyOnTextureRecreation;
|
||||
// void NotifyOnStereoChanged();
|
||||
void* v_fn_7_NotifyOnStereoChanged;
|
||||
// void `scalar deleting destructor'(uint32_t __flags)
|
||||
void* v_fn_8_scalar_deleting_destructor;
|
||||
// int32_t DeviceCreate(uintptr_t hwnd, const CGxFormat& format);
|
||||
void* v_fn_9_DeviceCreate;
|
||||
// int32_t DeviceCreate(long (*windowProc)(void*, uint32_t, uint32_t, int32_t), CGxFormat const&
|
||||
// format);
|
||||
void* v_fn_10_DeviceCreate;
|
||||
// void DeviceDestroy();
|
||||
void* v_fn_11_DeviceDestroy;
|
||||
// void DeviceEvictResources();
|
||||
void* v_fn_12_DeviceEvictResources;
|
||||
// int32_t DeviceSetFormat(const CGxFormat& format);
|
||||
void* v_fn_13_DeviceSetFormat;
|
||||
// void DeviceSetBaseMipLevel(uint32_t mipLevel);
|
||||
void* v_fn_14_DeviceSetBaseMipLevel;
|
||||
// void DeviceSetGamma(const CGxGammaRamp& ramp);
|
||||
void* v_fn_15_DeviceSetGamma;
|
||||
// void DeviceSetGamma(float gamma);
|
||||
void* v_fn_16_DeviceSetGamma;
|
||||
// no base implementation
|
||||
// void* DeviceWindow();
|
||||
void* v_fn_17_DeviceWindow;
|
||||
// void DeviceTakeScreenShot();
|
||||
void* v_fn_18_DeviceTakeScreenShot;
|
||||
// void DeviceReadScreenShot(uint32_t& w, uint32_t& h, const CImVector*& pixels) */
|
||||
void* v_fn_19_DeviceReadScreenShot;
|
||||
// void DeviceReadPixels(CiRect& rect, TSGrowableArray<CImVector>& pixels);
|
||||
void* v_fn_20_DeviceReadPixels;
|
||||
// void DeviceReadDepths(CiRect& rect, TSGrowableArray<float>& depths);
|
||||
void* v_fn_21_DeviceReadDepths;
|
||||
// void DeviceWM(EGxWM wm, int32_t param1, int32_t param2);
|
||||
void* v_fn_22_DeviceWM;
|
||||
// void DeviceSetRenderTarget(EGxBuffer buffer, CGxTex* texture, uint32_t plane);
|
||||
void* v_fn_23_DeviceSetRenderTarget;
|
||||
// void v_fn_24(); DeviceReleaseDepthBuffer?
|
||||
// d3d:
|
||||
// this->m_d3dDevice->GetDepthStencilSurface(&PTR_00C6033C);
|
||||
// PTR_00C6033C->Release();
|
||||
void* v_fn_24;
|
||||
// void v_fn_25(); DeviceResetDepthBuffer?
|
||||
// d3d:
|
||||
// this->m_d3dDevice->SetDepthStencilSurface(PTR_00C6033C);
|
||||
void* v_fn_25;
|
||||
// void v_fn_26(CGxTex* texId); DeviceResolveDepthBuffer(CGxTex*) seems to be the most logical
|
||||
// candidate for this d3d:
|
||||
// if (this->m_context) {
|
||||
// if (texId &&
|
||||
// (texId->m_needsCreation ||
|
||||
// (texId->m_apiSpecificData == nullptr &&
|
||||
// texId->m_apiSpecificData2 == nullptr)) {
|
||||
// this->ITexCreate(texId);
|
||||
// }
|
||||
// this->m_d3dDevice->SetDepthStencilSurface(texId->m_apiSpecificData);
|
||||
// }
|
||||
// void DeviceResolveDepthBuffer(CGxTex* texId);
|
||||
void* v_fn_26_DeviceResolveDepthBuffer;
|
||||
// void DeviceCopyTex(CGxTex* sourceTex, uint32_t sourcePlane, CGxTex* destTex, uint32_t
|
||||
// destPlane);
|
||||
void* v_fn_27_DeviceCopyTex;
|
||||
// void DeviceOverride(EGxOverride override, uint32_t value);
|
||||
void* v_fn_28_DeviceOverride;
|
||||
// void AddDeviceRestoredCallback(DEVICERESTOREDCALLBACK callback);
|
||||
void* v_fn_29_AddDeviceRestoredCallback;
|
||||
// int32_t RemoveDeviceRestoredCallback(DEVICERESTOREDCALLBACK callback);
|
||||
void* v_fn_30_RemoveDeviceRestoredCallback;
|
||||
// void AddTextureRecreationCallback(TEXTURERECREATIONCALLBACK callback);
|
||||
void* v_fn_31_AddTextureRecreationCallback;
|
||||
// int32_t RemoveTextureRecreationCallback(TEXTURERECREATIONCALLBACK callback);
|
||||
void* v_fn_32_RemoveTextureRecreationCallback;
|
||||
// void AddStereoChangedCallback(STEREOCHANGEDCALLBACK callback);
|
||||
void* v_fn_33_AddStereoChangedCallback;
|
||||
// int32_t RemoveStereoChangeCallback(STEREOCHANGEDCALLBACK callback);
|
||||
void* v_fn_34_RemoveStereoChangedCallback;
|
||||
// void CapsWindowSize(CRect& dst);
|
||||
void* v_fn_35_CapsWindowSize;
|
||||
// void CapsWindowSizeInScreenCoords(CRect& dst);
|
||||
void* v_fn_36_CapsWindowSizeInScreenCoords;
|
||||
// void LogCrashInfo(char* buffer, uint32_t buffersize);
|
||||
void* v_fn_37_LogCrashInfo;
|
||||
// void ScenePresent();
|
||||
void* v_fn_38_ScenePresent;
|
||||
// void SceneClear(uint32_t mask, CImVector color);
|
||||
void* v_fn_39_SceneClear;
|
||||
// void XformSetProjection(const C44Matrix& matrix);
|
||||
void* v_fn_40_XformSetProjection;
|
||||
// void XformSetView(const C44Matrix& matrix);
|
||||
void* v_fn_41_XformSetView;
|
||||
// void Draw(CGxBatch* batch, int32_t indexed);
|
||||
void* v_fn_42_Draw;
|
||||
// void PrimBegin(EGxPrim primType);
|
||||
void* v_fn_43_PrimBegin;
|
||||
// void PrimDrawElements();
|
||||
void* v_fn_44_PrimDrawElements;
|
||||
// void PrimVertex(const C3Vector& v);
|
||||
void* v_fn_45_PrimVertex;
|
||||
// void PrimTexCoord(uint32_t tmu, const C2Vector& t);
|
||||
void* v_fn_46_PrimTexCoord;
|
||||
// void PrimNormal(const C3Vector& n);
|
||||
void* v_fn_47_PrimNormal;
|
||||
// void PrimColor(const CImVector& c);
|
||||
void* v_fn_48_PrimColor;
|
||||
// void PrimPointSize(float s);
|
||||
void* v_fn_49_PrimPointSize;
|
||||
// void PrimeLineWidth(float w);
|
||||
void* v_fn_50_PrimLineWidth;
|
||||
// void MasterEnableSet(EGxMasterEnables state, int32_t enable);
|
||||
void* v_fn_51_MasterEnableSet;
|
||||
// void PoolSizeSet(CGxPool* pool, uint32_t size);
|
||||
void* v_fn_52_PoolSizeSet;
|
||||
// void PoolDestroy(CGxPool* pool);
|
||||
void* v_fn_53_PoolDestroy;
|
||||
// char* BufLock(CGxBuf* buf);
|
||||
void* v_fn_54_BufLock;
|
||||
// int32_t BufUnlock(CGxBuf* buf, uint32_t size);
|
||||
void* v_fn_55_BufUnlock;
|
||||
// void BufData(CGxBuf* buf, const void* data, uint32_t size, uint32_t offset);
|
||||
void* v_fn_56_BufData;
|
||||
// int32_t TexCreate(EGxTexTarget target, uint32_t width, uint32_t height, uint32_t depth,
|
||||
// EGxTexFormat format, EGxTexFormat dataFormat, CGxTexFlags flags, void* userArg, void
|
||||
// (*userFunc)(EGxTexCommand, uint32_t, uint32_t, uint32_t, uint32_t, void*, uint32_t&, void
|
||||
// const*&), const char* name, CGxTex*& texId);
|
||||
void* v_fn_57_TexCreate;
|
||||
// void TexDestroy(CGxTex* texId);
|
||||
void* v_fn_58_TexDestroy;
|
||||
// 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;
|
||||
// void TexSetCacheSize(int32_t cacheSize);
|
||||
void* v_fn_61_TexSetCacheSize;
|
||||
// void QueryCreate(CGxQuery*& query, EGxQueryType type);
|
||||
void* v_fn_62_QueryCreate;
|
||||
// void QueryDestroy(CGxQuery*& query);
|
||||
void* v_fn_63_QueryDestroy;
|
||||
// bool QueryBegin(CGxQuery* query);
|
||||
void* v_fn_64_QueryBegin;
|
||||
// bool QueryEnd(CGxQuery* query);
|
||||
void* v_fn_65_QueryEnd;
|
||||
// bool QueryGetParam(CGxQuery* query, EGxQueryParam param, uint32_t* data);
|
||||
void* v_fn_66_QueryGetParam;
|
||||
// bool QueryGetData(CGxQuery* query, uint32_t* data);
|
||||
void* v_fn_67_QueryGetData;
|
||||
// void ShaderCreate(CGxShader* shaders[], EGxShTarget target, const char* a3, const char* a4,
|
||||
// int32_t permutations);
|
||||
void* v_fn_68_ShaderCreate;
|
||||
// void ShaderDestroy(CGxShader*& shader);
|
||||
void* v_fn_69_ShaderDestroy;
|
||||
// void ShaderConstantsSet(EGxShTarget target, uint32_t index, const float* constraints,
|
||||
// uint32_t count);
|
||||
void* v_fn_70_ShaderConstantsSet;
|
||||
// void IShaderReload(CGxShader* shader, const char* a2, const char* a3);
|
||||
void* v_fn_71_IShaderReload;
|
||||
// void IShaderCreate(CGxShader* shader);
|
||||
void* v_fn_72_IShaderCreate;
|
||||
// void CursorSetVisible(int32_t visible);
|
||||
void* v_fn_73_CursorSetVisible;
|
||||
// uint32_t* CursorLock();
|
||||
void* v_fn_74_CursorLock;
|
||||
// void CursorUnlock(uint32_t x, uint32_t y);
|
||||
void* v_fn_75_CursorUnlock;
|
||||
// void StereoSetConvergence(float c);
|
||||
void* v_fn_76_StereoSetConvergence;
|
||||
// float StereoGetConvergence();
|
||||
void* v_fn_77_StereoGetConvergence;
|
||||
// void StereoSetSeparation(float s);
|
||||
void* v_fn_78_StereoSetSeparation;
|
||||
// double StereoGetSeparation();
|
||||
void* v_fn_79_StereoGetSeparation;
|
||||
// bool StereoEnabled();
|
||||
void* v_fn_80_StereoEnabled;
|
||||
// void DebugGroupBegin(const char* a1, char* a2);
|
||||
void* v_fn_81_DebugGroupBegin;
|
||||
// void DebugGroupEnd();
|
||||
void* v_fn_82_DebugGroupEnd;
|
||||
// void DebugEvent(const char* a1, char* a2);
|
||||
void* v_fn_83_DebugEvent;
|
||||
};
|
||||
|
||||
// this class is 14692 bytes in size
|
||||
struct CGxDevice {
|
||||
// pointer to struct CGxDevice__vtable
|
||||
CGxDevice__v_table* v_table; // 0x0 (size: 0x4)
|
||||
TSGrowableArray_CGxPushedRenderState m_pushedStates; // 0x4 (size: 0x14)
|
||||
TSGrowableArray_uint32_t m_stackOffsets; // 0x18 (size: 0x14)
|
||||
TSGrowableArray_EGxRenderState m_dirtyStates; // 0x2C (size: 0x14)
|
||||
EGxPrim m_primType;
|
||||
int32_t m_indexLocked;
|
||||
int32_t m_vertexLocked;
|
||||
int32_t m_inBeginEnd;
|
||||
C3Vector m_primVertex;
|
||||
C2Vector m_primTexCoord[8];
|
||||
C3Vector m_primNormal;
|
||||
CImVector m_primColor;
|
||||
TSGrowableArray_C3Vector m_primVertexArray;
|
||||
TSGrowableArray_C2Vector m_primTexCoordArray[8];
|
||||
TSGrowableArray_C3Vector m_primNormalArray;
|
||||
TSGrowableArray_CImVector m_primColorArray;
|
||||
TSGrowableArray_uint16_t m_primIndexArray;
|
||||
uint32_t m_primMask;
|
||||
CRect m_defWindowRect; // 0x164 (size: 0x10)
|
||||
CRect m_curWindowRect; // 0x174 (size: 0x10)
|
||||
TSGrowableArray_DEVICERESTOREDCALLBACK m_deviceRestoredCallbacks; // 0x184
|
||||
TSGrowableArray_TEXTURERECREATIONCALLBACK m_textureRecreationCallbacks;
|
||||
TSGrowableArray_STEREOCHANGEDCALLBACK m_stereoChangedCallbacks; // check darwin @ 00a2b779
|
||||
EGxApi m_api; // 0x1b4
|
||||
uint32_t m_cpuFeatures;
|
||||
CGxFormat m_format;
|
||||
CGxCaps m_caps;
|
||||
uint32_t m_baseMipLevel;
|
||||
CGxGammaRamp m_gammaRamp;
|
||||
CGxGammaRamp m_systemGammaRamp;
|
||||
// TSHashTable_CGxShader_HASHKEY_STRI m_shaderList[GxShTargets_Last];
|
||||
// TSHashTable_CGxShader_HASHKEY_STRI m_shaderList[6];
|
||||
int32_t (*m_windowProc)(void* window, uint32_t message, uintptr_t wparam, intptr_t lparam);
|
||||
int32_t m_context;
|
||||
// Set to zero by CGxDevice::ScenePresent
|
||||
// prevents Draw from working if != 0
|
||||
// m_inRenderPass?
|
||||
int32_t intF5C;
|
||||
int32_t m_windowVisible;
|
||||
// set to 1 by ICursorClip
|
||||
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)
|
||||
int32_t m_viewportDirty; // m_viewportDirty
|
||||
CBoundingBox m_viewport;
|
||||
C44Matrix m_projection;
|
||||
C44Matrix m_projNative;
|
||||
// CGxMatrixStack m_xforms[GxXforms_Last];
|
||||
CGxMatrixStack m_xforms[11];
|
||||
CGxMatrixStack m_texGen[8];
|
||||
// used by CGxDevice::ClipPlaneSet
|
||||
// seems to be a bitmask to note which clip planes are set
|
||||
uint32_t m_clipPlaneMask;
|
||||
// used by:
|
||||
// CGxDevice::ClipPlaneSet
|
||||
C4Plane m_clipPlane[6]; // m_clipPlanes?
|
||||
// used by
|
||||
// CGxDeviceD3d::DeviceSetRenderTarget
|
||||
// set to 1
|
||||
// CGxDeviceD3d::IStateSyncScissorRect
|
||||
int32_t m_scissorRectDirty; // m_scissorRectDirty?
|
||||
CRect m_scissorRect;
|
||||
// something to do with lighting?
|
||||
// uint32_t unk2548[72];
|
||||
CGxApiLight m_lights[4];
|
||||
// uint32_t unk2536[60];
|
||||
TSHashTable_CGxShader_HASHKEY_STRI m_shaderList[6];
|
||||
uint32_t m_appMasterEnables;
|
||||
uint32_t m_hwMasterEnables;
|
||||
TSList_CGxPool m_poolList;
|
||||
uint32_t unk276C[3];
|
||||
// CGxBuf* m_bufLocked[GxPoolTargets_Last];
|
||||
CGxBuf* m_bufLocked[2];
|
||||
CGxPool* m_vertexPool;
|
||||
CGxPool* m_indexPool;
|
||||
// CGxBuf* m_streamBufs[GxPoolTargets_Last];
|
||||
CGxBuf* m_streamBufs[2];
|
||||
// CGxVertexAttrib m_primVertexFormatAttrib[GxVertexBufferFormats_Last];
|
||||
CGxVertexAttrib m_primVertexFormatAttrib[14];
|
||||
// CGxBuf* m_primVertexFormatBuf[GxVertexBufferFormats_Last];
|
||||
CGxBuf* m_primVertexFormatBuf[14];
|
||||
uint32_t m_primVertexMask;
|
||||
uint32_t m_primVertexDirty;
|
||||
EGxVertexBufferFormat m_primVertexFormat;
|
||||
CGxBuf* m_primVertexBuf;
|
||||
uint32_t m_primVertexSize;
|
||||
CGxBuf* m_primIndexBuf;
|
||||
int32_t m_primIndexDirty;
|
||||
// EmergencyMem m_emergencyMem[GxPoolTargets_Last];
|
||||
EmergencyMem m_emergencyMem[2]; // 0x28C4
|
||||
TSFixedArray_CGxAppRenderState m_appRenderStates;
|
||||
TSFixedArray_CGxStateBom m_hwRenderStates;
|
||||
// Accessed by ITexForceRecreation
|
||||
TSExplicitList_CGxTex m_textures; // 0x2904 (size 0xC)
|
||||
CGxDevice__TextureTarget m_textureTarget[2];
|
||||
TSExplicitList_CGxQuery m_queryList; // 0x2928
|
||||
int32_t m_scrShotClick; // 0x2934
|
||||
uint32_t m_scrShotWidth; // 0x2938
|
||||
uint32_t m_scrShotHeight; // 0x293C
|
||||
TSGrowableArray_CImVector m_scrShotPixels; // 0x2940
|
||||
int32_t m_cursorVisible;
|
||||
int32_t m_hwCursor; // 0x2954 (size 0x4)
|
||||
uint32_t m_cursorHotspotX;
|
||||
uint32_t m_cursorHotspotY;
|
||||
uint32_t m_cursor[1024]; // 0x2960 (size 0x4)
|
||||
CGxTex* m_cursorTexture; // 0x3960 (size 0x4)
|
||||
float m_cursorDepth; // 0x3964 (size 0x4)
|
||||
// 0x3968 == 14692 (the complete size of CGxDevice)
|
||||
// pointer to struct CGxDevice__vtable
|
||||
CGxDevice__v_table* v_table; // 0x0 (size: 0x4)
|
||||
TSGrowableArray_CGxPushedRenderState m_pushedStates; // 0x4 (size: 0x14)
|
||||
TSGrowableArray_uint32_t m_stackOffsets; // 0x18 (size: 0x14)
|
||||
TSGrowableArray_EGxRenderState m_dirtyStates; // 0x2C (size: 0x14)
|
||||
EGxPrim m_primType;
|
||||
int32_t m_indexLocked;
|
||||
int32_t m_vertexLocked;
|
||||
int32_t m_inBeginEnd;
|
||||
C3Vector m_primVertex;
|
||||
C2Vector m_primTexCoord[8];
|
||||
C3Vector m_primNormal;
|
||||
CImVector m_primColor;
|
||||
TSGrowableArray_C3Vector m_primVertexArray;
|
||||
TSGrowableArray_C2Vector m_primTexCoordArray[8];
|
||||
TSGrowableArray_C3Vector m_primNormalArray;
|
||||
TSGrowableArray_CImVector m_primColorArray;
|
||||
TSGrowableArray_uint16_t m_primIndexArray;
|
||||
uint32_t m_primMask;
|
||||
CRect m_defWindowRect; // 0x164 (size: 0x10)
|
||||
CRect m_curWindowRect; // 0x174 (size: 0x10)
|
||||
TSGrowableArray_DEVICERESTOREDCALLBACK m_deviceRestoredCallbacks; // 0x184
|
||||
TSGrowableArray_TEXTURERECREATIONCALLBACK m_textureRecreationCallbacks;
|
||||
TSGrowableArray_STEREOCHANGEDCALLBACK m_stereoChangedCallbacks; // check darwin @ 00a2b779
|
||||
EGxApi m_api; // 0x1b4
|
||||
uint32_t m_cpuFeatures;
|
||||
CGxFormat m_format;
|
||||
CGxCaps m_caps;
|
||||
uint32_t m_baseMipLevel;
|
||||
CGxGammaRamp m_gammaRamp;
|
||||
CGxGammaRamp m_systemGammaRamp;
|
||||
// TSHashTable_CGxShader_HASHKEY_STRI m_shaderList[GxShTargets_Last];
|
||||
// TSHashTable_CGxShader_HASHKEY_STRI m_shaderList[6];
|
||||
int32_t (*m_windowProc)(void* window, uint32_t message, uintptr_t wparam, intptr_t lparam);
|
||||
int32_t m_context;
|
||||
// Set to zero by CGxDevice::ScenePresent
|
||||
// prevents Draw from working if != 0
|
||||
// m_inRenderPass?
|
||||
int32_t intF5C;
|
||||
int32_t m_windowVisible;
|
||||
// set to 1 by ICursorClip
|
||||
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)
|
||||
int32_t m_viewportDirty; // m_viewportDirty
|
||||
CBoundingBox m_viewport;
|
||||
C44Matrix m_projection;
|
||||
C44Matrix m_projNative;
|
||||
// CGxMatrixStack m_xforms[GxXforms_Last];
|
||||
CGxMatrixStack m_xforms[11];
|
||||
CGxMatrixStack m_texGen[8];
|
||||
// used by CGxDevice::ClipPlaneSet
|
||||
// seems to be a bitmask to note which clip planes are set
|
||||
uint32_t m_clipPlaneMask;
|
||||
// used by:
|
||||
// CGxDevice::ClipPlaneSet
|
||||
C4Plane m_clipPlane[6]; // m_clipPlanes?
|
||||
// used by
|
||||
// CGxDeviceD3d::DeviceSetRenderTarget
|
||||
// set to 1
|
||||
// CGxDeviceD3d::IStateSyncScissorRect
|
||||
int32_t m_scissorRectDirty; // m_scissorRectDirty?
|
||||
CRect m_scissorRect;
|
||||
// something to do with lighting?
|
||||
// uint32_t unk2548[72];
|
||||
CGxApiLight m_lights[4];
|
||||
// uint32_t unk2536[60];
|
||||
TSHashTable_CGxShader_HASHKEY_STRI m_shaderList[6];
|
||||
uint32_t m_appMasterEnables;
|
||||
uint32_t m_hwMasterEnables;
|
||||
TSList_CGxPool m_poolList;
|
||||
uint32_t unk276C[3];
|
||||
// CGxBuf* m_bufLocked[GxPoolTargets_Last];
|
||||
CGxBuf* m_bufLocked[2];
|
||||
CGxPool* m_vertexPool;
|
||||
CGxPool* m_indexPool;
|
||||
// CGxBuf* m_streamBufs[GxPoolTargets_Last];
|
||||
CGxBuf* m_streamBufs[2];
|
||||
// CGxVertexAttrib m_primVertexFormatAttrib[GxVertexBufferFormats_Last];
|
||||
CGxVertexAttrib m_primVertexFormatAttrib[14];
|
||||
// CGxBuf* m_primVertexFormatBuf[GxVertexBufferFormats_Last];
|
||||
CGxBuf* m_primVertexFormatBuf[14];
|
||||
uint32_t m_primVertexMask;
|
||||
uint32_t m_primVertexDirty;
|
||||
EGxVertexBufferFormat m_primVertexFormat;
|
||||
CGxBuf* m_primVertexBuf;
|
||||
uint32_t m_primVertexSize;
|
||||
CGxBuf* m_primIndexBuf;
|
||||
int32_t m_primIndexDirty;
|
||||
// EmergencyMem m_emergencyMem[GxPoolTargets_Last];
|
||||
EmergencyMem m_emergencyMem[2]; // 0x28C4
|
||||
TSFixedArray_CGxAppRenderState m_appRenderStates;
|
||||
TSFixedArray_CGxStateBom m_hwRenderStates;
|
||||
// Accessed by ITexForceRecreation
|
||||
TSExplicitList_CGxTex m_textures; // 0x2904 (size 0xC)
|
||||
CGxDevice__TextureTarget m_textureTarget[2];
|
||||
TSExplicitList_CGxQuery m_queryList; // 0x2928
|
||||
int32_t m_scrShotClick; // 0x2934
|
||||
uint32_t m_scrShotWidth; // 0x2938
|
||||
uint32_t m_scrShotHeight; // 0x293C
|
||||
TSGrowableArray_CImVector m_scrShotPixels; // 0x2940
|
||||
int32_t m_cursorVisible;
|
||||
int32_t m_hwCursor; // 0x2954 (size 0x4)
|
||||
uint32_t m_cursorHotspotX;
|
||||
uint32_t m_cursorHotspotY;
|
||||
uint32_t m_cursor[1024]; // 0x2960 (size 0x4)
|
||||
CGxTex* m_cursorTexture; // 0x3960 (size 0x4)
|
||||
float m_cursorDepth; // 0x3964 (size 0x4)
|
||||
// 0x3968 == 14692 (the complete size of CGxDevice)
|
||||
};
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
#ifndef GX_TEXTURE_H
|
||||
#define GX_TEXTURE_H
|
||||
|
||||
#include "tempest/rect.h"
|
||||
#include "common/handle.h"
|
||||
#include "tempest/rect.h"
|
||||
|
||||
#include "storm/array.h"
|
||||
|
||||
|
|
@ -10,50 +10,60 @@ typedef HOBJECT HTEXTURE;
|
|||
STORM_TS_GROWABLE_ARRAY(HTEXTURE);
|
||||
|
||||
typedef struct CGxTexFlags CGxTexFlags;
|
||||
typedef struct CGxTex CGxTex;
|
||||
typedef struct CGxTex CGxTex;
|
||||
|
||||
// !gxTex->m_flags.m_multiSampled
|
||||
struct CGxTexFlags {
|
||||
// unsigned __int32 m_filter : 3;
|
||||
// unsigned __int32 m_wrapU : 1;
|
||||
// unsigned __int32 m_wrapV : 1;
|
||||
// unsigned __int32 m_forceMipTracking : 1;
|
||||
// unsigned __int32 m_generateMipMaps : 1;
|
||||
// unsigned __int32 m_renderTarget : 1;
|
||||
// unsigned __int32 m_maxAnisotropy : 5;
|
||||
// unsigned __int32 m_filter : 3;
|
||||
// unsigned __int32 m_wrapU : 1;
|
||||
// unsigned __int32 m_wrapV : 1;
|
||||
// unsigned __int32 m_forceMipTracking : 1;
|
||||
// unsigned __int32 m_generateMipMaps : 1;
|
||||
// unsigned __int32 m_renderTarget : 1;
|
||||
// unsigned __int32 m_maxAnisotropy : 5;
|
||||
|
||||
|
||||
uint32_t f_flags;
|
||||
uint32_t f_flags;
|
||||
};
|
||||
|
||||
STORM_TS_LIST(CGxTex);
|
||||
struct CGxTex {
|
||||
CiRect m_updateRect;
|
||||
int16_t m_updatePlaneMin;
|
||||
int16_t m_updatePlaneMax;
|
||||
uint32_t m_width;
|
||||
uint32_t m_height;
|
||||
uint32_t m_depth;
|
||||
uint32_t m_target;
|
||||
uint32_t m_format;
|
||||
uint32_t m_dataFormat;
|
||||
CGxTexFlags m_flags;
|
||||
void* m_userArg;
|
||||
void* m_userFunc;
|
||||
void* m_apiSpecificData;
|
||||
void* m_apiSpecificData2;
|
||||
TSLink_CGxTex m_link;
|
||||
uint32_t unk48;
|
||||
uint32_t unk4C;
|
||||
uint32_t unk50;
|
||||
uint32_t unk54;
|
||||
int8_t char58;
|
||||
int8_t char59;
|
||||
int8_t m_needsUpdate;
|
||||
int8_t m_needsCreation;
|
||||
int8_t m_needsFlagUpdate;
|
||||
int8_t char5D;
|
||||
uint16_t m_pad;
|
||||
CiRect m_updateRect;
|
||||
int16_t m_updatePlaneMin;
|
||||
int16_t m_updatePlaneMax;
|
||||
uint32_t m_width;
|
||||
uint32_t m_height;
|
||||
uint32_t m_depth;
|
||||
uint32_t m_target;
|
||||
uint32_t m_format;
|
||||
uint32_t m_dataFormat;
|
||||
CGxTexFlags m_flags;
|
||||
void* m_userArg;
|
||||
void* m_userFunc;
|
||||
void* m_apiSpecificData;
|
||||
void* m_apiSpecificData2;
|
||||
TSLink_CGxTex m_link;
|
||||
uint32_t unk48;
|
||||
uint32_t unk4C;
|
||||
uint32_t unk50;
|
||||
uint32_t unk54;
|
||||
int8_t char58;
|
||||
int8_t char59;
|
||||
int8_t m_needsUpdate;
|
||||
int8_t m_needsCreation;
|
||||
int8_t m_needsFlagUpdate;
|
||||
int8_t char5D;
|
||||
uint16_t m_pad;
|
||||
};
|
||||
|
||||
#endif
|
||||
typedef void (*GxTexCallback_interface)(
|
||||
EGxTexCommand,
|
||||
uint32_t,
|
||||
uint32_t,
|
||||
uint32_t,
|
||||
uint32_t,
|
||||
void*,
|
||||
uint32_t*,
|
||||
void**);
|
||||
typedef GxTexCallback_interface GxTexCallback;
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@
|
|||
|
||||
#include "storm/array.h"
|
||||
|
||||
|
||||
DECLARE_ENUM(EGxApi);
|
||||
DECLARE_ENUM(EGxBlend);
|
||||
DECLARE_ENUM(EGxBuffer);
|
||||
|
|
@ -21,6 +20,7 @@ DECLARE_ENUM(EGxShPS);
|
|||
DECLARE_ENUM(EGxShTarget);
|
||||
DECLARE_ENUM(EGxShVS);
|
||||
DECLARE_ENUM(EGxQueryType);
|
||||
DECLARE_ENUM(EGxQueryParam);
|
||||
DECLARE_ENUM(EGxTexCommand);
|
||||
DECLARE_ENUM(EGxTexFilter);
|
||||
DECLARE_ENUM(EGxTexFormat);
|
||||
|
|
@ -39,373 +39,349 @@ DECLARE_STRUCT(MipBits);
|
|||
DECLARE_STRUCT(CGxGammaRamp);
|
||||
|
||||
enum EGxApi {
|
||||
GxApi_OpenGl = 0,
|
||||
GxApi_D3d9 = 1,
|
||||
GxApi_D3d9Ex = 2,
|
||||
GxApi_D3d10 = 3,
|
||||
GxApi_D3d11 = 4,
|
||||
GxApi_GLL = 5,
|
||||
GxApis_Last = 6
|
||||
GxApi_OpenGl = 0,
|
||||
GxApi_D3d9 = 1,
|
||||
GxApi_D3d9Ex = 2,
|
||||
GxApi_D3d10 = 3,
|
||||
GxApi_D3d11 = 4,
|
||||
GxApi_GLL = 5,
|
||||
GxApis_Last = 6
|
||||
};
|
||||
|
||||
enum EGxBlend {
|
||||
GxBlend_Opaque = 0,
|
||||
GxBlend_AlphaKey = 1,
|
||||
GxBlend_Alpha = 2,
|
||||
GxBlend_Add = 3,
|
||||
GxBlend_Mod = 4,
|
||||
GxBlend_Mod2x = 5,
|
||||
GxBlend_ModAdd = 6,
|
||||
GxBlend_InvSrcAlphaAdd = 7,
|
||||
GxBlend_InvSrcAlphaOpaque = 8,
|
||||
GxBlend_SrcAlphaOpaque = 9,
|
||||
GxBlend_NoAlphaAdd = 10,
|
||||
GxBlend_ConstantAlpha = 11,
|
||||
GxBlends_Last = 12
|
||||
GxBlend_Opaque = 0,
|
||||
GxBlend_AlphaKey = 1,
|
||||
GxBlend_Alpha = 2,
|
||||
GxBlend_Add = 3,
|
||||
GxBlend_Mod = 4,
|
||||
GxBlend_Mod2x = 5,
|
||||
GxBlend_ModAdd = 6,
|
||||
GxBlend_InvSrcAlphaAdd = 7,
|
||||
GxBlend_InvSrcAlphaOpaque = 8,
|
||||
GxBlend_SrcAlphaOpaque = 9,
|
||||
GxBlend_NoAlphaAdd = 10,
|
||||
GxBlend_ConstantAlpha = 11,
|
||||
GxBlends_Last = 12
|
||||
};
|
||||
|
||||
enum EGxBuffer {
|
||||
GxBuffers_Color = 0,
|
||||
GxBuffers_Depth = 1,
|
||||
GxBuffers_Last = 2
|
||||
};
|
||||
enum EGxBuffer { GxBuffers_Color = 0, GxBuffers_Depth = 1, GxBuffers_Last = 2 };
|
||||
|
||||
enum EGxColorFormat {
|
||||
GxCF_argb = 0,
|
||||
GxCF_rgba = 1,
|
||||
GxColorFormats_Last = 2,
|
||||
GxCF_argb = 0,
|
||||
GxCF_rgba = 1,
|
||||
GxColorFormats_Last = 2,
|
||||
};
|
||||
|
||||
enum EGxFontHJusts {
|
||||
GxHJ_Left = 0,
|
||||
GxHJ_Center = 1,
|
||||
GxHJ_Right = 2,
|
||||
GxHJ_Last = 3
|
||||
};
|
||||
enum EGxFontHJusts { GxHJ_Left = 0, GxHJ_Center = 1, GxHJ_Right = 2, GxHJ_Last = 3 };
|
||||
|
||||
enum EGxFontVJusts {
|
||||
GxVJ_Top = 0,
|
||||
GxVJ_Middle = 1,
|
||||
GxVJ_Bottom = 2,
|
||||
GxVJ_Last = 3
|
||||
};
|
||||
enum EGxFontVJusts { GxVJ_Top = 0, GxVJ_Middle = 1, GxVJ_Bottom = 2, GxVJ_Last = 3 };
|
||||
|
||||
enum EGxMasterEnables {
|
||||
GxMasterEnable_Lighting = 0,
|
||||
GxMasterEnable_Fog = 1,
|
||||
GxMasterEnable_DepthTest = 2,
|
||||
GxMasterEnable_DepthWrite = 3,
|
||||
GxMasterEnable_ColorWrite = 4,
|
||||
GxMasterEnable_Culling = 5,
|
||||
GxMasterEnable_DoubleBuffering = 6,
|
||||
GxMasterEnable_NormalProjection = 7,
|
||||
GxMasterEnable_PolygonFill = 8,
|
||||
GxMasterEnables_Last = 9
|
||||
GxMasterEnable_Lighting = 0,
|
||||
GxMasterEnable_Fog = 1,
|
||||
GxMasterEnable_DepthTest = 2,
|
||||
GxMasterEnable_DepthWrite = 3,
|
||||
GxMasterEnable_ColorWrite = 4,
|
||||
GxMasterEnable_Culling = 5,
|
||||
GxMasterEnable_DoubleBuffering = 6,
|
||||
GxMasterEnable_NormalProjection = 7,
|
||||
GxMasterEnable_PolygonFill = 8,
|
||||
GxMasterEnables_Last = 9
|
||||
};
|
||||
|
||||
enum EGxOverride {
|
||||
GxOverride_PixelShader = 0,
|
||||
GxOverride_Unk1 = 1,
|
||||
GxOverride_Unk2 = 2,
|
||||
GxOverride_Unk3 = 3,
|
||||
GxOverride_Unk4 = 4,
|
||||
GxOverride_Unk5 = 5,
|
||||
GxOverride_Unk6 = 6,
|
||||
GxOverride_Unk7 = 7,
|
||||
GxOverride_Unk8 = 8,
|
||||
GxOverrides_Last = 9
|
||||
GxOverride_PixelShader = 0,
|
||||
GxOverride_Unk1 = 1,
|
||||
GxOverride_Unk2 = 2,
|
||||
GxOverride_Unk3 = 3,
|
||||
GxOverride_Unk4 = 4,
|
||||
GxOverride_Unk5 = 5,
|
||||
GxOverride_Unk6 = 6,
|
||||
GxOverride_Unk7 = 7,
|
||||
GxOverride_Unk8 = 8,
|
||||
GxOverrides_Last = 9
|
||||
};
|
||||
|
||||
enum EGxPrim {
|
||||
GxPrim_Points = 0,
|
||||
GxPrim_Lines = 1,
|
||||
GxPrim_LineStrip = 2,
|
||||
GxPrim_Triangles = 3,
|
||||
GxPrim_TriangleStrip = 4,
|
||||
GxPrim_TriangleFan = 5,
|
||||
GxPrims_Last = 6
|
||||
GxPrim_Points = 0,
|
||||
GxPrim_Lines = 1,
|
||||
GxPrim_LineStrip = 2,
|
||||
GxPrim_Triangles = 3,
|
||||
GxPrim_TriangleStrip = 4,
|
||||
GxPrim_TriangleFan = 5,
|
||||
GxPrims_Last = 6
|
||||
};
|
||||
|
||||
enum EGxPrimMask {
|
||||
GxPrim_Position = 0x1,
|
||||
GxPrim_BlendWeight = 0x2,
|
||||
GxPrim_BlendIndices = 0x4,
|
||||
GxPrim_Normal = 0x8,
|
||||
GxPrim_Color0 = 0x10,
|
||||
GxPrim_Color1 = 0x20,
|
||||
GxPrim_TexCoord0 = 0x40,
|
||||
GxPrim_TexCoord1 = 0x80
|
||||
GxPrim_Position = 0x1,
|
||||
GxPrim_BlendWeight = 0x2,
|
||||
GxPrim_BlendIndices = 0x4,
|
||||
GxPrim_Normal = 0x8,
|
||||
GxPrim_Color0 = 0x10,
|
||||
GxPrim_Color1 = 0x20,
|
||||
GxPrim_TexCoord0 = 0x40,
|
||||
GxPrim_TexCoord1 = 0x80
|
||||
};
|
||||
|
||||
enum EGxQueryParam { GxQueryParam_Unk0 = 0, GxQueryParams_Last = 1 };
|
||||
|
||||
enum EGxRenderState {
|
||||
GxRs_PolygonOffset = 0,
|
||||
GxRs_MatDiffuse = 1,
|
||||
GxRs_MatEmissive = 2,
|
||||
GxRs_MatSpecular = 3,
|
||||
GxRs_MatSpecularExp = 4,
|
||||
GxRs_NormalizeNormals = 5,
|
||||
GxRs_BlendingMode = 6,
|
||||
GxRs_AlphaRef = 7,
|
||||
GxRs_FogStart = 8,
|
||||
GxRs_FogEnd = 9,
|
||||
GxRs_FogColor = 10,
|
||||
GxRs_Lighting = 11,
|
||||
GxRs_Fog = 12,
|
||||
GxRs_DepthTest = 13,
|
||||
GxRs_DepthFunc = 14,
|
||||
GxRs_DepthWrite = 15,
|
||||
GxRs_ColorWrite = 16,
|
||||
GxRs_Culling = 17,
|
||||
GxRs_ClipPlaneMask = 18,
|
||||
GxRs_Multisample = 19,
|
||||
GxRs_ScissorTest = 20,
|
||||
GxRs_Texture0 = 21,
|
||||
GxRs_Texture1 = 22,
|
||||
GxRs_Texture2 = 23,
|
||||
GxRs_Texture3 = 24,
|
||||
GxRs_Texture4 = 25,
|
||||
GxRs_Texture5 = 26,
|
||||
GxRs_Texture6 = 27,
|
||||
GxRs_Texture7 = 28,
|
||||
GxRs_Texture8 = 29,
|
||||
GxRs_Texture9 = 30,
|
||||
GxRs_Texture10 = 31,
|
||||
GxRs_Texture11 = 32,
|
||||
GxRs_Texture12 = 33,
|
||||
GxRs_Texture13 = 34,
|
||||
GxRs_Texture14 = 35,
|
||||
GxRs_Texture15 = 36,
|
||||
GxRs_ColorOp0 = 37,
|
||||
GxRs_ColorOp1 = 38,
|
||||
GxRs_ColorOp2 = 39,
|
||||
GxRs_ColorOp3 = 40,
|
||||
GxRs_ColorOp4 = 41,
|
||||
GxRs_ColorOp5 = 42,
|
||||
GxRs_ColorOp6 = 43,
|
||||
GxRs_ColorOp7 = 44,
|
||||
GxRs_AlphaOp0 = 45,
|
||||
GxRs_AlphaOp1 = 46,
|
||||
GxRs_AlphaOp2 = 47,
|
||||
GxRs_AlphaOp3 = 48,
|
||||
GxRs_AlphaOp4 = 49,
|
||||
GxRs_AlphaOp5 = 50,
|
||||
GxRs_AlphaOp6 = 51,
|
||||
GxRs_AlphaOp7 = 52,
|
||||
GxRs_TexGen0 = 53,
|
||||
GxRs_TexGen1 = 54,
|
||||
GxRs_TexGen2 = 55,
|
||||
GxRs_TexGen3 = 56,
|
||||
GxRs_TexGen4 = 57,
|
||||
GxRs_TexGen5 = 58,
|
||||
GxRs_TexGen6 = 59,
|
||||
GxRs_TexGen7 = 60,
|
||||
GxRs_TextureShader0 = 61,
|
||||
GxRs_TextureShader1 = 62,
|
||||
GxRs_TextureShader2 = 63,
|
||||
GxRs_TextureShader3 = 64,
|
||||
GxRs_TextureShader4 = 65,
|
||||
GxRs_TextureShader5 = 66,
|
||||
GxRs_TextureShader6 = 67,
|
||||
GxRs_TextureShader7 = 68,
|
||||
GxRs_TextureCoord0 = 69,
|
||||
GxRs_TextureCoord1 = 70,
|
||||
GxRs_TextureCoord2 = 71,
|
||||
GxRs_TextureCoord3 = 72,
|
||||
GxRs_TextureCoord4 = 73,
|
||||
GxRs_TextureCoord5 = 74,
|
||||
GxRs_TextureCoord6 = 75,
|
||||
GxRs_TextureCoord7 = 76,
|
||||
GxRs_VertexShader = 77,
|
||||
GxRs_PixelShader = 78,
|
||||
GxRs_PointScale = 79,
|
||||
GxRs_PointScaleAttenuation = 80,
|
||||
GxRs_PointScaleMin = 81,
|
||||
GxRs_PointScaleMax = 82,
|
||||
GxRs_PointSprite = 83,
|
||||
Unk84 = 84, // LineWidth? BlendFactor?
|
||||
GxRs_ColorMaterial = 85,
|
||||
GxRenderStates_Last = 86
|
||||
GxRs_PolygonOffset = 0,
|
||||
GxRs_MatDiffuse = 1,
|
||||
GxRs_MatEmissive = 2,
|
||||
GxRs_MatSpecular = 3,
|
||||
GxRs_MatSpecularExp = 4,
|
||||
GxRs_NormalizeNormals = 5,
|
||||
GxRs_BlendingMode = 6,
|
||||
GxRs_AlphaRef = 7,
|
||||
GxRs_FogStart = 8,
|
||||
GxRs_FogEnd = 9,
|
||||
GxRs_FogColor = 10,
|
||||
GxRs_Lighting = 11,
|
||||
GxRs_Fog = 12,
|
||||
GxRs_DepthTest = 13,
|
||||
GxRs_DepthFunc = 14,
|
||||
GxRs_DepthWrite = 15,
|
||||
GxRs_ColorWrite = 16,
|
||||
GxRs_Culling = 17,
|
||||
GxRs_ClipPlaneMask = 18,
|
||||
GxRs_Multisample = 19,
|
||||
GxRs_ScissorTest = 20,
|
||||
GxRs_Texture0 = 21,
|
||||
GxRs_Texture1 = 22,
|
||||
GxRs_Texture2 = 23,
|
||||
GxRs_Texture3 = 24,
|
||||
GxRs_Texture4 = 25,
|
||||
GxRs_Texture5 = 26,
|
||||
GxRs_Texture6 = 27,
|
||||
GxRs_Texture7 = 28,
|
||||
GxRs_Texture8 = 29,
|
||||
GxRs_Texture9 = 30,
|
||||
GxRs_Texture10 = 31,
|
||||
GxRs_Texture11 = 32,
|
||||
GxRs_Texture12 = 33,
|
||||
GxRs_Texture13 = 34,
|
||||
GxRs_Texture14 = 35,
|
||||
GxRs_Texture15 = 36,
|
||||
GxRs_ColorOp0 = 37,
|
||||
GxRs_ColorOp1 = 38,
|
||||
GxRs_ColorOp2 = 39,
|
||||
GxRs_ColorOp3 = 40,
|
||||
GxRs_ColorOp4 = 41,
|
||||
GxRs_ColorOp5 = 42,
|
||||
GxRs_ColorOp6 = 43,
|
||||
GxRs_ColorOp7 = 44,
|
||||
GxRs_AlphaOp0 = 45,
|
||||
GxRs_AlphaOp1 = 46,
|
||||
GxRs_AlphaOp2 = 47,
|
||||
GxRs_AlphaOp3 = 48,
|
||||
GxRs_AlphaOp4 = 49,
|
||||
GxRs_AlphaOp5 = 50,
|
||||
GxRs_AlphaOp6 = 51,
|
||||
GxRs_AlphaOp7 = 52,
|
||||
GxRs_TexGen0 = 53,
|
||||
GxRs_TexGen1 = 54,
|
||||
GxRs_TexGen2 = 55,
|
||||
GxRs_TexGen3 = 56,
|
||||
GxRs_TexGen4 = 57,
|
||||
GxRs_TexGen5 = 58,
|
||||
GxRs_TexGen6 = 59,
|
||||
GxRs_TexGen7 = 60,
|
||||
GxRs_TextureShader0 = 61,
|
||||
GxRs_TextureShader1 = 62,
|
||||
GxRs_TextureShader2 = 63,
|
||||
GxRs_TextureShader3 = 64,
|
||||
GxRs_TextureShader4 = 65,
|
||||
GxRs_TextureShader5 = 66,
|
||||
GxRs_TextureShader6 = 67,
|
||||
GxRs_TextureShader7 = 68,
|
||||
GxRs_TextureCoord0 = 69,
|
||||
GxRs_TextureCoord1 = 70,
|
||||
GxRs_TextureCoord2 = 71,
|
||||
GxRs_TextureCoord3 = 72,
|
||||
GxRs_TextureCoord4 = 73,
|
||||
GxRs_TextureCoord5 = 74,
|
||||
GxRs_TextureCoord6 = 75,
|
||||
GxRs_TextureCoord7 = 76,
|
||||
GxRs_VertexShader = 77,
|
||||
GxRs_PixelShader = 78,
|
||||
GxRs_PointScale = 79,
|
||||
GxRs_PointScaleAttenuation = 80,
|
||||
GxRs_PointScaleMin = 81,
|
||||
GxRs_PointScaleMax = 82,
|
||||
GxRs_PointSprite = 83,
|
||||
Unk84 = 84, // LineWidth? BlendFactor?
|
||||
GxRs_ColorMaterial = 85,
|
||||
GxRenderStates_Last = 86
|
||||
};
|
||||
STORM_TS_GROWABLE_ARRAY(EGxRenderState);
|
||||
|
||||
enum EGxShPS {
|
||||
GxShPS_none = 0,
|
||||
GxShPS_ps_1_1 = 1,
|
||||
GxShPS_ps_1_4 = 2,
|
||||
GxShPS_ps_2_0 = 3,
|
||||
GxShPS_ps_3_0 = 4,
|
||||
GxShPS_ps_4_0 = 5,
|
||||
GxShPS_ps_5_0 = 6,
|
||||
GxShPS_nvrc = 7,
|
||||
GxShPS_nvts = 8,
|
||||
GxShPS_nvts2 = 9,
|
||||
GxShPS_nvts3 = 10,
|
||||
GxShPS_nvfp2 = 11,
|
||||
GxShPS_arbfp1 = 12,
|
||||
GxShPS_glsl = 13,
|
||||
GxShPS_none = 0,
|
||||
GxShPS_ps_1_1 = 1,
|
||||
GxShPS_ps_1_4 = 2,
|
||||
GxShPS_ps_2_0 = 3,
|
||||
GxShPS_ps_3_0 = 4,
|
||||
GxShPS_ps_4_0 = 5,
|
||||
GxShPS_ps_5_0 = 6,
|
||||
GxShPS_nvrc = 7,
|
||||
GxShPS_nvts = 8,
|
||||
GxShPS_nvts2 = 9,
|
||||
GxShPS_nvts3 = 10,
|
||||
GxShPS_nvfp2 = 11,
|
||||
GxShPS_arbfp1 = 12,
|
||||
GxShPS_glsl = 13,
|
||||
};
|
||||
|
||||
enum EGxShTarget {
|
||||
GxSh_Vertex = 0,
|
||||
GxSh_Hull = 1,
|
||||
GxSh_Domain = 2,
|
||||
GxSh_Geometry = 3,
|
||||
GxSh_Pixel = 4,
|
||||
GxSh_Compute = 5,
|
||||
GxShTargets_Last = 6
|
||||
GxSh_Vertex = 0,
|
||||
GxSh_Hull = 1,
|
||||
GxSh_Domain = 2,
|
||||
GxSh_Geometry = 3,
|
||||
GxSh_Pixel = 4,
|
||||
GxSh_Compute = 5,
|
||||
GxShTargets_Last = 6
|
||||
};
|
||||
|
||||
enum EGxShVS {
|
||||
GxShVS_none = 0,
|
||||
GxShVS_vs_1_1 = 1,
|
||||
GxShVS_vs_2_0 = 2,
|
||||
GxShVS_vs_3_0 = 3,
|
||||
GxShVS_vs_4_0 = 4,
|
||||
GxShVS_vs_5_0 = 5,
|
||||
GxShVS_arbvp1 = 6,
|
||||
GxShVS_arbvp1_cg12 = 7,
|
||||
GxShVS_nvvp = 8,
|
||||
GxShVS_nvvp2 = 9,
|
||||
GxShVS_nvvp3 = 10,
|
||||
GxShVS_glsl = 11
|
||||
GxShVS_none = 0,
|
||||
GxShVS_vs_1_1 = 1,
|
||||
GxShVS_vs_2_0 = 2,
|
||||
GxShVS_vs_3_0 = 3,
|
||||
GxShVS_vs_4_0 = 4,
|
||||
GxShVS_vs_5_0 = 5,
|
||||
GxShVS_arbvp1 = 6,
|
||||
GxShVS_arbvp1_cg12 = 7,
|
||||
GxShVS_nvvp = 8,
|
||||
GxShVS_nvvp2 = 9,
|
||||
GxShVS_nvvp3 = 10,
|
||||
GxShVS_glsl = 11
|
||||
};
|
||||
|
||||
enum EGxTexCommand {
|
||||
GxTex_Lock = 0,
|
||||
GxTex_Latch = 1,
|
||||
GxTex_Unlock = 2,
|
||||
GxTex_3 = 3, //
|
||||
GxTexCommands_Last = 4
|
||||
GxTex_Lock = 0,
|
||||
GxTex_Latch = 1,
|
||||
GxTex_Unlock = 2,
|
||||
GxTex_3 = 3, //
|
||||
GxTexCommands_Last = 4
|
||||
};
|
||||
|
||||
enum EGxTexFilter {
|
||||
GxTex_Nearest = 0x0,
|
||||
GxTex_Linear = 0x1,
|
||||
GxTex_NearestMipNearest = 0x2,
|
||||
GxTex_LinearMipNearest = 0x3,
|
||||
GxTex_LinearMipLinear = 0x4,
|
||||
GxTex_Anisotropic = 0x5,
|
||||
GxTexFilters_Last = 0x6,
|
||||
GxTex_Nearest = 0x0,
|
||||
GxTex_Linear = 0x1,
|
||||
GxTex_NearestMipNearest = 0x2,
|
||||
GxTex_LinearMipNearest = 0x3,
|
||||
GxTex_LinearMipLinear = 0x4,
|
||||
GxTex_Anisotropic = 0x5,
|
||||
GxTexFilters_Last = 0x6,
|
||||
};
|
||||
|
||||
enum EGxTexFormat {
|
||||
GxTex_Unknown = 0x0,
|
||||
GxTex_Abgr8888 = 0x1,
|
||||
GxTex_Argb8888 = 0x2,
|
||||
GxTex_Argb4444 = 0x3,
|
||||
GxTex_Argb1555 = 0x4,
|
||||
GxTex_Rgb565 = 0x5,
|
||||
GxTex_Dxt1 = 0x6,
|
||||
GxTex_Dxt3 = 0x7,
|
||||
GxTex_Dxt5 = 0x8,
|
||||
GxTex_Uv88 = 0x9,
|
||||
GxTex_Gr1616F = 0xA,
|
||||
GxTex_R32F = 0xB,
|
||||
GxTex_D24X8 = 0xC,
|
||||
GxTexFormats_Last = 0xD,
|
||||
GxTex_Unknown = 0x0,
|
||||
GxTex_Abgr8888 = 0x1,
|
||||
GxTex_Argb8888 = 0x2,
|
||||
GxTex_Argb4444 = 0x3,
|
||||
GxTex_Argb1555 = 0x4,
|
||||
GxTex_Rgb565 = 0x5,
|
||||
GxTex_Dxt1 = 0x6,
|
||||
GxTex_Dxt3 = 0x7,
|
||||
GxTex_Dxt5 = 0x8,
|
||||
GxTex_Uv88 = 0x9,
|
||||
GxTex_Gr1616F = 0xA,
|
||||
GxTex_R32F = 0xB,
|
||||
GxTex_D24X8 = 0xC,
|
||||
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,
|
||||
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,
|
||||
GxTex_Rectangle = 0x2,
|
||||
GxTex_NonPow2 = 0x3,
|
||||
GxTexTargets_Last = 0x4
|
||||
GxTex_2d = 0x0,
|
||||
GxTex_CubeMap = 0x1,
|
||||
GxTex_Rectangle = 0x2,
|
||||
GxTex_NonPow2 = 0x3,
|
||||
GxTexTargets_Last = 0x4
|
||||
};
|
||||
|
||||
enum EGxTexWrapMode {
|
||||
GxTex_Clamp = 0,
|
||||
GxTex_Wrap = 1
|
||||
};
|
||||
enum EGxTexWrapMode { GxTex_Clamp = 0, GxTex_Wrap = 1 };
|
||||
|
||||
enum EGxQueryType {
|
||||
GxQueryType_Occlusion = 0,
|
||||
// TODO
|
||||
GxQueryType_Occlusion = 0,
|
||||
// TODO
|
||||
};
|
||||
|
||||
enum EGxXform {
|
||||
GxXform_Tex0 = 0,
|
||||
GxXform_Tex1 = 1,
|
||||
GxXform_Tex2 = 2,
|
||||
GxXform_Tex3 = 3,
|
||||
GxXform_Tex4 = 4,
|
||||
GxXform_Tex5 = 5,
|
||||
GxXform_Tex6 = 6,
|
||||
GxXform_Tex7 = 7,
|
||||
GxXform_World = 8,
|
||||
GxXform_Projection = 9,
|
||||
GxXform_View = 10,
|
||||
GxXforms_Last = 11
|
||||
GxXform_Tex0 = 0,
|
||||
GxXform_Tex1 = 1,
|
||||
GxXform_Tex2 = 2,
|
||||
GxXform_Tex3 = 3,
|
||||
GxXform_Tex4 = 4,
|
||||
GxXform_Tex5 = 5,
|
||||
GxXform_Tex6 = 6,
|
||||
GxXform_Tex7 = 7,
|
||||
GxXform_World = 8,
|
||||
GxXform_Projection = 9,
|
||||
GxXform_View = 10,
|
||||
GxXforms_Last = 11
|
||||
};
|
||||
|
||||
enum EGxuDrawListCategory {
|
||||
GxuCat_0 = 0,
|
||||
GxuCat_1 = 1,
|
||||
GxuCat_2 = 2
|
||||
};
|
||||
enum EGxuDrawListCategory { GxuCat_0 = 0, GxuCat_1 = 1, GxuCat_2 = 2 };
|
||||
|
||||
enum EGxWM {
|
||||
GxWM_Size = 0,
|
||||
GxWM_DisplayChange = 1,
|
||||
GxWM_Destroy = 2,
|
||||
GxWM_SetFocus = 3,
|
||||
GxWM_KillFocus = 4,
|
||||
GxWM_Size = 0,
|
||||
GxWM_DisplayChange = 1,
|
||||
GxWM_Destroy = 2,
|
||||
GxWM_SetFocus = 3,
|
||||
GxWM_KillFocus = 4,
|
||||
};
|
||||
|
||||
enum COLOR_FILE_FORMAT {
|
||||
COLOR_JPEG = 0,
|
||||
COLOR_PAL = 1,
|
||||
COLOR_DXT = 2,
|
||||
COLOR_3 = 3
|
||||
};
|
||||
enum COLOR_FILE_FORMAT { COLOR_JPEG = 0, COLOR_PAL = 1, COLOR_DXT = 2, COLOR_3 = 3 };
|
||||
|
||||
enum PIXEL_FORMAT {
|
||||
PIXEL_DXT1 = 0x0,
|
||||
PIXEL_DXT3 = 0x1,
|
||||
PIXEL_ARGB8888 = 0x2,
|
||||
PIXEL_ARGB1555 = 0x3,
|
||||
PIXEL_ARGB4444 = 0x4,
|
||||
PIXEL_RGB565 = 0x5,
|
||||
PIXEL_A8 = 0x6,
|
||||
PIXEL_DXT5 = 0x7,
|
||||
PIXEL_UNSPECIFIED = 0x8,
|
||||
PIXEL_ARGB2565 = 0x9,
|
||||
NUM_PIXEL_FORMATS = 0xA
|
||||
PIXEL_DXT1 = 0x0,
|
||||
PIXEL_DXT3 = 0x1,
|
||||
PIXEL_ARGB8888 = 0x2,
|
||||
PIXEL_ARGB1555 = 0x3,
|
||||
PIXEL_ARGB4444 = 0x4,
|
||||
PIXEL_RGB565 = 0x5,
|
||||
PIXEL_A8 = 0x6,
|
||||
PIXEL_DXT5 = 0x7,
|
||||
PIXEL_UNSPECIFIED = 0x8,
|
||||
PIXEL_ARGB2565 = 0x9,
|
||||
NUM_PIXEL_FORMATS = 0xA
|
||||
};
|
||||
|
||||
struct C4Pixel {
|
||||
uint8_t b;
|
||||
uint8_t g;
|
||||
uint8_t r;
|
||||
uint8_t a;
|
||||
uint8_t b;
|
||||
uint8_t g;
|
||||
uint8_t r;
|
||||
uint8_t a;
|
||||
};
|
||||
|
||||
struct C4LargePixel {
|
||||
uint64_t b;
|
||||
uint64_t g;
|
||||
uint64_t r;
|
||||
uint64_t a;
|
||||
uint64_t b;
|
||||
uint64_t g;
|
||||
uint64_t r;
|
||||
uint64_t a;
|
||||
};
|
||||
|
||||
struct MipBits {
|
||||
C4Pixel* mip[1];
|
||||
C4Pixel* mip[1];
|
||||
};
|
||||
|
||||
struct CGxGammaRamp {
|
||||
uint16_t red[256];
|
||||
uint16_t green[256];
|
||||
uint16_t blue[256];
|
||||
uint16_t red[256];
|
||||
uint16_t green[256];
|
||||
uint16_t blue[256];
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue