fix(profile): overhaul 3.3.5a-windows-386 to work with SuperImportSymbolsScript.py

This commit is contained in:
phaneron 2026-04-12 11:36:50 -04:00
parent bdb3389efb
commit 2d003672ec
39 changed files with 1476 additions and 1232 deletions

View file

@ -10,6 +10,8 @@ struct Blizzard__File__ProcessDirParms {
bool isDir;
};
typedef bool (*Blizzard__File__ProcessDirCallback)(const Blizzard__File__ProcessDirParms* parms);
typedef bool (*Blizzard__File__ProcessDirCallback_interface)(
const Blizzard__File__ProcessDirParms* parms);
typedef Blizzard__File__ProcessDirCallback_interface Blizzard__File__ProcessDirCallback;
#endif

View file

@ -3,7 +3,8 @@
DECLARE_STRUCT(Blizzard__Thread__TLSSlot);
typedef void (*Blizzard__Thread__TLSDestructor)(void*);
typedef void (*Blizzard__Thread__TLSDestructor_interface)(void*);
typedef Blizzard__Thread__TLSDestructor_interface Blizzard__Thread__TLSDestructor;
struct Blizzard__Thread__TLSSlot {
uint32_t key;

View file

@ -8,14 +8,15 @@ DECLARE_STRUCT(CONSOLECOMMAND);
STORM_TS_HASH(CONSOLECOMMAND, HASHKEY_STRI);
typedef int32_t (*COMMANDHANDLER)(const char*, const char*);
typedef int32_t (*COMMANDHANDLER_interface)(const char*, const char*);
typedef COMMANDHANDLER_interface COMMANDHANDLER;
// class CONSOLECOMMAND : public TSHashObject<CONSOLECOMMAND, HASHKEY_STRI>
struct CONSOLECOMMAND {
TSHashObject_CONSOLECOMMAND_HASHKEY_STRI b_base;
COMMANDHANDLER m_handler;
const char* m_helpText;
CATEGORY m_category;
TSHashObject_CONSOLECOMMAND_HASHKEY_STRI _;
COMMANDHANDLER m_handler;
const char* m_helpText;
CATEGORY m_category;
};
#endif
#endif

View file

@ -5,47 +5,46 @@ DECLARE_ENUM(COLOR_T);
DECLARE_ENUM(CATEGORY);
DECLARE_ENUM(EXECMODE);
DECLARE_ENUM(CONSOLERESIZESTATE);
DECLARE_ENUM(HIGHLIGHTSTATE);
enum COLOR_T {
DEFAULT_COLOR = 0,
INPUT_COLOR = 1,
ECHO_COLOR = 2,
ERROR_COLOR = 3,
WARNING_COLOR = 4,
GLOBAL_COLOR = 5,
ADMIN_COLOR = 6,
HIGHLIGHT_COLOR = 7,
BACKGROUND_COLOR = 8,
NUM_COLORTYPES
DEFAULT_COLOR = 0,
INPUT_COLOR = 1,
ECHO_COLOR = 2,
ERROR_COLOR = 3,
WARNING_COLOR = 4,
GLOBAL_COLOR = 5,
ADMIN_COLOR = 6,
HIGHLIGHT_COLOR = 7,
BACKGROUND_COLOR = 8,
NUM_COLORTYPES
};
enum CATEGORY {
DEBUG = 0,
GRAPHICS = 1,
CONSOLE = 2,
COMBAT = 3,
GAME = 4,
DEFAULT = 5,
NET = 6,
SOUND = 7,
GM = 8,
NONE = 9,
LAST
DEBUG = 0,
GRAPHICS = 1,
CONSOLE = 2,
COMBAT = 3,
GAME = 4,
DEFAULT = 5,
NET = 6,
SOUND = 7,
GM = 8,
NONE = 9,
LAST
};
enum EXECMODE {
EM_PROMPTOVERWRITE = 0,
EM_RECORDING = 1,
EM_APPEND = 2,
EM_WRITEFILE = 3,
EM_NOTACTIVE = 4,
EM_NUM_EXECMODES
EM_PROMPTOVERWRITE = 0,
EM_RECORDING = 1,
EM_APPEND = 2,
EM_WRITEFILE = 3,
EM_NOTACTIVE = 4,
EM_NUM_EXECMODES
};
enum CONSOLERESIZESTATE {
CS_NONE = 0,
CS_STRETCH = 1,
NUM_CONSOLERESIZESTATES
};
enum CONSOLERESIZESTATE { CS_NONE = 0, CS_STRETCH = 1, NUM_CONSOLERESIZESTATES };
#endif
enum HIGHLIGHTSTATE { HS_NONE, HS_HIGHLIGHTING, HS_ENDHIGHLIGHT, NUM_HIGHLIGHTSTATES };
#endif

View file

@ -0,0 +1,11 @@
#ifndef DAYNIGHT_DN_GLARE_H
#define DAYNIGHT_DN_GLARE_H
DECLARE_STRUCT(DayNight__DNGlare);
struct DayNight__DNGlare {
// TODO: placeholder
int32_t unk00;
};
#endif

View file

@ -27,7 +27,7 @@ DECLARE_STRUCT(AttackAnimKitsRec);
DECLARE_STRUCT(AttackAnimTypesRec);
DECLARE_STRUCT(AuctionHouseRec);
DECLARE_STRUCT(BankBagSlotPricesRec);
DECLARE_STRUCT(BannedAddonsRec);
DECLARE_STRUCT(BannedAddOnsRec);
DECLARE_STRUCT(BarberShopStyleRec);
DECLARE_STRUCT(BattlemasterListRec);
DECLARE_STRUCT(CameraModeRec);
@ -129,9 +129,9 @@ DECLARE_STRUCT(ItemSubClassRec);
DECLARE_STRUCT(ItemSubClassMaskRec);
DECLARE_STRUCT(ItemVisualEffectsRec);
DECLARE_STRUCT(ItemVisualsRec);
DECLARE_STRUCT(LFGDungeonExpansionRec);
DECLARE_STRUCT(LFGDungeonGroupRec);
DECLARE_STRUCT(LFGDungeonsRec);
DECLARE_STRUCT(LfgDungeonExpansionRec);
DECLARE_STRUCT(LfgDungeonGroupRec);
DECLARE_STRUCT(LfgDungeonsRec);
DECLARE_STRUCT(LanguageWordsRec);
DECLARE_STRUCT(LanguagesRec);
DECLARE_STRUCT(LightRec);
@ -164,7 +164,7 @@ DECLARE_STRUCT(ObjectEffectModifierRec);
DECLARE_STRUCT(ObjectEffectPackageRec);
DECLARE_STRUCT(ObjectEffectPackageElemRec);
DECLARE_STRUCT(OverrideSpellDataRec);
DECLARE_STRUCT(PVPDifficultyRec);
DECLARE_STRUCT(PvpDifficultyRec);
DECLARE_STRUCT(PackageRec);
DECLARE_STRUCT(PageTextMaterialRec);
DECLARE_STRUCT(PaperDollItemFrameRec);
@ -521,7 +521,7 @@ struct BankBagSlotPricesRec {
int32_t m_cost;
};
struct BannedAddonsRec {
struct BannedAddOnsRec {
int32_t m_ID;
int32_t m_nameMd5[4];
int32_t m_versionMd5[4];
@ -1413,7 +1413,7 @@ struct ItemVisualsRec {
int32_t m_slot[5];
};
struct LFGDungeonExpansionRec {
struct LfgDungeonExpansionRec {
int32_t m_ID;
int32_t m_lfgID;
int32_t m_expansionLevel;
@ -1424,7 +1424,7 @@ struct LFGDungeonExpansionRec {
int32_t m_targetLevelMax;
};
struct LFGDungeonGroupRec {
struct LfgDungeonGroupRec {
int32_t m_ID;
const char* m_name;
int32_t m_orderIndex;
@ -1432,7 +1432,7 @@ struct LFGDungeonGroupRec {
int32_t m_typeID;
};
struct LFGDungeonsRec {
struct LfgDungeonsRec {
int32_t m_ID;
const char* m_name;
int32_t m_minLevel;
@ -1707,7 +1707,7 @@ struct OverrideSpellDataRec {
int32_t m_flags;
};
struct PVPDifficultyRec {
struct PvpDifficultyRec {
int32_t m_ID;
int32_t m_mapID;
int32_t m_rangeIndex;
@ -3189,7 +3189,7 @@ DB_CLIENT_DB(AttackAnimKitsRec);
DB_CLIENT_DB(AttackAnimTypesRec);
DB_CLIENT_DB(AuctionHouseRec);
DB_CLIENT_DB(BankBagSlotPricesRec);
DB_CLIENT_DB(BannedAddonsRec);
DB_CLIENT_DB(BannedAddOnsRec);
DB_CLIENT_DB(BarberShopStyleRec);
DB_CLIENT_DB(BattlemasterListRec);
DB_CLIENT_DB(CameraModeRec);
@ -3291,9 +3291,9 @@ DB_CLIENT_DB(ItemSubClassRec);
DB_CLIENT_DB(ItemSubClassMaskRec);
DB_CLIENT_DB(ItemVisualEffectsRec);
DB_CLIENT_DB(ItemVisualsRec);
DB_CLIENT_DB(LFGDungeonExpansionRec);
DB_CLIENT_DB(LFGDungeonGroupRec);
DB_CLIENT_DB(LFGDungeonsRec);
DB_CLIENT_DB(LfgDungeonExpansionRec);
DB_CLIENT_DB(LfgDungeonGroupRec);
DB_CLIENT_DB(LfgDungeonsRec);
DB_CLIENT_DB(LanguageWordsRec);
DB_CLIENT_DB(LanguagesRec);
DB_CLIENT_DB(LightRec);
@ -3326,7 +3326,7 @@ DB_CLIENT_DB(ObjectEffectModifierRec);
DB_CLIENT_DB(ObjectEffectPackageRec);
DB_CLIENT_DB(ObjectEffectPackageElemRec);
DB_CLIENT_DB(OverrideSpellDataRec);
DB_CLIENT_DB(PVPDifficultyRec);
DB_CLIENT_DB(PvpDifficultyRec);
DB_CLIENT_DB(PackageRec);
DB_CLIENT_DB(PageTextMaterialRec);
DB_CLIENT_DB(PaperDollItemFrameRec);

View file

@ -6,12 +6,12 @@
#include "common/instance.h"
#include "storm/queue/timer_priority_uint32_t.h"
#include "event/message.h"
#include "event/handler.h"
#include "event/keydown.h"
#include "event/types.h"
#include "event/timer.h"
#include "event/id_table.h"
#include "event/keydown.h"
#include "event/message.h"
#include "event/timer.h"
#include "event/types.h"
DECLARE_ENUM(SCHEDSTATE);
DECLARE_STRUCT(EvtContext);
@ -22,50 +22,51 @@ DECLARE_HANDLE(HEVENTCONTEXT);
// EvtContext::SCHEDSTATE
enum SCHEDSTATE {
SCHEDSTATE_ACTIVE = 0x0,
SCHEDSTATE_CLOSED = 0x1,
SCHEDSTATE_DESTROYED = 0x2,
_UNIQUE_SYMBOL_SCHEDSTATE_96 = 0xFFFFFFFF
SCHEDSTATE_ACTIVE = 0x0,
SCHEDSTATE_CLOSED = 0x1,
SCHEDSTATE_DESTROYED = 0x2,
_UNIQUE_SYMBOL_SCHEDSTATE_96 = 0xFFFFFFFF
};
COMMON_INSTANCE_ID(EvtContext);
// class EvtContext : public TSingletonInstanceId<EvtContext, offsetof(TInstanceId<EvtContext>, m_id)>
// class EvtContext : public TSingletonInstanceId<EvtContext, offsetof(TInstanceId<EvtContext>,
// m_id)>
struct EvtContext {
TSingletonInstanceId_EvtContext b_base;
// Member variables
SCritSect m_critsect;
uint32_t m_currTime;
SCHEDSTATE m_schedState;
TSTimerPriority_uint32_t m_schedNextWakeTime;
uint32_t m_schedLastIdle;
uint32_t m_schedFlags;
uint32_t m_schedIdleTime;
uint32_t m_schedInitialIdleTime;
uint32_t m_schedWeight;
uint32_t m_schedSmoothWeight;
int32_t m_schedRebalance;
// TSExplicitList<EvtHandler, offsetof(EvtHandler, link)> m_queueHandlerList[EVENTIDS];
TSExplicitList_EvtHandler m_queueHandlerList[36];
// TSExplicitList<EvtMessage, offsetof(EvtMessage, link)> m_queueMessageList;
TSExplicitList_EvtMessage m_queueMessageList;
uint32_t m_queueSyncButtonState;
// TSExplicitList<EvtKeyDown, offsetof(EvtKeyDown, link)> m_queueSyncKeyDownList;
TSExplicitList_EvtKeyDown m_queueSyncKeyDownList;
EvtIdTable_pointer_to_EvtTimer m_timerIdTable;
EvtTimerQueue m_timerQueue;
HPROPCONTEXT m_propContext;
int32_t unk264;
int32_t unk268;
int32_t unk26C;
void* m_callContext;
uint32_t m_startWatchdog;
TSingletonInstanceId_EvtContext b_base;
// Member variables
SCritSect m_critsect;
uint32_t m_currTime;
SCHEDSTATE m_schedState;
TSTimerPriority_uint32_t m_schedNextWakeTime;
uint32_t m_schedLastIdle;
uint32_t m_schedFlags;
uint32_t m_schedIdleTime;
uint32_t m_schedInitialIdleTime;
uint32_t m_schedWeight;
uint32_t m_schedSmoothWeight;
int32_t m_schedRebalance;
// TSExplicitList<EvtHandler, offsetof(EvtHandler, link)> m_queueHandlerList[EVENTIDS];
TSExplicitList_EvtHandler m_queueHandlerList[36];
// TSExplicitList<EvtMessage, offsetof(EvtMessage, link)> m_queueMessageList;
TSExplicitList_EvtMessage m_queueMessageList;
uint32_t m_queueSyncButtonState;
// TSExplicitList<EvtKeyDown, offsetof(EvtKeyDown, link)> m_queueSyncKeyDownList;
TSExplicitList_EvtKeyDown m_queueSyncKeyDownList;
EvtIdTable_pointer_to_EvtTimer m_timerIdTable;
EvtTimerQueue m_timerQueue;
HPROPCONTEXT m_propContext;
int32_t unk264;
int32_t unk268;
int32_t unk26C;
void* m_callContext;
uint32_t m_startWatchdog;
};
STORM_TS_PRIORITY_QUEUE(EvtContext);
COMMON_INSTANCE_ID_TABLE(EvtContext);
// class EvtContextQueue : public TSPriorityQueue<EvtContext>
struct EvtContextQueue {
TSPriorityQueue_EvtContext b_base;
TSPriorityQueue_EvtContext b_base;
};
#endif
#endif

View file

@ -18,260 +18,255 @@ DECLARE_STRUCT(EVENT_DATA_KEY);
DECLARE_STRUCT(EVENT_DATA_MOUSE);
DECLARE_STRUCT(EVENT_DATA_SIZE);
typedef void* HEVENTCONTEXT;
typedef int32_t (*EVENTHANDLERFUNC)(const void*, void*);
enum EVENTID {
EVENT_ID_0 = 0,
EVENT_ID_CHAR = 1,
EVENT_ID_FOCUS = 2,
EVENT_ID_3 = 3,
EVENT_ID_DESTROY = 4,
EVENT_ID_5 = 5,
EVENT_ID_IDLE = 6,
EVENT_ID_POLL = 7,
EVENT_ID_INITIALIZE = 8,
EVENT_ID_KEYDOWN = 9,
EVENT_ID_KEYUP = 10,
EVENT_ID_KEYDOWN_REPEATING = 11,
EVENT_ID_MOUSEDOWN = 12,
EVENT_ID_MOUSEMOVE = 13,
EVENT_ID_MOUSEMOVE_RELATIVE = 14,
EVENT_ID_MOUSEUP = 15,
EVENT_ID_MOUSEMODE_CHANGED = 16,
EVENT_ID_MOUSEWHEEL = 17,
EVENT_ID_18 = 18,
EVENT_ID_19 = 19,
EVENT_ID_20 = 20,
EVENT_ID_21 = 21,
EVENT_ID_22 = 22,
EVENT_ID_PAINT = 23,
EVENT_ID_NET_DATA = 24,
EVENT_ID_NET_CONNECT = 25,
EVENT_ID_NET_DISCONNECT = 26,
EVENT_ID_NET_CANTCONNECT = 27,
EVENT_ID_NET_DESTROY = 28,
EVENT_ID_NET_AUTH_CHALLENGE = 29,
EVENT_ID_30 = 30,
EVENT_ID_31 = 31,
EVENT_ID_32 = 32,
EVENT_ID_33 = 33,
EVENT_ID_IME = 34,
EVENT_ID_SIZE = 35,
EVENTIDS = 36
EVENT_ID_0 = 0,
EVENT_ID_CHAR = 1,
EVENT_ID_FOCUS = 2,
EVENT_ID_3 = 3,
EVENT_ID_DESTROY = 4,
EVENT_ID_5 = 5,
EVENT_ID_IDLE = 6,
EVENT_ID_POLL = 7,
EVENT_ID_INITIALIZE = 8,
EVENT_ID_KEYDOWN = 9,
EVENT_ID_KEYUP = 10,
EVENT_ID_KEYDOWN_REPEATING = 11,
EVENT_ID_MOUSEDOWN = 12,
EVENT_ID_MOUSEMOVE = 13,
EVENT_ID_MOUSEMOVE_RELATIVE = 14,
EVENT_ID_MOUSEUP = 15,
EVENT_ID_MOUSEMODE_CHANGED = 16,
EVENT_ID_MOUSEWHEEL = 17,
EVENT_ID_18 = 18,
EVENT_ID_19 = 19,
EVENT_ID_20 = 20,
EVENT_ID_21 = 21,
EVENT_ID_22 = 22,
EVENT_ID_PAINT = 23,
EVENT_ID_NET_DATA = 24,
EVENT_ID_NET_CONNECT = 25,
EVENT_ID_NET_DISCONNECT = 26,
EVENT_ID_NET_CANTCONNECT = 27,
EVENT_ID_NET_DESTROY = 28,
EVENT_ID_NET_AUTH_CHALLENGE = 29,
EVENT_ID_30 = 30,
EVENT_ID_31 = 31,
EVENT_ID_32 = 32,
EVENT_ID_33 = 33,
EVENT_ID_IME = 34,
EVENT_ID_SIZE = 35,
EVENTIDS = 36
};
enum KEY {
KEY_NONE = 0xFFFFFFFF,
KEY_LSHIFT = 0x0,
KEY_RSHIFT = 0x1,
KEY_LCONTROL = 0x2,
KEY_RCONTROL = 0x3,
KEY_LALT = 0x4,
KEY_RALT = 0x5,
KEY_LASTMETAKEY = 0x5,
KEY_SPACE = 0x20,
KEY_0 = 0x30,
KEY_1 = 0x31,
KEY_2 = 0x32,
KEY_3 = 0x33,
KEY_4 = 0x34,
KEY_5 = 0x35,
KEY_6 = 0x36,
KEY_7 = 0x37,
KEY_8 = 0x38,
KEY_9 = 0x39,
KEY_A = 0x41,
KEY_B = 0x42,
KEY_C = 0x43,
KEY_D = 0x44,
KEY_E = 0x45,
KEY_F = 0x46,
KEY_G = 0x47,
KEY_H = 0x48,
KEY_I = 0x49,
KEY_J = 0x4A,
KEY_K = 0x4B,
KEY_L = 0x4C,
KEY_M = 0x4D,
KEY_N = 0x4E,
KEY_O = 0x4F,
KEY_P = 0x50,
KEY_Q = 0x51,
KEY_R = 0x52,
KEY_S = 0x53,
KEY_T = 0x54,
KEY_U = 0x55,
KEY_V = 0x56,
KEY_W = 0x57,
KEY_X = 0x58,
KEY_Y = 0x59,
KEY_Z = 0x5A,
KEY_TILDE = 0x60,
KEY_NUMPAD0 = 0x100,
KEY_NUMPAD1 = 0x101,
KEY_NUMPAD2 = 0x102,
KEY_NUMPAD3 = 0x103,
KEY_NUMPAD4 = 0x104,
KEY_NUMPAD5 = 0x105,
KEY_NUMPAD6 = 0x106,
KEY_NUMPAD7 = 0x107,
KEY_NUMPAD8 = 0x108,
KEY_NUMPAD9 = 0x109,
KEY_NUMPAD_PLUS = 0x10A,
KEY_NUMPAD_MINUS = 0x10B,
KEY_NUMPAD_MULTIPLY = 0x10C,
KEY_NUMPAD_DIVIDE = 0x10D,
KEY_NUMPAD_DECIMAL = 0x10E,
KEY_NUMPAD_EQUALS = 0x30C,
KEY_PLUS = 0x3D,
KEY_MINUS = 0x2D,
KEY_BRACKET_OPEN = 0x5B,
KEY_BRACKET_CLOSE = 0x5D,
KEY_SLASH = 0x2F,
KEY_BACKSLASH = 0x5C,
KEY_SEMICOLON = 0x3B,
KEY_APOSTROPHE = 0x27,
KEY_COMMA = 0x2C,
KEY_PERIOD = 0x2E,
KEY_ESCAPE = 0x200,
KEY_ENTER = 0x201,
KEY_BACKSPACE = 0x202,
KEY_TAB = 0x203,
KEY_LEFT = 0x204,
KEY_UP = 0x205,
KEY_RIGHT = 0x206,
KEY_DOWN = 0x207,
KEY_INSERT = 0x208,
KEY_DELETE = 0x209,
KEY_HOME = 0x20A,
KEY_END = 0x20B,
KEY_PAGEUP = 0x20C,
KEY_PAGEDOWN = 0x20D,
KEY_CAPSLOCK = 0x20E,
KEY_NUMLOCK = 0x20F,
KEY_SCROLLLOCK = 0x210,
KEY_PAUSE = 0x211,
KEY_PRINTSCREEN = 0x212,
KEY_F1 = 0x300,
KEY_F2 = 0x301,
KEY_F3 = 0x302,
KEY_F4 = 0x303,
KEY_F5 = 0x304,
KEY_F6 = 0x305,
KEY_F7 = 0x306,
KEY_F8 = 0x307,
KEY_F9 = 0x308,
KEY_F10 = 0x309,
KEY_F11 = 0x30A,
KEY_F12 = 0x30B,
KEY_F13 = 0x212,
KEY_F14 = 0x30D,
KEY_F15 = 0x30E,
KEY_F16 = 0x30F,
KEY_F17 = 0x310,
KEY_F18 = 0x311,
KEY_F19 = 0x312,
KEY_LAST = 0x313
KEY_NONE = 0xFFFFFFFF,
KEY_LSHIFT = 0x0,
KEY_RSHIFT = 0x1,
KEY_LCONTROL = 0x2,
KEY_RCONTROL = 0x3,
KEY_LALT = 0x4,
KEY_RALT = 0x5,
KEY_LASTMETAKEY = 0x5,
KEY_SPACE = 0x20,
KEY_0 = 0x30,
KEY_1 = 0x31,
KEY_2 = 0x32,
KEY_3 = 0x33,
KEY_4 = 0x34,
KEY_5 = 0x35,
KEY_6 = 0x36,
KEY_7 = 0x37,
KEY_8 = 0x38,
KEY_9 = 0x39,
KEY_A = 0x41,
KEY_B = 0x42,
KEY_C = 0x43,
KEY_D = 0x44,
KEY_E = 0x45,
KEY_F = 0x46,
KEY_G = 0x47,
KEY_H = 0x48,
KEY_I = 0x49,
KEY_J = 0x4A,
KEY_K = 0x4B,
KEY_L = 0x4C,
KEY_M = 0x4D,
KEY_N = 0x4E,
KEY_O = 0x4F,
KEY_P = 0x50,
KEY_Q = 0x51,
KEY_R = 0x52,
KEY_S = 0x53,
KEY_T = 0x54,
KEY_U = 0x55,
KEY_V = 0x56,
KEY_W = 0x57,
KEY_X = 0x58,
KEY_Y = 0x59,
KEY_Z = 0x5A,
KEY_TILDE = 0x60,
KEY_NUMPAD0 = 0x100,
KEY_NUMPAD1 = 0x101,
KEY_NUMPAD2 = 0x102,
KEY_NUMPAD3 = 0x103,
KEY_NUMPAD4 = 0x104,
KEY_NUMPAD5 = 0x105,
KEY_NUMPAD6 = 0x106,
KEY_NUMPAD7 = 0x107,
KEY_NUMPAD8 = 0x108,
KEY_NUMPAD9 = 0x109,
KEY_NUMPAD_PLUS = 0x10A,
KEY_NUMPAD_MINUS = 0x10B,
KEY_NUMPAD_MULTIPLY = 0x10C,
KEY_NUMPAD_DIVIDE = 0x10D,
KEY_NUMPAD_DECIMAL = 0x10E,
KEY_NUMPAD_EQUALS = 0x30C,
KEY_PLUS = 0x3D,
KEY_MINUS = 0x2D,
KEY_BRACKET_OPEN = 0x5B,
KEY_BRACKET_CLOSE = 0x5D,
KEY_SLASH = 0x2F,
KEY_BACKSLASH = 0x5C,
KEY_SEMICOLON = 0x3B,
KEY_APOSTROPHE = 0x27,
KEY_COMMA = 0x2C,
KEY_PERIOD = 0x2E,
KEY_ESCAPE = 0x200,
KEY_ENTER = 0x201,
KEY_BACKSPACE = 0x202,
KEY_TAB = 0x203,
KEY_LEFT = 0x204,
KEY_UP = 0x205,
KEY_RIGHT = 0x206,
KEY_DOWN = 0x207,
KEY_INSERT = 0x208,
KEY_DELETE = 0x209,
KEY_HOME = 0x20A,
KEY_END = 0x20B,
KEY_PAGEUP = 0x20C,
KEY_PAGEDOWN = 0x20D,
KEY_CAPSLOCK = 0x20E,
KEY_NUMLOCK = 0x20F,
KEY_SCROLLLOCK = 0x210,
KEY_PAUSE = 0x211,
KEY_PRINTSCREEN = 0x212,
KEY_F1 = 0x300,
KEY_F2 = 0x301,
KEY_F3 = 0x302,
KEY_F4 = 0x303,
KEY_F5 = 0x304,
KEY_F6 = 0x305,
KEY_F7 = 0x306,
KEY_F8 = 0x307,
KEY_F9 = 0x308,
KEY_F10 = 0x309,
KEY_F11 = 0x30A,
KEY_F12 = 0x30B,
KEY_F13 = 0x212,
KEY_F14 = 0x30D,
KEY_F15 = 0x30E,
KEY_F16 = 0x30F,
KEY_F17 = 0x310,
KEY_F18 = 0x311,
KEY_F19 = 0x312,
KEY_LAST = 0x313
};
enum MOUSEBUTTON {
MOUSE_BUTTON_NONE = 0x0,
MOUSE_BUTTON_LEFT = 0x1,
MOUSE_BUTTON_MIDDLE = 0x2,
MOUSE_BUTTON_RIGHT = 0x4,
MOUSE_BUTTON_XBUTTON1 = 0x8,
MOUSE_BUTTON_XBUTTON2 = 0x10,
MOUSE_BUTTON_XBUTTON3 = 0x20,
MOUSE_BUTTON_XBUTTON4 = 0x40,
MOUSE_BUTTON_XBUTTON5 = 0x80,
MOUSE_BUTTON_XBUTTON6 = 0x100,
MOUSE_BUTTON_XBUTTON7 = 0x200,
MOUSE_BUTTON_XBUTTON8 = 0x400,
MOUSE_BUTTON_XBUTTON9 = 0x800,
MOUSE_BUTTON_XBUTTON10 = 0x1000,
MOUSE_BUTTON_XBUTTON11 = 0x2000,
MOUSE_BUTTON_XBUTTON12 = 0x4000,
MOUSE_BUTTON_ALL = 0xFFFFFFFF
MOUSE_BUTTON_NONE = 0x0,
MOUSE_BUTTON_LEFT = 0x1,
MOUSE_BUTTON_MIDDLE = 0x2,
MOUSE_BUTTON_RIGHT = 0x4,
MOUSE_BUTTON_XBUTTON1 = 0x8,
MOUSE_BUTTON_XBUTTON2 = 0x10,
MOUSE_BUTTON_XBUTTON3 = 0x20,
MOUSE_BUTTON_XBUTTON4 = 0x40,
MOUSE_BUTTON_XBUTTON5 = 0x80,
MOUSE_BUTTON_XBUTTON6 = 0x100,
MOUSE_BUTTON_XBUTTON7 = 0x200,
MOUSE_BUTTON_XBUTTON8 = 0x400,
MOUSE_BUTTON_XBUTTON9 = 0x800,
MOUSE_BUTTON_XBUTTON10 = 0x1000,
MOUSE_BUTTON_XBUTTON11 = 0x2000,
MOUSE_BUTTON_XBUTTON12 = 0x4000,
MOUSE_BUTTON_ALL = 0xFFFFFFFF
};
enum MOUSEMODE {
MOUSE_MODE_NORMAL = 0x0,
MOUSE_MODE_RELATIVE = 0x1,
MOUSE_MODES = 0x2
};
enum MOUSEMODE { MOUSE_MODE_NORMAL = 0x0, MOUSE_MODE_RELATIVE = 0x1, MOUSE_MODES = 0x2 };
enum OSINPUT {
OS_INPUT_CAPTURE_CHANGED = 0,
OS_INPUT_CHAR = 1,
OS_INPUT_STRING = 2,
OS_INPUT_IME = 3,
OS_INPUT_SIZE = 4,
OS_INPUT_CLOSE = 5,
OS_INPUT_FOCUS = 6,
OS_INPUT_KEY_DOWN = 7,
OS_INPUT_KEY_UP = 8,
OS_INPUT_MOUSE_DOWN = 9,
OS_INPUT_MOUSE_MOVE = 10,
OS_INPUT_MOUSE_WHEEL = 11,
OS_INPUT_MOUSE_MOVE_RELATIVE = 12,
OS_INPUT_MOUSE_UP = 13,
OS_INPUT_14 = 14,
OS_INPUT_15 = 15,
OS_INPUT_16 = 16,
OS_INPUT_17 = 17,
OS_INPUT_18 = 18,
OS_INPUT_SHUTDOWN = 19
OS_INPUT_CAPTURE_CHANGED = 0,
OS_INPUT_CHAR = 1,
OS_INPUT_STRING = 2,
OS_INPUT_IME = 3,
OS_INPUT_SIZE = 4,
OS_INPUT_CLOSE = 5,
OS_INPUT_FOCUS = 6,
OS_INPUT_KEY_DOWN = 7,
OS_INPUT_KEY_UP = 8,
OS_INPUT_MOUSE_DOWN = 9,
OS_INPUT_MOUSE_MOVE = 10,
OS_INPUT_MOUSE_WHEEL = 11,
OS_INPUT_MOUSE_MOVE_RELATIVE = 12,
OS_INPUT_MOUSE_UP = 13,
OS_INPUT_14 = 14,
OS_INPUT_15 = 15,
OS_INPUT_16 = 16,
OS_INPUT_17 = 17,
OS_INPUT_18 = 18,
OS_INPUT_SHUTDOWN = 19
};
enum OS_MOUSE_MODE {
OS_MOUSE_MODE_NORMAL = 0,
OS_MOUSE_MODE_RELATIVE = 1,
OS_MOUSE_MODES = 2,
OS_MOUSE_MODE_NORMAL = 0,
OS_MOUSE_MODE_RELATIVE = 1,
OS_MOUSE_MODES = 2,
};
struct OSEVENT {
OSINPUT id;
int32_t param[4];
OSINPUT id;
int32_t param[4];
};
struct EVENT_DATA_CHAR {
int32_t ch;
uint32_t metaKeyState;
uint32_t repeat;
int32_t ch;
uint32_t metaKeyState;
uint32_t repeat;
};
struct EVENT_DATA_FOCUS {
int32_t focus;
int32_t focus;
};
struct EVENT_DATA_IDLE {
float elapsedSec;
uint32_t time;
float elapsedSec;
uint32_t time;
};
struct EVENT_DATA_KEY {
KEY key;
uint32_t metaKeyState;
uint32_t repeat;
uint32_t time;
KEY key;
uint32_t metaKeyState;
uint32_t repeat;
uint32_t time;
};
struct EVENT_DATA_MOUSE {
MOUSEMODE mode;
MOUSEBUTTON button;
uint32_t buttonState;
uint32_t metaKeyState;
uint32_t flags;
float x;
float y;
int32_t wheelDistance;
uint32_t time;
MOUSEMODE mode;
MOUSEBUTTON button;
uint32_t buttonState;
uint32_t metaKeyState;
uint32_t flags;
float x;
float y;
int32_t wheelDistance;
uint32_t time;
};
struct EVENT_DATA_SIZE {
int32_t w;
int32_t h;
int32_t w;
int32_t h;
};
#endif
#endif

View file

@ -0,0 +1,27 @@
#ifndef D3D9_BLEND_H
#define D3D9_BLEND_H
DECLARE_ENUM(D3DBLEND);
enum D3DBLEND {
D3DBLEND_ZERO = 1,
D3DBLEND_ONE = 2,
D3DBLEND_SRCCOLOR = 3,
D3DBLEND_INVSRCCOLOR = 4,
D3DBLEND_SRCALPHA = 5,
D3DBLEND_INVSRCALPHA = 6,
D3DBLEND_DESTALPHA = 7,
D3DBLEND_INVDESTALPHA = 8,
D3DBLEND_DESTCOLOR = 9,
D3DBLEND_INVDESTCOLOR = 10,
D3DBLEND_SRCALPHASAT = 11,
D3DBLEND_BOTHSRCALPHA = 12,
D3DBLEND_BOTHINVSRCALPHA = 13,
D3DBLEND_BLENDFACTOR = 14,
D3DBLEND_INVBLENDFACTOR = 15,
D3DBLEND_SRCCOLOR2 = 16,
D3DBLEND_INVSRCCOLOR2 = 17,
D3DBLEND_FORCE_DWORD = 0x7fffffff
};
#endif

View file

@ -0,0 +1,19 @@
#ifndef D3D9_CMP_FUNC_H
#define D3D9_CMP_FUNC_H
DECLARE_ENUM(D3DCMPFUNC);
enum D3DCMPFUNC {
D3DCMP_NEVER = 1,
D3DCMP_LESS = 2,
D3DCMP_EQUAL = 3,
D3DCMP_LESSEQUAL = 4,
D3DCMP_GREATER = 5,
D3DCMP_NOTEQUAL = 6,
D3DCMP_GREATEREQUAL = 7,
D3DCMP_ALWAYS = 8,
D3DCMP_FORCE_DWORD = 0x7fffffff
};
#endif

View file

@ -0,0 +1,14 @@
#ifndef D3D9_CULL_H
#define D3D9_CULL_H
DECLARE_ENUM(D3DCULL);
enum D3DCULL {
D3DCULL_NONE = 1,
D3DCULL_CW = 2,
D3DCULL_CCW = 3,
D3DCULL_FORCE_DWORD = 0x7fffffff
};
#endif

View file

@ -1,9 +1,12 @@
#include "external/d3d9/adapteridentifier.h"
#include "external/d3d9/basetexture.h"
#include "external/d3d9/blend.h"
#include "external/d3d9/caps.h"
#include "external/d3d9/cmpfunc.h"
#include "external/d3d9/colorvalue.h"
#include "external/d3d9/cubemapfaces.h"
#include "external/d3d9/cubetexture.h"
#include "external/d3d9/cull.h"
#include "external/d3d9/decltype.h"
#include "external/d3d9/declusage.h"
#include "external/d3d9/device.h"
@ -28,6 +31,8 @@
#include "external/d3d9/surfacedesc.h"
#include "external/d3d9/swapeffect.h"
#include "external/d3d9/texture.h"
#include "external/d3d9/textureaddress.h"
#include "external/d3d9/texturefiltertype.h"
#include "external/d3d9/vector.h"
#include "external/d3d9/vertexbuffer.h"
#include "external/d3d9/vertexdeclaration.h"

View file

@ -0,0 +1,16 @@
#ifndef D3D9_TEXTURE_ADDRESS_H
#define D3D9_TEXTURE_ADDRESS_H
DECLARE_ENUM(D3DTEXTUREADDRESS);
enum D3DTEXTUREADDRESS {
D3DTADDRESS_WRAP = 1,
D3DTADDRESS_MIRROR = 2,
D3DTADDRESS_CLAMP = 3,
D3DTADDRESS_BORDER = 4,
D3DTADDRESS_MIRRORONCE = 5,
D3DTADDRESS_FORCE_DWORD = 0x7fffffff
};
#endif

View file

@ -0,0 +1,19 @@
#ifndef D3D9_TEXTURE_FILTER_TYPE_H
#define D3D9_TEXTURE_FILTER_TYPE_H
DECLARE_ENUM(D3DTEXTUREFILTERTYPE);
enum D3DTEXTUREFILTERTYPE {
D3DTEXF_NONE = 0,
D3DTEXF_POINT = 1,
D3DTEXF_LINEAR = 2,
D3DTEXF_ANISOTROPIC = 3,
D3DTEXF_FLATCUBIC = 4,
D3DTEXF_GAUSSIANCUBIC = 5,
D3DTEXF_PYRAMIDALQUAD = 6,
D3DTEXF_GAUSSIANQUAD = 7,
D3DTEXF_CONVOLUTIONMONO = 8,
D3DTEXF_FORCE_DWORD = 0x7fffffff
};
#endif

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -89,6 +89,7 @@ union Udata {
struct Proto {
GCObject* next;
uint32_t unk04;
lu_byte tt;
lu_byte marked;
TValue* k;

View file

@ -45,9 +45,11 @@ struct lua_longjmp {
typedef lu_int32 Instruction;
typedef int32_t (*lua_CFunction)(lua_State*);
typedef int32_t (*lua_CFunction_interface)(lua_State*);
typedef lua_CFunction_interface lua_CFunction;
typedef void* (*lua_Alloc)(void*, void*, size_t, size_t);
typedef void* (*lua_Alloc_interface)(void*, void*, size_t, size_t);
typedef lua_Alloc_interface lua_Alloc;
struct luaL_Reg {
const char* name;

View file

@ -66,6 +66,8 @@
#include "cursor/types.h"
#include "daynight/dnglare.h"
#include "event/context.h"
#include "event/handler.h"
#include "event/id_table.h"
@ -176,10 +178,13 @@
#include "ui/scriptregion.h"
#include "ui/simplebatchedmesh.h"
#include "ui/simpleframe.h"
#include "ui/simplemodel.h"
#include "ui/simpleregion.h"
#include "ui/simpletexture.h"
#include "ui/simpletop.h"
#include "xml/xml.h"
// include files that define the use of template classes for standard library types
// template classes for whoa types should be entered immediately after where the type is

View file

@ -6,179 +6,256 @@ DECLARE_ENUM(NvAPI_Status);
DECLARE_ENUM(NV_StereoRegistryProfileType);
enum NvAPI_Status {
NVAPI_OK = 0, //!< Success. Request is completed.
NVAPI_ERROR = -1, //!< Generic error
NVAPI_LIBRARY_NOT_FOUND = -2, //!< NVAPI support library cannot be loaded.
NVAPI_NO_IMPLEMENTATION = -3, //!< not implemented in current driver installation
NVAPI_API_NOT_INITIALIZED = -4, //!< NvAPI_Initialize has not been called (successfully)
NVAPI_INVALID_ARGUMENT = -5, //!< The argument/parameter value is not valid or NULL.
NVAPI_NVIDIA_DEVICE_NOT_FOUND = -6, //!< No NVIDIA display driver, or NVIDIA GPU driving a display, was found.
NVAPI_END_ENUMERATION = -7, //!< No more items to enumerate
NVAPI_INVALID_HANDLE = -8, //!< Invalid handle
NVAPI_INCOMPATIBLE_STRUCT_VERSION = -9, //!< An argument's structure version is not supported
NVAPI_HANDLE_INVALIDATED = -10, //!< The handle is no longer valid (likely due to GPU or display re-configuration)
NVAPI_OPENGL_CONTEXT_NOT_CURRENT = -11, //!< No NVIDIA OpenGL context is current (but needs to be)
NVAPI_INVALID_POINTER = -14, //!< An invalid pointer, usually NULL, was passed as a parameter
NVAPI_NO_GL_EXPERT = -12, //!< OpenGL Expert is not supported by the current drivers
NVAPI_INSTRUMENTATION_DISABLED = -13, //!< OpenGL Expert is supported, but driver instrumentation is currently disabled
NVAPI_NO_GL_NSIGHT = -15, //!< OpenGL does not support Nsight
NVAPI_OK = 0, //!< Success. Request is completed.
NVAPI_ERROR = -1, //!< Generic error
NVAPI_LIBRARY_NOT_FOUND = -2, //!< NVAPI support library cannot be loaded.
NVAPI_NO_IMPLEMENTATION = -3, //!< not implemented in current driver installation
NVAPI_API_NOT_INITIALIZED = -4, //!< NvAPI_Initialize has not been called (successfully)
NVAPI_INVALID_ARGUMENT = -5, //!< The argument/parameter value is not valid or NULL.
NVAPI_NVIDIA_DEVICE_NOT_FOUND =
-6, //!< No NVIDIA display driver, or NVIDIA GPU driving a display, was found.
NVAPI_END_ENUMERATION = -7, //!< No more items to enumerate
NVAPI_INVALID_HANDLE = -8, //!< Invalid handle
NVAPI_INCOMPATIBLE_STRUCT_VERSION = -9, //!< An argument's structure version is not supported
NVAPI_HANDLE_INVALIDATED =
-10, //!< The handle is no longer valid (likely due to GPU or display re-configuration)
NVAPI_OPENGL_CONTEXT_NOT_CURRENT =
-11, //!< No NVIDIA OpenGL context is current (but needs to be)
NVAPI_INVALID_POINTER = -14, //!< An invalid pointer, usually NULL, was passed as a parameter
NVAPI_NO_GL_EXPERT = -12, //!< OpenGL Expert is not supported by the current drivers
NVAPI_INSTRUMENTATION_DISABLED =
-13, //!< OpenGL Expert is supported, but driver instrumentation is currently disabled
NVAPI_NO_GL_NSIGHT = -15, //!< OpenGL does not support Nsight
NVAPI_EXPECTED_LOGICAL_GPU_HANDLE = -100, //!< Expected a logical GPU handle for one or more parameters
NVAPI_EXPECTED_PHYSICAL_GPU_HANDLE = -101, //!< Expected a physical GPU handle for one or more parameters
NVAPI_EXPECTED_DISPLAY_HANDLE = -102, //!< Expected an NV display handle for one or more parameters
NVAPI_INVALID_COMBINATION = -103, //!< The combination of parameters is not valid.
NVAPI_NOT_SUPPORTED = -104, //!< Requested feature is not supported in the selected GPU
NVAPI_PORTID_NOT_FOUND = -105, //!< No port ID was found for the I2C transaction
NVAPI_EXPECTED_UNATTACHED_DISPLAY_HANDLE = -106, //!< Expected an unattached display handle as one of the input parameters.
NVAPI_INVALID_PERF_LEVEL = -107, //!< Invalid perf level
NVAPI_DEVICE_BUSY = -108, //!< Device is busy; request not fulfilled
NVAPI_NV_PERSIST_FILE_NOT_FOUND = -109, //!< NV persist file is not found
NVAPI_PERSIST_DATA_NOT_FOUND = -110, //!< NV persist data is not found
NVAPI_EXPECTED_TV_DISPLAY = -111, //!< Expected a TV output display
NVAPI_EXPECTED_TV_DISPLAY_ON_DCONNECTOR = -112, //!< Expected a TV output on the D Connector - HDTV_EIAJ4120.
NVAPI_NO_ACTIVE_SLI_TOPOLOGY = -113, //!< SLI is not active on this device.
NVAPI_SLI_RENDERING_MODE_NOTALLOWED = -114, //!< Setup of SLI rendering mode is not possible right now.
NVAPI_EXPECTED_DIGITAL_FLAT_PANEL = -115, //!< Expected a digital flat panel.
NVAPI_ARGUMENT_EXCEED_MAX_SIZE = -116, //!< Argument exceeds the expected size.
NVAPI_DEVICE_SWITCHING_NOT_ALLOWED = -117, //!< Inhibit is ON due to one of the flags in NV_GPU_DISPLAY_CHANGE_INHIBIT or SLI active.
NVAPI_TESTING_CLOCKS_NOT_SUPPORTED = -118, //!< Testing of clocks is not supported.
NVAPI_UNKNOWN_UNDERSCAN_CONFIG = -119, //!< The specified underscan config is from an unknown source (e.g. INF)
NVAPI_TIMEOUT_RECONFIGURING_GPU_TOPO = -120, //!< Timeout while reconfiguring GPUs
NVAPI_DATA_NOT_FOUND = -121, //!< Requested data was not found
NVAPI_EXPECTED_ANALOG_DISPLAY = -122, //!< Expected an analog display
NVAPI_NO_VIDLINK = -123, //!< No SLI video bridge is present
NVAPI_REQUIRES_REBOOT = -124, //!< NVAPI requires a reboot for the settings to take effect
NVAPI_INVALID_HYBRID_MODE = -125, //!< The function is not supported with the current Hybrid mode.
NVAPI_MIXED_TARGET_TYPES = -126, //!< The target types are not all the same
NVAPI_SYSWOW64_NOT_SUPPORTED = -127, //!< The function is not supported from 32-bit on a 64-bit system.
NVAPI_IMPLICIT_SET_GPU_TOPOLOGY_CHANGE_NOT_ALLOWED = -128, //!< There is no implicit GPU topology active. Use NVAPI_SetHybridMode to change topology.
NVAPI_REQUEST_USER_TO_CLOSE_NON_MIGRATABLE_APPS = -129, //!< Prompt the user to close all non-migratable applications.
NVAPI_OUT_OF_MEMORY = -130, //!< Could not allocate sufficient memory to complete the call.
NVAPI_WAS_STILL_DRAWING = -131, //!< The previous operation that is transferring information to or from this surface is incomplete.
NVAPI_FILE_NOT_FOUND = -132, //!< The file was not found.
NVAPI_TOO_MANY_UNIQUE_STATE_OBJECTS = -133, //!< There are too many unique instances of a particular type of state object.
NVAPI_INVALID_CALL = -134, //!< The method call is invalid. For example, a method's parameter may not be a valid pointer.
NVAPI_D3D10_1_LIBRARY_NOT_FOUND = -135, //!< d3d10_1.dll cannot be loaded.
NVAPI_FUNCTION_NOT_FOUND = -136, //!< Couldn't find the function in the loaded DLL.
NVAPI_INVALID_USER_PRIVILEGE = -137, //!< The application will require Administrator privileges to access this API.
//!< The application can be elevated to a higher permission level by selecting "Run as Administrator".
NVAPI_EXPECTED_NON_PRIMARY_DISPLAY_HANDLE = -138, //!< The handle corresponds to GDIPrimary.
NVAPI_EXPECTED_COMPUTE_GPU_HANDLE = -139, //!< Setting Physx GPU requires that the GPU is compute-capable.
NVAPI_STEREO_NOT_INITIALIZED = -140, //!< The Stereo part of NVAPI failed to initialize completely. Check if the stereo driver is installed.
NVAPI_STEREO_REGISTRY_ACCESS_FAILED = -141, //!< Access to stereo-related registry keys or values has failed.
NVAPI_STEREO_REGISTRY_PROFILE_TYPE_NOT_SUPPORTED = -142, //!< The given registry profile type is not supported.
NVAPI_STEREO_REGISTRY_VALUE_NOT_SUPPORTED = -143, //!< The given registry value is not supported.
NVAPI_STEREO_NOT_ENABLED = -144, //!< Stereo is not enabled and the function needed it to execute completely.
NVAPI_STEREO_NOT_TURNED_ON = -145, //!< Stereo is not turned on and the function needed it to execute completely.
NVAPI_STEREO_INVALID_DEVICE_INTERFACE = -146, //!< Invalid device interface.
NVAPI_STEREO_PARAMETER_OUT_OF_RANGE = -147, //!< Separation percentage or JPEG image capture quality is out of [0-100] range.
NVAPI_STEREO_FRUSTUM_ADJUST_MODE_NOT_SUPPORTED = -148, //!< The given frustum adjust mode is not supported.
NVAPI_TOPO_NOT_POSSIBLE = -149, //!< The mosaic topology is not possible given the current state of the hardware.
NVAPI_MODE_CHANGE_FAILED = -150, //!< An attempt to do a display resolution mode change has failed.
NVAPI_D3D11_LIBRARY_NOT_FOUND = -151, //!< d3d11.dll/d3d11_beta.dll cannot be loaded.
NVAPI_INVALID_ADDRESS = -152, //!< Address is outside of valid range.
NVAPI_STRING_TOO_SMALL = -153, //!< The pre-allocated string is too small to hold the result.
NVAPI_MATCHING_DEVICE_NOT_FOUND = -154, //!< The input does not match any of the available devices.
NVAPI_DRIVER_RUNNING = -155, //!< Driver is running.
NVAPI_DRIVER_NOTRUNNING = -156, //!< Driver is not running.
NVAPI_ERROR_DRIVER_RELOAD_REQUIRED = -157, //!< A driver reload is required to apply these settings.
NVAPI_SET_NOT_ALLOWED = -158, //!< Intended setting is not allowed.
NVAPI_ADVANCED_DISPLAY_TOPOLOGY_REQUIRED = -159, //!< Information can't be returned due to "advanced display topology".
NVAPI_SETTING_NOT_FOUND = -160, //!< Setting is not found.
NVAPI_SETTING_SIZE_TOO_LARGE = -161, //!< Setting size is too large.
NVAPI_TOO_MANY_SETTINGS_IN_PROFILE = -162, //!< There are too many settings for a profile.
NVAPI_PROFILE_NOT_FOUND = -163, //!< Profile is not found.
NVAPI_PROFILE_NAME_IN_USE = -164, //!< Profile name is duplicated.
NVAPI_PROFILE_NAME_EMPTY = -165, //!< Profile name is empty.
NVAPI_EXECUTABLE_NOT_FOUND = -166, //!< Application not found in the Profile.
NVAPI_EXECUTABLE_ALREADY_IN_USE = -167, //!< Application already exists in the other profile.
NVAPI_DATATYPE_MISMATCH = -168, //!< Data Type mismatch
NVAPI_PROFILE_REMOVED = -169, //!< The profile passed as parameter has been removed and is no longer valid.
NVAPI_UNREGISTERED_RESOURCE = -170, //!< An unregistered resource was passed as a parameter.
NVAPI_ID_OUT_OF_RANGE = -171, //!< The DisplayId corresponds to a display which is not within the normal outputId range.
NVAPI_DISPLAYCONFIG_VALIDATION_FAILED = -172, //!< Display topology is not valid so the driver cannot do a mode set on this configuration.
NVAPI_DPMST_CHANGED = -173, //!< Display Port Multi-Stream topology has been changed.
NVAPI_INSUFFICIENT_BUFFER = -174, //!< Input buffer is insufficient to hold the contents.
NVAPI_ACCESS_DENIED = -175, //!< No access to the caller.
NVAPI_MOSAIC_NOT_ACTIVE = -176, //!< The requested action cannot be performed without Mosaic being enabled.
NVAPI_SHARE_RESOURCE_RELOCATED = -177, //!< The surface is relocated away from video memory.
NVAPI_REQUEST_USER_TO_DISABLE_DWM = -178, //!< The user should disable DWM before calling NvAPI.
NVAPI_D3D_DEVICE_LOST = -179, //!< D3D device status is D3DERR_DEVICELOST or D3DERR_DEVICENOTRESET - the user has to reset the device.
NVAPI_INVALID_CONFIGURATION = -180, //!< The requested action cannot be performed in the current state.
NVAPI_STEREO_HANDSHAKE_NOT_DONE = -181, //!< Call failed as stereo handshake not completed.
NVAPI_EXECUTABLE_PATH_IS_AMBIGUOUS = -182, //!< The path provided was too short to determine the correct NVDRS_APPLICATION
NVAPI_DEFAULT_STEREO_PROFILE_IS_NOT_DEFINED = -183, //!< Default stereo profile is not currently defined
NVAPI_DEFAULT_STEREO_PROFILE_DOES_NOT_EXIST = -184, //!< Default stereo profile does not exist
NVAPI_CLUSTER_ALREADY_EXISTS = -185, //!< A cluster is already defined with the given configuration.
NVAPI_DPMST_DISPLAY_ID_EXPECTED = -186, //!< The input display id is not that of a multi stream enabled connector or a display device in a multi stream topology
NVAPI_INVALID_DISPLAY_ID = -187, //!< The input display id is not valid or the monitor associated to it does not support the current operation
NVAPI_STREAM_IS_OUT_OF_SYNC = -188, //!< While playing secure audio stream, stream goes out of sync
NVAPI_INCOMPATIBLE_AUDIO_DRIVER = -189, //!< Older audio driver version than required
NVAPI_VALUE_ALREADY_SET = -190, //!< Value already set, setting again not allowed.
NVAPI_TIMEOUT = -191, //!< Requested operation timed out
NVAPI_GPU_WORKSTATION_FEATURE_INCOMPLETE = -192, //!< The requested workstation feature set has incomplete driver internal allocation resources
NVAPI_STEREO_INIT_ACTIVATION_NOT_DONE = -193, //!< Call failed because InitActivation was not called.
NVAPI_SYNC_NOT_ACTIVE = -194, //!< The requested action cannot be performed without Sync being enabled.
NVAPI_SYNC_MASTER_NOT_FOUND = -195, //!< The requested action cannot be performed without Sync Master being enabled.
NVAPI_INVALID_SYNC_TOPOLOGY = -196, //!< Invalid displays passed in the NV_GSYNC_DISPLAY pointer.
NVAPI_ECID_SIGN_ALGO_UNSUPPORTED = -197, //!< The specified signing algorithm is not supported. Either an incorrect value was entered or the current installed driver/hardware does not support the input value.
NVAPI_ECID_KEY_VERIFICATION_FAILED = -198, //!< The encrypted public key verification has failed.
NVAPI_FIRMWARE_OUT_OF_DATE = -199, //!< The device's firmware is out of date.
NVAPI_FIRMWARE_REVISION_NOT_SUPPORTED = -200, //!< The device's firmware is not supported.
NVAPI_LICENSE_CALLER_AUTHENTICATION_FAILED = -201, //!< The caller is not authorized to modify the License.
NVAPI_D3D_DEVICE_NOT_REGISTERED = -202, //!< The user tried to use a deferred context without registering the device first
NVAPI_RESOURCE_NOT_ACQUIRED = -203, //!< Head or SourceId was not reserved for the VR Display before doing the Modeset or the dedicated display.
NVAPI_TIMING_NOT_SUPPORTED = -204, //!< Provided timing is not supported.
NVAPI_HDCP_ENCRYPTION_FAILED = -205, //!< HDCP Encryption Failed for the device. Would be applicable when the device is HDCP Capable.
NVAPI_PCLK_LIMITATION_FAILED = -206, //!< Provided mode is over sink device pclk limitation.
NVAPI_NO_CONNECTOR_FOUND = -207, //!< No connector on GPU found.
NVAPI_HDCP_DISABLED = -208, //!< When a non-HDCP capable HMD is connected, we would inform user by this code.
NVAPI_API_IN_USE = -209, //!< Atleast an API is still being called
NVAPI_NVIDIA_DISPLAY_NOT_FOUND = -210, //!< No display found on Nvidia GPU(s).
NVAPI_PRIV_SEC_VIOLATION = -211, //!< Priv security violation, improper access to a secured register.
NVAPI_INCORRECT_VENDOR = -212, //!< NVAPI cannot be called by this vendor
NVAPI_DISPLAY_IN_USE = -213, //!< DirectMode Display is already in use
NVAPI_UNSUPPORTED_CONFIG_NON_HDCP_HMD = -214, //!< The Config is having Non-NVidia GPU with Non-HDCP HMD connected
NVAPI_MAX_DISPLAY_LIMIT_REACHED = -215, //!< GPU's Max Display Limit has Reached
NVAPI_INVALID_DIRECT_MODE_DISPLAY = -216, //!< DirectMode not Enabled on the Display
NVAPI_GPU_IN_DEBUG_MODE = -217, //!< GPU is in debug mode, OC is NOT allowed.
NVAPI_D3D_CONTEXT_NOT_FOUND = -218, //!< No NvAPI context was found for this D3D object
NVAPI_STEREO_VERSION_MISMATCH = -219, //!< there is version mismatch between stereo driver and dx driver
NVAPI_GPU_NOT_POWERED = -220, //!< GPU is not powered and so the request cannot be completed.
NVAPI_ERROR_DRIVER_RELOAD_IN_PROGRESS = -221, //!< The display driver update in progress.
NVAPI_WAIT_FOR_HW_RESOURCE = -222, //!< Wait for HW resources allocation
NVAPI_REQUIRE_FURTHER_HDCP_ACTION = -223, //!< operation requires further HDCP action
NVAPI_DISPLAY_MUX_TRANSITION_FAILED = -224, //!< Dynamic Mux transition failure
NVAPI_INVALID_DSC_VERSION = -225, //!< Invalid DSC version
NVAPI_INVALID_DSC_SLICECOUNT = -226, //!< Invalid DSC slice count
NVAPI_INVALID_DSC_OUTPUT_BPP = -227, //!< Invalid DSC output BPP
NVAPI_FAILED_TO_LOAD_FROM_DRIVER_STORE = -228, //!< There was an error while loading nvapi.dll from the driver store.
NVAPI_NO_VULKAN = -229, //!< OpenGL does not export Vulkan fake extensions
NVAPI_REQUEST_PENDING = -230, //!< A request for NvTOPPs telemetry CData has already been made and is pending a response.
NVAPI_RESOURCE_IN_USE = -231, //!< Operation cannot be performed because the resource is in use.
NVAPI_INVALID_IMAGE = -232, //!< Device kernel image is invalid
NVAPI_INVALID_PTX = -233, //!< PTX JIT compilation failed
NVAPI_NVLINK_UNCORRECTABLE = -234, //!< Uncorrectable NVLink error was detected during the execution
NVAPI_JIT_COMPILER_NOT_FOUND = -235, //!< PTX JIT compiler library was not found.
NVAPI_INVALID_SOURCE = -236, //!< Device kernel source is invalid.
NVAPI_ILLEGAL_INSTRUCTION = -237, //!< While executing a kernel, the device encountered an illegal instruction.
NVAPI_INVALID_PC = -238, //!< While executing a kernel, the device program counter wrapped its address space
NVAPI_LAUNCH_FAILED = -239, //!< An exception occurred on the device while executing a kernel
NVAPI_NOT_PERMITTED = -240, //!< Attempted operation is not permitted.
NVAPI_CALLBACK_ALREADY_REGISTERED = -241, //!< The callback function has already been registered.
NVAPI_CALLBACK_NOT_FOUND = -242, //!< The callback function is not found or not registered.
NVAPI_INVALID_OUTPUT_WIRE_FORMAT = -243, //!< Invalid Wire Format for the VR HMD
NVAPI_EXPECTED_LOGICAL_GPU_HANDLE =
-100, //!< Expected a logical GPU handle for one or more parameters
NVAPI_EXPECTED_PHYSICAL_GPU_HANDLE =
-101, //!< Expected a physical GPU handle for one or more parameters
NVAPI_EXPECTED_DISPLAY_HANDLE =
-102, //!< Expected an NV display handle for one or more parameters
NVAPI_INVALID_COMBINATION = -103, //!< The combination of parameters is not valid.
NVAPI_NOT_SUPPORTED = -104, //!< Requested feature is not supported in the selected GPU
NVAPI_PORTID_NOT_FOUND = -105, //!< No port ID was found for the I2C transaction
NVAPI_EXPECTED_UNATTACHED_DISPLAY_HANDLE =
-106, //!< Expected an unattached display handle as one of the input parameters.
NVAPI_INVALID_PERF_LEVEL = -107, //!< Invalid perf level
NVAPI_DEVICE_BUSY = -108, //!< Device is busy; request not fulfilled
NVAPI_NV_PERSIST_FILE_NOT_FOUND = -109, //!< NV persist file is not found
NVAPI_PERSIST_DATA_NOT_FOUND = -110, //!< NV persist data is not found
NVAPI_EXPECTED_TV_DISPLAY = -111, //!< Expected a TV output display
NVAPI_EXPECTED_TV_DISPLAY_ON_DCONNECTOR =
-112, //!< Expected a TV output on the D Connector - HDTV_EIAJ4120.
NVAPI_NO_ACTIVE_SLI_TOPOLOGY = -113, //!< SLI is not active on this device.
NVAPI_SLI_RENDERING_MODE_NOTALLOWED =
-114, //!< Setup of SLI rendering mode is not possible right now.
NVAPI_EXPECTED_DIGITAL_FLAT_PANEL = -115, //!< Expected a digital flat panel.
NVAPI_ARGUMENT_EXCEED_MAX_SIZE = -116, //!< Argument exceeds the expected size.
NVAPI_DEVICE_SWITCHING_NOT_ALLOWED = -117, //!< Inhibit is ON due to one of the flags in
//!< NV_GPU_DISPLAY_CHANGE_INHIBIT or SLI active.
NVAPI_TESTING_CLOCKS_NOT_SUPPORTED = -118, //!< Testing of clocks is not supported.
NVAPI_UNKNOWN_UNDERSCAN_CONFIG =
-119, //!< The specified underscan config is from an unknown source (e.g. INF)
NVAPI_TIMEOUT_RECONFIGURING_GPU_TOPO = -120, //!< Timeout while reconfiguring GPUs
NVAPI_DATA_NOT_FOUND = -121, //!< Requested data was not found
NVAPI_EXPECTED_ANALOG_DISPLAY = -122, //!< Expected an analog display
NVAPI_NO_VIDLINK = -123, //!< No SLI video bridge is present
NVAPI_REQUIRES_REBOOT = -124, //!< NVAPI requires a reboot for the settings to take effect
NVAPI_INVALID_HYBRID_MODE =
-125, //!< The function is not supported with the current Hybrid mode.
NVAPI_MIXED_TARGET_TYPES = -126, //!< The target types are not all the same
NVAPI_SYSWOW64_NOT_SUPPORTED =
-127, //!< The function is not supported from 32-bit on a 64-bit system.
NVAPI_IMPLICIT_SET_GPU_TOPOLOGY_CHANGE_NOT_ALLOWED =
-128, //!< There is no implicit GPU topology active. Use NVAPI_SetHybridMode to change
//!< topology.
NVAPI_REQUEST_USER_TO_CLOSE_NON_MIGRATABLE_APPS =
-129, //!< Prompt the user to close all non-migratable applications.
NVAPI_OUT_OF_MEMORY = -130, //!< Could not allocate sufficient memory to complete the call.
NVAPI_WAS_STILL_DRAWING = -131, //!< The previous operation that is transferring information to
//!< or from this surface is incomplete.
NVAPI_FILE_NOT_FOUND = -132, //!< The file was not found.
NVAPI_TOO_MANY_UNIQUE_STATE_OBJECTS =
-133, //!< There are too many unique instances of a particular type of state object.
NVAPI_INVALID_CALL = -134, //!< The method call is invalid. For example, a method's parameter
//!< may not be a valid pointer.
NVAPI_D3D10_1_LIBRARY_NOT_FOUND = -135, //!< d3d10_1.dll cannot be loaded.
NVAPI_FUNCTION_NOT_FOUND = -136, //!< Couldn't find the function in the loaded DLL.
NVAPI_INVALID_USER_PRIVILEGE =
-137, //!< The application will require Administrator privileges to access this API.
//!< The application can be elevated to a higher permission level by selecting "Run as
//!< Administrator".
NVAPI_EXPECTED_NON_PRIMARY_DISPLAY_HANDLE = -138, //!< The handle corresponds to GDIPrimary.
NVAPI_EXPECTED_COMPUTE_GPU_HANDLE =
-139, //!< Setting Physx GPU requires that the GPU is compute-capable.
NVAPI_STEREO_NOT_INITIALIZED = -140, //!< The Stereo part of NVAPI failed to initialize
//!< completely. Check if the stereo driver is installed.
NVAPI_STEREO_REGISTRY_ACCESS_FAILED =
-141, //!< Access to stereo-related registry keys or values has failed.
NVAPI_STEREO_REGISTRY_PROFILE_TYPE_NOT_SUPPORTED =
-142, //!< The given registry profile type is not supported.
NVAPI_STEREO_REGISTRY_VALUE_NOT_SUPPORTED =
-143, //!< The given registry value is not supported.
NVAPI_STEREO_NOT_ENABLED =
-144, //!< Stereo is not enabled and the function needed it to execute completely.
NVAPI_STEREO_NOT_TURNED_ON =
-145, //!< Stereo is not turned on and the function needed it to execute completely.
NVAPI_STEREO_INVALID_DEVICE_INTERFACE = -146, //!< Invalid device interface.
NVAPI_STEREO_PARAMETER_OUT_OF_RANGE =
-147, //!< Separation percentage or JPEG image capture quality is out of [0-100] range.
NVAPI_STEREO_FRUSTUM_ADJUST_MODE_NOT_SUPPORTED =
-148, //!< The given frustum adjust mode is not supported.
NVAPI_TOPO_NOT_POSSIBLE =
-149, //!< The mosaic topology is not possible given the current state of the hardware.
NVAPI_MODE_CHANGE_FAILED =
-150, //!< An attempt to do a display resolution mode change has failed.
NVAPI_D3D11_LIBRARY_NOT_FOUND = -151, //!< d3d11.dll/d3d11_beta.dll cannot be loaded.
NVAPI_INVALID_ADDRESS = -152, //!< Address is outside of valid range.
NVAPI_STRING_TOO_SMALL = -153, //!< The pre-allocated string is too small to hold the result.
NVAPI_MATCHING_DEVICE_NOT_FOUND =
-154, //!< The input does not match any of the available devices.
NVAPI_DRIVER_RUNNING = -155, //!< Driver is running.
NVAPI_DRIVER_NOTRUNNING = -156, //!< Driver is not running.
NVAPI_ERROR_DRIVER_RELOAD_REQUIRED =
-157, //!< A driver reload is required to apply these settings.
NVAPI_SET_NOT_ALLOWED = -158, //!< Intended setting is not allowed.
NVAPI_ADVANCED_DISPLAY_TOPOLOGY_REQUIRED =
-159, //!< Information can't be returned due to "advanced display topology".
NVAPI_SETTING_NOT_FOUND = -160, //!< Setting is not found.
NVAPI_SETTING_SIZE_TOO_LARGE = -161, //!< Setting size is too large.
NVAPI_TOO_MANY_SETTINGS_IN_PROFILE = -162, //!< There are too many settings for a profile.
NVAPI_PROFILE_NOT_FOUND = -163, //!< Profile is not found.
NVAPI_PROFILE_NAME_IN_USE = -164, //!< Profile name is duplicated.
NVAPI_PROFILE_NAME_EMPTY = -165, //!< Profile name is empty.
NVAPI_EXECUTABLE_NOT_FOUND = -166, //!< Application not found in the Profile.
NVAPI_EXECUTABLE_ALREADY_IN_USE = -167, //!< Application already exists in the other profile.
NVAPI_DATATYPE_MISMATCH = -168, //!< Data Type mismatch
NVAPI_PROFILE_REMOVED =
-169, //!< The profile passed as parameter has been removed and is no longer valid.
NVAPI_UNREGISTERED_RESOURCE = -170, //!< An unregistered resource was passed as a parameter.
NVAPI_ID_OUT_OF_RANGE = -171, //!< The DisplayId corresponds to a display which is not within
//!< the normal outputId range.
NVAPI_DISPLAYCONFIG_VALIDATION_FAILED = -172, //!< Display topology is not valid so the driver
//!< cannot do a mode set on this configuration.
NVAPI_DPMST_CHANGED = -173, //!< Display Port Multi-Stream topology has been changed.
NVAPI_INSUFFICIENT_BUFFER = -174, //!< Input buffer is insufficient to hold the contents.
NVAPI_ACCESS_DENIED = -175, //!< No access to the caller.
NVAPI_MOSAIC_NOT_ACTIVE =
-176, //!< The requested action cannot be performed without Mosaic being enabled.
NVAPI_SHARE_RESOURCE_RELOCATED = -177, //!< The surface is relocated away from video memory.
NVAPI_REQUEST_USER_TO_DISABLE_DWM = -178, //!< The user should disable DWM before calling NvAPI.
NVAPI_D3D_DEVICE_LOST = -179, //!< D3D device status is D3DERR_DEVICELOST or
//!< D3DERR_DEVICENOTRESET - the user has to reset the device.
NVAPI_INVALID_CONFIGURATION =
-180, //!< The requested action cannot be performed in the current state.
NVAPI_STEREO_HANDSHAKE_NOT_DONE = -181, //!< Call failed as stereo handshake not completed.
NVAPI_EXECUTABLE_PATH_IS_AMBIGUOUS =
-182, //!< The path provided was too short to determine the correct NVDRS_APPLICATION
NVAPI_DEFAULT_STEREO_PROFILE_IS_NOT_DEFINED =
-183, //!< Default stereo profile is not currently defined
NVAPI_DEFAULT_STEREO_PROFILE_DOES_NOT_EXIST = -184, //!< Default stereo profile does not exist
NVAPI_CLUSTER_ALREADY_EXISTS =
-185, //!< A cluster is already defined with the given configuration.
NVAPI_DPMST_DISPLAY_ID_EXPECTED =
-186, //!< The input display id is not that of a multi stream enabled connector or a display
//!< device in a multi stream topology
NVAPI_INVALID_DISPLAY_ID = -187, //!< The input display id is not valid or the monitor
//!< associated to it does not support the current operation
NVAPI_STREAM_IS_OUT_OF_SYNC =
-188, //!< While playing secure audio stream, stream goes out of sync
NVAPI_INCOMPATIBLE_AUDIO_DRIVER = -189, //!< Older audio driver version than required
NVAPI_VALUE_ALREADY_SET = -190, //!< Value already set, setting again not allowed.
NVAPI_TIMEOUT = -191, //!< Requested operation timed out
NVAPI_GPU_WORKSTATION_FEATURE_INCOMPLETE =
-192, //!< The requested workstation feature set has incomplete driver internal allocation
//!< resources
NVAPI_STEREO_INIT_ACTIVATION_NOT_DONE =
-193, //!< Call failed because InitActivation was not called.
NVAPI_SYNC_NOT_ACTIVE =
-194, //!< The requested action cannot be performed without Sync being enabled.
NVAPI_SYNC_MASTER_NOT_FOUND =
-195, //!< The requested action cannot be performed without Sync Master being enabled.
NVAPI_INVALID_SYNC_TOPOLOGY =
-196, //!< Invalid displays passed in the NV_GSYNC_DISPLAY pointer.
NVAPI_ECID_SIGN_ALGO_UNSUPPORTED =
-197, //!< The specified signing algorithm is not supported. Either an incorrect value was
//!< entered or the current installed driver/hardware does not support the input
//!< value.
NVAPI_ECID_KEY_VERIFICATION_FAILED =
-198, //!< The encrypted public key verification has failed.
NVAPI_FIRMWARE_OUT_OF_DATE = -199, //!< The device's firmware is out of date.
NVAPI_FIRMWARE_REVISION_NOT_SUPPORTED = -200, //!< The device's firmware is not supported.
NVAPI_LICENSE_CALLER_AUTHENTICATION_FAILED =
-201, //!< The caller is not authorized to modify the License.
NVAPI_D3D_DEVICE_NOT_REGISTERED =
-202, //!< The user tried to use a deferred context without registering the device first
NVAPI_RESOURCE_NOT_ACQUIRED = -203, //!< Head or SourceId was not reserved for the VR Display
//!< before doing the Modeset or the dedicated display.
NVAPI_TIMING_NOT_SUPPORTED = -204, //!< Provided timing is not supported.
NVAPI_HDCP_ENCRYPTION_FAILED = -205, //!< HDCP Encryption Failed for the device. Would be
//!< applicable when the device is HDCP Capable.
NVAPI_PCLK_LIMITATION_FAILED = -206, //!< Provided mode is over sink device pclk limitation.
NVAPI_NO_CONNECTOR_FOUND = -207, //!< No connector on GPU found.
NVAPI_HDCP_DISABLED =
-208, //!< When a non-HDCP capable HMD is connected, we would inform user by this code.
NVAPI_API_IN_USE = -209, //!< Atleast an API is still being called
NVAPI_NVIDIA_DISPLAY_NOT_FOUND = -210, //!< No display found on Nvidia GPU(s).
NVAPI_PRIV_SEC_VIOLATION =
-211, //!< Priv security violation, improper access to a secured register.
NVAPI_INCORRECT_VENDOR = -212, //!< NVAPI cannot be called by this vendor
NVAPI_DISPLAY_IN_USE = -213, //!< DirectMode Display is already in use
NVAPI_UNSUPPORTED_CONFIG_NON_HDCP_HMD =
-214, //!< The Config is having Non-NVidia GPU with Non-HDCP HMD connected
NVAPI_MAX_DISPLAY_LIMIT_REACHED = -215, //!< GPU's Max Display Limit has Reached
NVAPI_INVALID_DIRECT_MODE_DISPLAY = -216, //!< DirectMode not Enabled on the Display
NVAPI_GPU_IN_DEBUG_MODE = -217, //!< GPU is in debug mode, OC is NOT allowed.
NVAPI_D3D_CONTEXT_NOT_FOUND = -218, //!< No NvAPI context was found for this D3D object
NVAPI_STEREO_VERSION_MISMATCH =
-219, //!< there is version mismatch between stereo driver and dx driver
NVAPI_GPU_NOT_POWERED = -220, //!< GPU is not powered and so the request cannot be completed.
NVAPI_ERROR_DRIVER_RELOAD_IN_PROGRESS = -221, //!< The display driver update in progress.
NVAPI_WAIT_FOR_HW_RESOURCE = -222, //!< Wait for HW resources allocation
NVAPI_REQUIRE_FURTHER_HDCP_ACTION = -223, //!< operation requires further HDCP action
NVAPI_DISPLAY_MUX_TRANSITION_FAILED = -224, //!< Dynamic Mux transition failure
NVAPI_INVALID_DSC_VERSION = -225, //!< Invalid DSC version
NVAPI_INVALID_DSC_SLICECOUNT = -226, //!< Invalid DSC slice count
NVAPI_INVALID_DSC_OUTPUT_BPP = -227, //!< Invalid DSC output BPP
NVAPI_FAILED_TO_LOAD_FROM_DRIVER_STORE =
-228, //!< There was an error while loading nvapi.dll from the driver store.
NVAPI_NO_VULKAN = -229, //!< OpenGL does not export Vulkan fake extensions
NVAPI_REQUEST_PENDING = -230, //!< A request for NvTOPPs telemetry CData has already been made
//!< and is pending a response.
NVAPI_RESOURCE_IN_USE = -231, //!< Operation cannot be performed because the resource is in use.
NVAPI_INVALID_IMAGE = -232, //!< Device kernel image is invalid
NVAPI_INVALID_PTX = -233, //!< PTX JIT compilation failed
NVAPI_NVLINK_UNCORRECTABLE =
-234, //!< Uncorrectable NVLink error was detected during the execution
NVAPI_JIT_COMPILER_NOT_FOUND = -235, //!< PTX JIT compiler library was not found.
NVAPI_INVALID_SOURCE = -236, //!< Device kernel source is invalid.
NVAPI_ILLEGAL_INSTRUCTION =
-237, //!< While executing a kernel, the device encountered an illegal instruction.
NVAPI_INVALID_PC =
-238, //!< While executing a kernel, the device program counter wrapped its address space
NVAPI_LAUNCH_FAILED = -239, //!< An exception occurred on the device while executing a kernel
NVAPI_NOT_PERMITTED = -240, //!< Attempted operation is not permitted.
NVAPI_CALLBACK_ALREADY_REGISTERED =
-241, //!< The callback function has already been registered.
NVAPI_CALLBACK_NOT_FOUND = -242, //!< The callback function is not found or not registered.
NVAPI_INVALID_OUTPUT_WIRE_FORMAT = -243, //!< Invalid Wire Format for the VR HMD
};
enum NV_StereoRegistryProfileType {
NVAPI_STEREO_DEFAULT_REGISTRY_PROFILE, //!< Default registry configuration profile.
NVAPI_STEREO_DX9_REGISTRY_PROFILE, //!< Separate registry configuration profile for a DirectX 9 executable.
NVAPI_STEREO_DX10_REGISTRY_PROFILE //!< Separate registry configuration profile for a DirectX 10 executable.
NVAPI_STEREO_DEFAULT_REGISTRY_PROFILE, //!< Default registry configuration profile.
NVAPI_STEREO_DX9_REGISTRY_PROFILE, //!< Separate registry configuration profile for a DirectX 9
//!< executable.
NVAPI_STEREO_DX10_REGISTRY_PROFILE //!< Separate registry configuration profile for a DirectX 10
//!< executable.
};
struct NvAPI_InterfaceTable {
uintptr_t func;
uint32_t id;
void* func;
uint32_t id;
};
#endif
typedef void* StereoHandle;
#endif

View file

@ -6,5 +6,6 @@
#include "storm/array.h"
STORM_TS_GROWABLE_ARRAY(uint32_t);
STORM_TS_FIXED_ARRAY(uint32_t);
#endif
#endif

View file

@ -11,68 +11,72 @@ DECLARE_STRUCT(PROCESSING);
#include "storm/list.h"
// Callback types
typedef int32_t (*CMDEXTRACALLBACK)(const char*);
typedef int32_t (*CMDERRORCALLBACK)(CMDERROR*);
typedef int32_t (*CMDPARAMSCALLBACK)(CMDPARAMS*, const char*);
typedef int32_t (*CMDEXTRACALLBACK_interface)(const char*);
typedef int32_t (*CMDERRORCALLBACK_interface)(CMDERROR*);
typedef int32_t (*CMDPARAMSCALLBACK_interface)(CMDPARAMS*, const char*);
typedef CMDEXTRACALLBACK_interface CMDEXTRACALLBACK;
typedef CMDERRORCALLBACK_interface CMDERRORCALLBACK;
typedef CMDPARAMSCALLBACK_interface CMDPARAMSCALLBACK;
// Details a command line argument
// class ARGLIST
struct ARGLIST {
uint32_t flags;
uint32_t id;
const char* name;
CMDPARAMSCALLBACK callback;
uint32_t flags;
uint32_t id;
const char* name;
CMDPARAMSCALLBACK callback;
};
// Parameters passed to argument callback
// class CMDPARAMS
struct CMDPARAMS {
uint32_t flags;
uint32_t id;
const char* name;
void* variable;
uint32_t setvalue;
uint32_t setmask;
union {
int32_t boolvalue;
int32_t signedvalue;
uint32_t unsignedvalue;
const char* stringvalue;
};
uint32_t flags;
uint32_t id;
const char* name;
void* variable;
uint32_t setvalue;
uint32_t setmask;
union {
int32_t boolvalue;
int32_t signedvalue;
uint32_t unsignedvalue;
const char* stringvalue;
};
};
// Command definitions
// class CMDDEF : public TSLinkedNode<CMDDEF>
struct CMDDEF {
TSLinkedNode_CMDDEF b_base;
uint32_t flags;
uint32_t id;
char name[16];
int32_t namelength;
uint32_t setvalue;
uint32_t setmask;
void* variableptr;
uint32_t variablebytes;
CMDPARAMSCALLBACK callback;
int32_t found;
union {
uint32_t currvalue;
char* currvaluestr;
};
TSLinkedNode_CMDDEF b_base;
uint32_t flags;
uint32_t id;
char name[16];
int32_t namelength;
uint32_t setvalue;
uint32_t setmask;
void* variableptr;
uint32_t variablebytes;
CMDPARAMSCALLBACK callback;
int32_t found;
union {
uint32_t currvalue;
char* currvaluestr;
};
};
// class CMDERROR
struct CMDERROR {
uint32_t errorcode;
const char* itemstr;
const char* errorstr;
uint32_t errorcode;
const char* itemstr;
const char* errorstr;
};
// class PROCESSING
// class PROCESSING
struct PROCESSING {
CMDDEF* ptr;
char name[16];
int32_t namelength;
CMDDEF* ptr;
char name[16];
int32_t namelength;
};
#endif
#endif

View file

@ -0,0 +1,30 @@
#ifndef XML_XML_H
#define XML_XML_H
DECLARE_STRUCT(XMLNode);
DECLARE_STRUCT(XMLAttribute);
#include "common/rcstring.h"
#include "storm/array.h"
struct XMLAttribute {
// Member variables
RCString m_name;
RCString m_value;
};
STORM_TS_GROWABLE_ARRAY(XMLAttribute);
struct XMLNode {
// Member variables
void* m_userData;
XMLNode* m_parent;
XMLNode* m_child;
RCString m_name;
char* m_body;
uint32_t m_bodyLen;
TSGrowableArray_XMLAttribute m_attributes;
uint32_t m_offset;
XMLNode* m_next;
};
#endif

View file

@ -41,13 +41,13 @@ Blizzard__Memory__Free 00428480 f end=004284A4
Blizzard__String__FindFilename 00428500 f end=00428538 type="char* __stdcall func(char* str)"
Blizzard__String__FindExtension 00428600 f end=00428613
Blizzard__String__FirstPathSeparator 00428640 f end=00428668
Blizzard__String__Copy 00428670 f end=004286BB type="int32_t __stdcall func(char* dst, const char* src, int32_t count)"
Blizzard__String__Copy 00428670 f end=004286BB type="int32_t __stdcall func(char* dst, char* src, int32_t count)"
Blizzard__String__Append 004286C0 f end=00428721 type="int32_t __stdcall func(char* dst, char* src, int32_t count)"
Blizzard__String__EqualI 00428780 f end=004287A8
Blizzard__String__Length 004287E0 f end=004287FD
Blizzard__String__MemFill 00428920 f end=0042893A
Blizzard__Unicode__ConvertUTF16to8 00428940 f end=00428AFC type="int32_t __stdcall func(uint8_t* dst, uint32_t dstmaxchars, const uint16_t* src, uint32_t srcmaxchars, uint32_t* dstchars, uint32_t* srcchars)"
Blizzard__Unicode__ConvertUTF8to16 00428B00 f end=00428C94 type="int32_t __stdcall func(uint16_t* dst, uint32_t dstmaxchars, const uint8_t* src, uint32_t srcmaxchars, uint32_t* dstchars, uint32_t* srcchars)"
Blizzard__Unicode__ConvertUTF16to8 00428940 f end=00428AFC type="int32_t __stdcall func(uint8_t* dst, uint32_t dstmaxchars, uint16_t* src, uint32_t srcmaxchars, uint32_t* dstchars, uint32_t* srcchars)"
Blizzard__Unicode__ConvertUTF8to16 00428B00 f end=00428C94 type="int32_t __stdcall func(uint16_t* dst, uint32_t dstmaxchars, uint8_t* src, uint32_t srcmaxchars, uint32_t* dstchars, uint32_t* srcchars)"
Blizzard__Time__FromFileTime 00428F00 f end=00428F56 type="Blizzard__Time__Timestamp __stdcall func(uint64_t fileTime)"
Blizzard__String__QuickFormat_1024__constructor 00429790 f end=004297C5 type="Blizzard__String__QuickFormat_1024* __stdcall func(Blizzard__String__QuickFormat_1024* this, char* format, ...)" ; Compiler magic converted this OOP constructor into a variadic __stdcall\nBlizzard::String::QuickFormat<1024>::QuickFormat()
Blizzard__String__MakeUnivPath 0042A9B0 f end=0042A9FB type="void __stdcall func(char* src, char* dst, int32_t count)"
@ -70,7 +70,7 @@ Blizzard__Debug__AddErrorToStack 00432210 f end=004324D3 type="Blizzard__Debug__
System_File__GetRootChars 004325C0 f type="int32_t __stdcall func(Blizzard__File__Filesystem* fs, System_File__Stacked__FileParms* parms)"
Blizzard__Streaming__Manifests__TimeslotItem__HandleTag 00432720 f end=004327CA
Blizzard__String__JoinPath 00433510 f end=0043356B type="void __stdcall func(char* a1, int32_t a2, char* a3, char* a4)" ; Blizzard::String::JoinPath(char*, int, char const*, char const*)
System_File__FromNativeName 00433590 f end=00433650 type="void __stdcall func(uint8_t *buffer, uint32_t buffersize, const char *str)"
System_File__FromNativeName 00433590 f end=00433650 type="void __stdcall func(uint8_t* buffer, uint32_t buffersize, char* str)"
Blizzard__StringConversion_CodepageToUTF8__ToNative__constructor 00433650 f end=0043375A type="void __thiscall func(Blizzard__StringConversion_CodepageToUTF8__ToNative* this, char* str)" ; Blizzard::StringConversion_CodepageToUTF8::ToNative::ToNative(const char*)
System_Thread__AllocateLocalStorage 00433760 f end=004337B7 type="bool __stdcall func(Blizzard__Thread__TLSSlot* slot, Blizzard__Thread__TLSDestructor destructorFn)"
Blizzard__Using__DependsOn 00433870 f end=004338E6 type="void __stdcall func(char* me, char* dependsOn)"

View file

@ -16,7 +16,7 @@ CCommand_TimingInfo 004032A0 f end=004032FF
ClientIdle 00403340 f end=00403362
ClientSetTimer 00403370 f end=00403379
ClientSetTimer 00403380 f end=004033A1
ClientKillTimer 004033B0 f end=004033B9 type="void __stdcall ClientKillTimer(uint32_t timerId, void* handlerAddress, char* handlerName)"
ClientKillTimer 004033B0 f end=004033B9 type="void __stdcall func(uint32_t timerId, void* handlerAddress, char* handlerName)"
ClientPostClose 004033C0 f end=004033D1
StartupStreaming 00403600 f end=004036A4 type="void __stdcall func(char* manifest@<eax>)"
StartupReport 004036B0 f end=0040371B

View file

@ -73,7 +73,7 @@ AddLineToExecFile 0076B2A0 f end=0076B3A9
ConsoleDetectSetDefaults 0076B3F0 f type="void __stdcall func(DefaultSettings* defaults, Hardware* hardware)" ; void SetDefaults(DefaultSettings&, const Hardware&)
ConsoleDetectSetDefaultsFormat 0076B520 f end=0076B53D type="void __stdcall func(DefaultSettings* defaults, Hardware* hardware)" ; ConsoleDetectSetDefaultsFormat(DefaultSettings&, const Hardware&)
SetVideoIdx 0076B540 f end=0076B594 type="void __stdcall func(Hardware* hardware@<edi>)"
PrintStartupError 0076B5A0 f end=0076B616 type="void __usercall __noreturn func(int32_t messageID, const char* fallbackMessage)"
PrintStartupError 0076B5A0 f end=0076B616 type="void __usercall __noreturn func(int32_t messageID, char* fallbackMessage)"
ConsoleDetectSaveHardware 0076B620 f end=0076B7DB
ConsoleDetectDetectHardware 0076BA30 f end=0076BBE9 type="void __stdcall func(Hardware* hardware, bool* hwChanged)" ; ConsoleDetectDetectHardware(Hardware&, bool&)
CConsole__PrintError 00772A80 f end=00772A99

View file

@ -19,7 +19,7 @@ CVar__LookupRegistered 00767460 f end=00767488
CvarCommandHandler 00767680 f end=0076783A
CVar__Reset 00767840 f end=007678F0
CVar__Default 007678F0 f end=007679A0
CVar__Register 00767FC0 f end=007681E9 type="CVar* __stdcall func(char* name, char* help, uint32_t flags, const char* value, void* fcn, uint32_t category, bool a7, void* arg, bool a9)"
CVar__Register 00767FC0 f end=007681E9 type="CVar* __stdcall func(char* name, char* help, uint32_t flags, char* value, void* fcn, uint32_t category, bool a7, void* arg, bool a9)"
CVar__Initialize 00768340 f end=00768402 type="void __stdcall func(char* filename)"
CVGxColorBitsCallback 00769240 f end=007692CF type="bool __stdcall func(CVar* h, char* oldValue, char* newValue, void* arg)"
CVGxDepthBitsCallback 007692D0 f end=0076935F type="bool __stdcall func(CVar* h, char* oldValue, char* newValue, void* arg)"

View file

@ -3,7 +3,7 @@ CGxDevice__CapsAspectRatio 0050F7C0 f end=0050F824
CGxDevice__Caps 00532AF0 f end=00532AF7 type="CGxCaps* __thiscall func(CGxDevice* this)" ; public: class CGxCaps const & __thiscall CGxDevice::Caps(void)const
GxTexSetWrap 00681450 f end=0068146C
CGxDevice__InitLights 00682C50 f end=00682CA8 type="void __thiscall func(CGxDevice* this)"
CGxDevice__DeviceCreate 00682CB0 f end=00682CCB type="void __thiscall func(CGxDevice* this, int32_t (*windowProc)(void*, uint32_t, uintptr_t, intptr_t), CGxFormat* format)"
CGxDevice__DeviceCreate 00682CB0 f end=00682CCB type="void __thiscall func(CGxDevice* this, GxWindowProc windowProc, CGxFormat* format)"
CGxDevice__DeviceCreate 00682CD0 f end=00682CF0 type="void __thiscall func(CGxDevice* this, uintptr_t hwnd, CGxFormat* format)"
CGxDevice__DeviceDestroy 00682CF0 f end=00682CFB type="void __thiscall func(CGxDevice* this)"
CGxDevice__DeviceSetBaseMipLevel 00682D00 f end=00682D10 type="void __thiscall func(CGxDevice* this, uint32_t baseMipLevel)"
@ -86,7 +86,7 @@ CGxDevice__IRsDirty 00685970 f end=006859DB type="void __thiscall func(CGxDevice
CGxDevice__IRsForceUpdate_EGxRenderState 006859E0 f end=00685A65 type="void __thiscall func(CGxDevice* this, EGxRenderState which)" ; CGxDevice::IRsForceUpdate(EGxRenderState)
CGxDevice__IRsForceUpdate 00685A70 f end=00685B4E type="void __thiscall func(CGxDevice* this)" ; CGxDevice::IRsForceUpdate()
CGxDevice__IRsSync 00685B50 f end=00685BFE type="void __thiscall func(CGxDevice* this, int32_t force)"
CGxDevice__TexCreate 00685C60 f end=00685CCB type="void __thiscall func(CGxDevice* this, 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**), char* name, CGxTex** texId)"
CGxDevice__TexCreate 00685C60 f end=00685CCB type="void __thiscall func(CGxDevice* this, EGxTexTarget target, uint32_t width, uint32_t height, uint32_t depth, EGxTexFormat format, EGxTexFormat dataFormat, CGxTexFlags flags, void* userArg, GxTexCallback userFunc, char* name, CGxTex** texId)"
CGxDevice__TexSetWrap 00685D40 f end=00685DBF
CGxDevice__MasterEnableSet 00685EB0 f end=00685F33 type="void __thiscall func(CGxDevice* this, EGxMasterEnables state, int32_t enable)"
CGxDevice__RsSet_pointer_to_void 00685F50 f end=00685FB0 type="void __thiscall func(CGxDevice* this, EGxRenderState which, void* value)"
@ -109,7 +109,7 @@ CGxDevice__XformSetView 00689050 f end=006890C0 type="void __thiscall func(CGxDe
CGxDevice__destructor 006890C0 f end=00689460 type="void __thiscall func(CGxDevice* this)"
CGxDevice__scalar_deleting_destructor 00689690 f end=006896BB type="void __thiscall func(CGxDevice* this, uint8_t __flags)"
CGxDevice__ShaderCreate 006897C0 f end=00689A49 type="void __thiscall func(CGxDevice* this, CGxShader**, EGxShTarget, char*, char*, int32_t)"
HToI 00689B90 f end=00689C02 type="__int16 __usercall func@<ax>(char* h@<eax>, int count)"
HToI 00689B90 f end=00689C02 type="int16_t __usercall func@<ax>(char* h@<eax>, int count)"
CGxDevice__AdapterID 00689C10 f end=00689DA2
CGxDevice__AdapterInfer 00689DB0 f end=00689E7B
CGxDevice__FindDisplayDevice 00689EA0 f end=00689EF0 type="int32_t __stdcall func(PDISPLAY_DEVICEA device, uint32_t flag)" ; UC

View file

@ -29,7 +29,7 @@ CGxDeviceD3d__IBufUnlock 0068FA60 f end=0068FADC type="int32_t __thiscall func(C
CGxDeviceD3d__BufUnlock 0068FAE0 f end=0068FB07 type="int32_t __thiscall func(CGxDeviceD3d* this, CGxBuf* buf, uint32_t size)"
CGxDeviceD3d__IBufLock 0068FB10 f end=0068FCDC type="uint8_t* __thiscall func(CGxDeviceD3d* this, CGxBuf* buf)"
CGxDeviceD3d__BufLock 0068FCE0 f end=0068FCFE type="char* __thiscall func(CGxDeviceD3d* this, CGxBuf* buf)"
CGxDeviceD3d__BufData 0068FD00 f end=0068FD49 type="void __thiscall func(CGxDeviceD3d* this, CGxBuf* buf, const void* data, uint32_t size, uint32_t offset)"
CGxDeviceD3d__BufData 0068FD00 f end=0068FD49 type="void __thiscall func(CGxDeviceD3d* this, CGxBuf* buf, void* data, uint32_t size, uint32_t offset)"
CGxDeviceD3d__constructor 0068FD50 f end=0068FE80 type="void __thiscall func(CGxDeviceD3d* this)"
CGxDeviceD3d__scalar_deleting_destructor 0068FE80 f end=0068FEC8 type="void __thiscall func(CGxDeviceD3d* this, uint8_t __flags)"
CGxDeviceD3d__DeviceReadPixels 0068FED0 f end=00690144 type="void __thiscall func(CGxDeviceD3d* this, CiRect* rect, TSGrowableArray_CImVector* pixels)"
@ -39,7 +39,7 @@ CGxDeviceD3d__IDestroyD3d 006903B0 f end=006904C4
CGxDeviceD3d__DeviceSetFormat 006904D0 f end=006905E8 type="int32_t __thiscall func(CGxDeviceD3d* this, CGxFormat* format)"
CGxDeviceD3d__DeviceDestroy 006905F0 f end=00690679 type="void __thiscall func(CGxDeviceD3d* this)"
CGxDeviceD3d__ICreateD3d 00690680 f end=00690742 type="int32_t __thiscall func(CGxDeviceD3d* this)"
CGxDeviceD3d__DeviceCreate 00690750 f end=00690821 type="int32_t __thiscall func(CGxDeviceD3d* this, int32_t (*windowProc)(void*, uint32_t, uintptr_t, intptr_t), CGxFormat* format)"
CGxDeviceD3d__DeviceCreate 00690750 f end=00690821 type="int32_t __thiscall func(CGxDeviceD3d* this, GxWindowProc windowProc, CGxFormat* format)"
CGxDeviceD3d__DeviceCreate 00690830 f end=00690897 type="int32_t __thiscall func(CGxDeviceD3d* this, void* hwnd, CGxFormat* format)"
CGxDeviceD3d__Sub69FAA0 0069FAA0 f end=0069FAFE type="int32_t __thiscall func(CGxDeviceD3d* this, D3DFORMAT format)"
CGxDeviceD3d__ICreateD3dVB 0069FB00 f end=0069FB68 type="LPDIRECT3DVERTEXBUFFER9 __thiscall func(EGxPoolUsage usage, uint32_t size)"
@ -97,7 +97,7 @@ CGxDeviceD3d__CapsWindowSize 006A5A00 f end=006A5A25 type="void __thiscall func(
CGxDeviceD3d__IXformSetWorld 006A5A30 f end=006A5A92 type="void __thiscall func(CGxDeviceD3d* this)"
CGxDeviceD3d__IXformSetTex 006A5AA0 f end=006A5C65 type="void __thiscall func(CGxDeviceD3d* this, uint32_t tmu)"
CGxDeviceD3d__IBindPixelShader 006A5C70 f end=006A5D48 type="void __thiscall func(CGxDeviceD3d* this, CGxShader* ps)"
CGxDeviceD3d__IShaderReload 006A5D50 f end=006A5E07 type="void __thiscall func(CGxDeviceD3d* this, CGxShader* shader, const char* a2, const char* a3)"
CGxDeviceD3d__IShaderReload 006A5D50 f end=006A5E07 type="void __thiscall func(CGxDeviceD3d* this, CGxShader* shader, char* a2, char* a3)"
CGxDeviceD3d__IShaderCreate 006A5E10 f end=006A5E36 type="void __thiscall func(CGxDeviceD3d* this, CGxShader* shader)"
CGxDeviceD3d__IReleaseD3dShaders 006A5E40 f end=006A5EEC type="void __thiscall func(CGxDeviceD3d* this, int32_t freeShaders)"
CGxDeviceD3d__SceneClear 006A74B0 f end=006A7538 type="void __thiscall func(CGxDeviceD3d* this, uint32_t mask, CImVector color)"

View file

@ -1,10 +1,17 @@
luaO_fb2int 0084D3D0 f end=0084D3ED
luaO_fb2int 0084D3D0 f end=0084D3ED type="int32_t __stdcall func(uint32_t x)"
luaO_log2 0084D3F0 f end=0084D418 type="int32_t __stdcall func(uint32_t x)"
luaO_rawequalObj 0084D420 f end=0084D467
luaO_pushvfstring 0084D580 f end=0084D7C6
luaO_rawequalObj 0084D420 f end=0084D467 type="bool __stdcall func(TValue* t1, TValue* t2)"
luaO_pushvfstring 0084D580 f end=0084D7C6 type="char* __stdcall func(lua_State* L, char* fmt, va_list argp)"
pushstr 0084D520 f end=0084D57F type="void __usercall func(lua_State* L@<esi>, char* str@<ecx>)"
luaO_chunkid 0084D860 f end=0084D9B2 type="void __stdcall func(char* out, char* src, size_t bufflen)"
index2adr 0084D9C0 f end=0084DA48 type="TValue* __usercall func@<eax>(lua_State* L@<ecx>, int32_t idx@<eax>)"
luaA_pushobject 0084DA50 f end=0084DAA8
luaV_tostring 00856EA0 f end=00856F0F type="int32_t __stdcall func(lua_State* L, StkId obj)"
luaA_pushobject 0084DA50 f end=0084DAA8 type="void __stdcall func(lua_State* L, TValue* o)"
luaG_concaterror 00850BF0 f end=00850C13 type="void __stdcall func(lua_State* L, StkId p1, StkId p2)"
luaG_typeerror 00850B60 f end=00850BEC type="void __stdcall func(lua_State* L, TValue* o, char* op)"
getobjname 008505A0 f end=008506F9 type="char* __usercall func@<eax>(lua_State* L, CallInfo* ci, int32_t stackpos@<eax>, char** name)"
symbexec 00850130 f end=0085050D type="Instruction __stdcall func(Proto* pt, int32_t lastpc, int32_t reg)"
checkArgMode 008500E0 f end=0085012C
lua_checkstack 0084DAB0 f end=0084DB06
lua_xmove 0084DB10 f end=0084DB90
lua_newthread 0084DB90 f end=0084DBD0

View file

@ -3,3 +3,7 @@ luaO_nilobject_ 00A46F78 l type="TValue"
lua_gctag 00D413AC l type="int32_t"
dummynode_ 00A48280 l type="Node"
log_2 00A46F88 l type="lu_byte[256]"
lua_taintexpected 00D413A0 l type="int32_t"
lua_taintedclosure 00D413A4 l type="int32_t"
luaT_typenames 00A48208 l type="char*[11]"
luaP_opmodes 00A484B4 l type="lu_byte[38]"

View file

@ -1,3 +1,3 @@
NvApi__s_initialized 00B2376C l
NvAPI__s_initialized 00B2376C l
result 00B23770 l type="int32_t"
NvApi__s_interface_table 00B23778 l type="NvApi__InterfaceTable[253]"
NvAPI__s_interface_table 00B23778 l type="NvAPI_InterfaceTable[253]"

View file

@ -41,7 +41,7 @@ OsGetExePath 0086BEA0 f end=0086BEBE
OsGuiSetWindowTitle 0086C650 f end=0086C696
OsGuiGetWindow 0086C6A0 f end=0086C6CE
OsGuiSetGxWindow 0086C6D0 f end=0086C6DD
OsGuiMessageBox 0086C6E0 f end=0086C7D0 type="int32_t __stdcall func(void* parentWindow, int32_t style, const char* message, const char* title)"
OsGuiMessageBox 0086C6E0 f end=0086C7D0 type="int32_t __stdcall func(void* parentWindow, int32_t style, char* message, char* title)"
OsIMEGetClauseInfo 0086CDB0 f end=0086CF84
OsIMEEnable 0086CF90 f end=0086CFE2
OsIMEInitialize 0086D0A0 f end=0086D0B8

View file

@ -6,7 +6,7 @@ CSimpleFontString__GetNumCharsWithinWidth 00482510 f end=004825D8
CSimpleFontString__GetNumCharsWithinWidthFromEnd 004825E0 f end=004826A8
CSimpleFontString__AddAnimTranslation 00482720 f end=00482764
CSimpleFontString__SetFont 00483750 f end=0048388A
CSimpleFontString__SetText 00483910 f end=00483A3D type="void __thiscall func(CSimpleFontString* this, char* a1, int32_t a2)"
CSimpleFontString__SetText 00483910 f end=00483A3D ; type="void __thiscall func(CSimpleFontString* this, char* a1, int32_t a2)"
CSimpleFontString__GetDisplayText 00483A40 f end=00483C3C
CSimpleFontString__SetJustificationOffset 00483C40 f end=00483CC8
CSimpleFontString__AddShadow 00483CD0 f end=00483DCF

View file

@ -39,7 +39,7 @@ SSetCurrentProcessAffinityMask 0076FE00 f end=0076FE18
SCreateProcess 00770290 f end=00770397
ILoadValue 007703A0 f end=00770483 type="int32_t __usercall func@<eax>(void* parentKey, char* subKeyName@<eax>, char* valuename, uint32_t* datatype, uint8_t* buffer@<ebx>, uint32_t bytes@<edi>, uint32_t* bytesread@<ecx>)"
InternalLoadEntry 00770490 f end=00770575 type="int32_t __usercall func@<eax>(char* keyname, char* valuename, uint32_t flags, uint32_t* datatype, void* buffer, uint32_t bytes, uint32_t* bytesread@<esi>)"
InternalSaveEntry 00770580 f end=00770719 type="int32_t __usercall func@<eax>(char* keyname, char* valuename, uint32_t flags@<ebx>, uint32_t datatype, const void* buffer, uint32_t bytes@<edi>)"
InternalSaveEntry 00770580 f end=00770719 type="int32_t __usercall func@<eax>(char* keyname, char* valuename, uint32_t flags@<ebx>, uint32_t datatype, void* buffer, uint32_t bytes@<edi>)"
SRegLoadString 00770720 f end=0077083B
SRegLoadValue 00770840 f end=007708E9 type="int32_t __stdcall func(char* keyname, char* valuename, uint32_t flags, uint32_t* value)"
SRegSaveString 007708F0 f end=0077099C
@ -60,9 +60,9 @@ StormInitialize 007739E0 f end=007739F4
StormDestroy 00773A00 f end=00773A2F
StormSetOption 00773A80 f end=00773C81 type="int32_t __stdcall func(int optname, void* optval, uint32_t optlen)"
SCritSect__constructor 00774620 f end=0077462E type="SCritSect* __thiscall func(SCritSect* this)"
SCritSect__destructor 00774630 f end=00774638 type="void __thiscall func(SCritSect *this)"
SCritSect__Enter 00774640 f end=00774648 type="void __thiscall func(SCritSect *this)"
SCritSect__Leave 00774650 f end=00774658 type="void __thiscall func(SCritSect *this)"
SCritSect__destructor 00774630 f end=00774638 type="void __thiscall func(SCritSect* this)"
SCritSect__Enter 00774640 f end=00774648 type="void __thiscall func(SCritSect* this)"
SCritSect__Leave 00774650 f end=00774658 type="void __thiscall func(SCritSect* this)"
SSyncObject__Valid 00774680 f end=00774688
SSyncObject__Wait 00774690 f end=007746A4
SEvent__Set 00774720 f end=0077472A

View file

@ -38,7 +38,7 @@ C33Matrix__Rotation 004C5820 f end=004C5932
C33Matrix__Rotate 004C5940 f end=004C5984
TSGrowableArray_C2Vector__SetCount 0057FDD0 f end=0057FE93 type="void __thiscall func(TSGrowableArray_C2Vector* this, uint32_t count)"
TSGrowableArray_CImVector__SetCount 00616CA0 f end=00616D07 type="void __thiscall func(TSGrowableArray_CImVector* this, uint32_t count)"
C44Matrix__Inverse 006A43A0 f type="C44Matrix* __thiscall func(C44Matrix *this, C44Matrix* __return_ptr result)"
C44Matrix__Inverse 006A43A0 f type="C44Matrix* __thiscall func(C44Matrix* this, C44Matrix* __return_ptr result)"
CFacet__Set 007912C0 f end=00791378
C4Quaternion__Slerp 00982460 f end=0098256C ; C4Quaternion::Slerp(float, C4Quaternion const&, C4Quaternion const&)
C4Quaternion__Nlerp 00982630 f end=0098269F ; C4Quaternion::Nlerp(float, C4Quaternion const&, C4Quaternion const&)

View file

@ -22,7 +22,7 @@ TextureFreeMippedImg 004B7300 f end=004B73D9 type="void func(MipBits* image)"
LoadTgaMips 004B78A0 f end=004B7AA0 type="int32_t __usercall func@<eax>(char* ext@<eax>, char* filename, int32_t a3, MipBits** mipBits, uint32_t* width, uint32_t* height, PIXEL_FORMAT* texFormat, int32_t* isOpaque@<ecx>, uint32_t* alphaBits, PIXEL_FORMAT* dataFormat)"
TextureInitialize 004B7F80 f end=004B7FF7
LoadBlpMips 004B8070 f end=004B81CE type="int32_t __usercall func@<eax>(char* ext@<eax>, char* filename@<ebx>, int32_t a3, MipBits** mipBits, uint32_t* width, uint32_t* height, uint32_t* isOpaque, uint32_t* alphaBits, PIXEL_FORMAT* dataFormat)"
TextureLoadImage 004B81D0 f end=004B8385 type="MipBits* func(const char* filename, uint32_t* width, uint32_t* height, PIXEL_FORMAT* dataFormat, int32_t* isOpaque, CStatus* status, uint32_t* alphaBits, int32_t a8)"
TextureLoadImage 004B81D0 f end=004B8385 type="MipBits* __stdcall func(char* filename, uint32_t* width, uint32_t* height, PIXEL_FORMAT* dataFormat, int32_t* isOpaque, CStatus* status, uint32_t* alphaBits, int32_t a8)"
TextureCreate 004B8C80 f end=004B8D6A
TextureCreate 004B9200 f end=004B9235
TextureCreateSolid 004B9550 f end=004B95B0
@ -67,7 +67,7 @@ CBLPFile__DecompPalARGB565DitherFloydSteinberg 006AF140 f end=006AF33F type="voi
CBLPFile__DecompPalARGB2565DitherFloydSteinberg 006AF340 f end=006AF65D type="void __thiscall func(CBLPFile* this, uint8_t* data, void* tempbuffer, uint32_t width, uint32_t height)"
CBLPFile__Pixels 006AF6A0 f end=006AF6D1 type="uint32_t __thiscall func(CBLPFile* this, uint32_t mipLevel)"
CBLPFile__Unlock 006AF6E0 f end=006AF728
CBLPFile__GetFormatSize 006AF730 f end=006AF7E9 type="int32_t __thiscall func(CBLPFile *this, PIXEL_FORMAT format, uint32_t mipLevel, uint32_t* size, uint32_t* stride)"
CBLPFile__GetFormatSize 006AF730 f end=006AF7E9 type="int32_t __thiscall func(CBLPFile* this, PIXEL_FORMAT format, uint32_t mipLevel, uint32_t* size, uint32_t* stride)"
CBLPFile__DecompPal 006AF810 f end=006AF984 type="int32_t __thiscall func(CBLPFile* this, PIXEL_FORMAT format, uint32_t mipLevel, uint8_t* data, void* tempBuffer)"
CBLPFile__Lock 006AF990 f end=006AFB55
CBLPFile__Lock2 006AFCE0 f end=006AFF06 type="int32_t __thiscall func(CBLPFile* this, char* fileName, PIXEL_FORMAT format, uint32_t mipLevel, unsigned char* data, uint32_t* stride)"