From 6d33408da6bc8c9a0f5a34a09e53915b22b8ff5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Thu, 5 Dec 2024 10:13:25 +0100 Subject: [PATCH] Move the state tab definitions to GPU/Debugger --- GPU/Debugger/State.cpp | 186 +++++++++++++++++++++++++++++ GPU/Debugger/State.h | 19 +++ UI/ImDebugger/ImGe.cpp | 2 + Windows/GEDebugger/TabState.cpp | 203 +------------------------------- Windows/GEDebugger/TabState.h | 2 +- 5 files changed, 214 insertions(+), 198 deletions(-) diff --git a/GPU/Debugger/State.cpp b/GPU/Debugger/State.cpp index d875536cf7..efa4c6cea0 100644 --- a/GPU/Debugger/State.cpp +++ b/GPU/Debugger/State.cpp @@ -6,6 +6,192 @@ #include "GPU/Common/GPUDebugInterface.h" #include "GPU/GeDisasm.h" +const TabStateRow g_stateFlagsRows[] = { + { "Lighting enable", GE_CMD_LIGHTINGENABLE, CMD_FMT_FLAG }, + { "Light 0 enable", GE_CMD_LIGHTENABLE0, CMD_FMT_FLAG }, + { "Light 1 enable", GE_CMD_LIGHTENABLE1, CMD_FMT_FLAG }, + { "Light 2 enable", GE_CMD_LIGHTENABLE2, CMD_FMT_FLAG }, + { "Light 3 enable", GE_CMD_LIGHTENABLE3, CMD_FMT_FLAG }, + { "Depth clamp enable", GE_CMD_DEPTHCLAMPENABLE, CMD_FMT_FLAG }, + { "Cullface enable", GE_CMD_CULLFACEENABLE, CMD_FMT_FLAG }, + { "Texture map enable", GE_CMD_TEXTUREMAPENABLE, CMD_FMT_FLAG }, + { "Fog enable", GE_CMD_FOGENABLE, CMD_FMT_FLAG }, + { "Dither enable", GE_CMD_DITHERENABLE, CMD_FMT_FLAG }, + { "Alpha blend enable", GE_CMD_ALPHABLENDENABLE, CMD_FMT_FLAG }, + { "Alpha test enable", GE_CMD_ALPHATESTENABLE, CMD_FMT_FLAG }, + { "Depth test enable", GE_CMD_ZTESTENABLE, CMD_FMT_FLAG }, + { "Stencil test enable", GE_CMD_STENCILTESTENABLE, CMD_FMT_FLAG }, + { "Antialias enable", GE_CMD_ANTIALIASENABLE, CMD_FMT_FLAG }, + { "Patch cull enable", GE_CMD_PATCHCULLENABLE, CMD_FMT_FLAG }, + { "Color test enable", GE_CMD_COLORTESTENABLE, CMD_FMT_FLAG }, + { "Logic op enable", GE_CMD_LOGICOPENABLE, CMD_FMT_FLAG }, + { "Depth write disable", GE_CMD_ZWRITEDISABLE, CMD_FMT_FLAG }, +}; +const size_t g_stateFlagsRowsSize = ARRAY_SIZE(g_stateFlagsRows); + +const TabStateRow g_stateLightingRows[] = { + { "Ambient color", GE_CMD_AMBIENTCOLOR, CMD_FMT_HEX }, + { "Ambient alpha", GE_CMD_AMBIENTALPHA, CMD_FMT_HEX }, + { "Material update", GE_CMD_MATERIALUPDATE, CMD_FMT_MATERIALUPDATE }, + { "Material emissive", GE_CMD_MATERIALEMISSIVE, CMD_FMT_HEX }, + { "Material ambient", GE_CMD_MATERIALAMBIENT, CMD_FMT_HEX }, + { "Material diffuse", GE_CMD_MATERIALDIFFUSE, CMD_FMT_HEX }, + { "Material alpha", GE_CMD_MATERIALALPHA, CMD_FMT_HEX }, + { "Material specular", GE_CMD_MATERIALSPECULAR, CMD_FMT_HEX }, + { "Mat. specular coef", GE_CMD_MATERIALSPECULARCOEF, CMD_FMT_FLOAT24 }, + { "Reverse normals", GE_CMD_REVERSENORMAL, CMD_FMT_FLAG }, + { "Shade model", GE_CMD_SHADEMODE, CMD_FMT_SHADEMODEL }, + { "Light mode", GE_CMD_LIGHTMODE, CMD_FMT_LIGHTMODE, GE_CMD_LIGHTINGENABLE }, + { "Light type 0", GE_CMD_LIGHTTYPE0, CMD_FMT_LIGHTTYPE, GE_CMD_LIGHTENABLE0 }, + { "Light type 1", GE_CMD_LIGHTTYPE1, CMD_FMT_LIGHTTYPE, GE_CMD_LIGHTENABLE1 }, + { "Light type 2", GE_CMD_LIGHTTYPE2, CMD_FMT_LIGHTTYPE, GE_CMD_LIGHTENABLE2 }, + { "Light type 3", GE_CMD_LIGHTTYPE3, CMD_FMT_LIGHTTYPE, GE_CMD_LIGHTENABLE3 }, + { "Light pos 0", GE_CMD_LX0, CMD_FMT_XYZ, GE_CMD_LIGHTENABLE0, GE_CMD_LY0, GE_CMD_LZ0 }, + { "Light pos 1", GE_CMD_LX1, CMD_FMT_XYZ, GE_CMD_LIGHTENABLE1, GE_CMD_LY1, GE_CMD_LZ1 }, + { "Light pos 2", GE_CMD_LX2, CMD_FMT_XYZ, GE_CMD_LIGHTENABLE2, GE_CMD_LY2, GE_CMD_LZ2 }, + { "Light pos 3", GE_CMD_LX3, CMD_FMT_XYZ, GE_CMD_LIGHTENABLE3, GE_CMD_LY3, GE_CMD_LZ3 }, + { "Light dir 0", GE_CMD_LDX0, CMD_FMT_XYZ, GE_CMD_LIGHTENABLE0, GE_CMD_LDY0, GE_CMD_LDZ0 }, + { "Light dir 1", GE_CMD_LDX1, CMD_FMT_XYZ, GE_CMD_LIGHTENABLE1, GE_CMD_LDY1, GE_CMD_LDZ1 }, + { "Light dir 2", GE_CMD_LDX2, CMD_FMT_XYZ, GE_CMD_LIGHTENABLE2, GE_CMD_LDY2, GE_CMD_LDZ2 }, + { "Light dir 3", GE_CMD_LDX3, CMD_FMT_XYZ, GE_CMD_LIGHTENABLE3, GE_CMD_LDY3, GE_CMD_LDZ3 }, + { "Light att 0", GE_CMD_LKA0, CMD_FMT_XYZ, GE_CMD_LIGHTENABLE0, GE_CMD_LKB0, GE_CMD_LKC0 }, + { "Light att 1", GE_CMD_LKA1, CMD_FMT_XYZ, GE_CMD_LIGHTENABLE1, GE_CMD_LKB1, GE_CMD_LKC1 }, + { "Light att 2", GE_CMD_LKA2, CMD_FMT_XYZ, GE_CMD_LIGHTENABLE2, GE_CMD_LKB2, GE_CMD_LKC2 }, + { "Light att 3", GE_CMD_LKA3, CMD_FMT_XYZ, GE_CMD_LIGHTENABLE3, GE_CMD_LKB3, GE_CMD_LKC3 }, + { "Lightspot coef 0", GE_CMD_LKS0, CMD_FMT_FLOAT24, GE_CMD_LIGHTENABLE0 }, + { "Lightspot coef 1", GE_CMD_LKS1, CMD_FMT_FLOAT24, GE_CMD_LIGHTENABLE1 }, + { "Lightspot coef 2", GE_CMD_LKS2, CMD_FMT_FLOAT24, GE_CMD_LIGHTENABLE2 }, + { "Lightspot coef 3", GE_CMD_LKS3, CMD_FMT_FLOAT24, GE_CMD_LIGHTENABLE3 }, + { "Light angle 0", GE_CMD_LKO0, CMD_FMT_FLOAT24, GE_CMD_LIGHTENABLE0 }, + { "Light angle 1", GE_CMD_LKO1, CMD_FMT_FLOAT24, GE_CMD_LIGHTENABLE1 }, + { "Light angle 2", GE_CMD_LKO2, CMD_FMT_FLOAT24, GE_CMD_LIGHTENABLE2 }, + { "Light angle 3", GE_CMD_LKO3, CMD_FMT_FLOAT24, GE_CMD_LIGHTENABLE3 }, + { "Light ambient 0", GE_CMD_LAC0, CMD_FMT_HEX, GE_CMD_LIGHTENABLE0 }, + { "Light diffuse 0", GE_CMD_LDC0, CMD_FMT_HEX, GE_CMD_LIGHTENABLE0 }, + { "Light specular 0", GE_CMD_LSC0, CMD_FMT_HEX, GE_CMD_LIGHTENABLE0 }, + { "Light ambient 1", GE_CMD_LAC1, CMD_FMT_HEX, GE_CMD_LIGHTENABLE1 }, + { "Light diffuse 1", GE_CMD_LDC1, CMD_FMT_HEX, GE_CMD_LIGHTENABLE1 }, + { "Light specular 1", GE_CMD_LSC1, CMD_FMT_HEX, GE_CMD_LIGHTENABLE1 }, + { "Light ambient 2", GE_CMD_LAC2, CMD_FMT_HEX, GE_CMD_LIGHTENABLE2 }, + { "Light diffuse 2", GE_CMD_LDC2, CMD_FMT_HEX, GE_CMD_LIGHTENABLE2 }, + { "Light specular 2", GE_CMD_LSC2, CMD_FMT_HEX, GE_CMD_LIGHTENABLE2 }, + { "Light ambient 3", GE_CMD_LAC3, CMD_FMT_HEX, GE_CMD_LIGHTENABLE3 }, + { "Light diffuse 3", GE_CMD_LDC3, CMD_FMT_HEX, GE_CMD_LIGHTENABLE3 }, + { "Light specular 3", GE_CMD_LSC3, CMD_FMT_HEX, GE_CMD_LIGHTENABLE3 }, +}; +const size_t g_stateLightingRowsSize = ARRAY_SIZE(g_stateLightingRows); + +const TabStateRow g_stateTextureRows[] = { + { "Texture L0 addr", GE_CMD_TEXADDR0, CMD_FMT_PTRWIDTH, GE_CMD_TEXTUREMAPENABLE, GE_CMD_TEXBUFWIDTH0 }, + { "Texture L0 size", GE_CMD_TEXSIZE0, CMD_FMT_TEXSIZE, GE_CMD_TEXTUREMAPENABLE }, + { "Tex format", GE_CMD_TEXFORMAT, CMD_FMT_TEXFMT, GE_CMD_TEXTUREMAPENABLE }, + { "Tex CLUT", GE_CMD_CLUTADDR, CMD_FMT_PTRWIDTH, GE_CMD_TEXTUREMAPENABLE, GE_CMD_CLUTADDRUPPER }, + { "Tex CLUT format", GE_CMD_CLUTFORMAT, CMD_FMT_CLUTFMT, GE_CMD_TEXTUREMAPENABLE }, + + { "Tex U scale", GE_CMD_TEXSCALEU, CMD_FMT_FLOAT24, GE_CMD_TEXTUREMAPENABLE }, + { "Tex V scale", GE_CMD_TEXSCALEV, CMD_FMT_FLOAT24, GE_CMD_TEXTUREMAPENABLE }, + { "Tex U offset", GE_CMD_TEXOFFSETU, CMD_FMT_FLOAT24, GE_CMD_TEXTUREMAPENABLE }, + { "Tex V offset", GE_CMD_TEXOFFSETV, CMD_FMT_FLOAT24, GE_CMD_TEXTUREMAPENABLE }, + { "Tex mapping mode", GE_CMD_TEXMAPMODE, CMD_FMT_TEXMAPMODE, GE_CMD_TEXTUREMAPENABLE }, + { "Tex shade srcs", GE_CMD_TEXSHADELS, CMD_FMT_TEXSHADELS, GE_CMD_TEXTUREMAPENABLE }, + { "Tex func", GE_CMD_TEXFUNC, CMD_FMT_TEXFUNC, GE_CMD_TEXTUREMAPENABLE }, + { "Tex env color", GE_CMD_TEXENVCOLOR, CMD_FMT_HEX, GE_CMD_TEXTUREMAPENABLE }, + { "Tex mode", GE_CMD_TEXMODE, CMD_FMT_TEXMODE, GE_CMD_TEXTUREMAPENABLE }, + { "Tex filtering", GE_CMD_TEXFILTER, CMD_FMT_TEXFILTER, GE_CMD_TEXTUREMAPENABLE }, + { "Tex wrapping", GE_CMD_TEXWRAP, CMD_FMT_TEXWRAP, GE_CMD_TEXTUREMAPENABLE }, + { "Tex level/bias", GE_CMD_TEXLEVEL, CMD_FMT_TEXLEVEL, GE_CMD_TEXTUREMAPENABLE }, + { "Tex lod slope", GE_CMD_TEXLODSLOPE, CMD_FMT_FLOAT24, GE_CMD_TEXTUREMAPENABLE }, + { "Texture L1 addr", GE_CMD_TEXADDR1, CMD_FMT_PTRWIDTH, GE_CMD_TEXTUREMAPENABLE, GE_CMD_TEXBUFWIDTH1 }, + { "Texture L2 addr", GE_CMD_TEXADDR2, CMD_FMT_PTRWIDTH, GE_CMD_TEXTUREMAPENABLE, GE_CMD_TEXBUFWIDTH2 }, + { "Texture L3 addr", GE_CMD_TEXADDR3, CMD_FMT_PTRWIDTH, GE_CMD_TEXTUREMAPENABLE, GE_CMD_TEXBUFWIDTH3 }, + { "Texture L4 addr", GE_CMD_TEXADDR4, CMD_FMT_PTRWIDTH, GE_CMD_TEXTUREMAPENABLE, GE_CMD_TEXBUFWIDTH4 }, + { "Texture L5 addr", GE_CMD_TEXADDR5, CMD_FMT_PTRWIDTH, GE_CMD_TEXTUREMAPENABLE, GE_CMD_TEXBUFWIDTH5 }, + { "Texture L6 addr", GE_CMD_TEXADDR6, CMD_FMT_PTRWIDTH, GE_CMD_TEXTUREMAPENABLE, GE_CMD_TEXBUFWIDTH6 }, + { "Texture L7 addr", GE_CMD_TEXADDR7, CMD_FMT_PTRWIDTH, GE_CMD_TEXTUREMAPENABLE, GE_CMD_TEXBUFWIDTH7 }, + { "Texture L1 size", GE_CMD_TEXSIZE1, CMD_FMT_TEXSIZE, GE_CMD_TEXTUREMAPENABLE }, + { "Texture L2 size", GE_CMD_TEXSIZE2, CMD_FMT_TEXSIZE, GE_CMD_TEXTUREMAPENABLE }, + { "Texture L3 size", GE_CMD_TEXSIZE3, CMD_FMT_TEXSIZE, GE_CMD_TEXTUREMAPENABLE }, + { "Texture L4 size", GE_CMD_TEXSIZE4, CMD_FMT_TEXSIZE, GE_CMD_TEXTUREMAPENABLE }, + { "Texture L5 size", GE_CMD_TEXSIZE5, CMD_FMT_TEXSIZE, GE_CMD_TEXTUREMAPENABLE }, + { "Texture L6 size", GE_CMD_TEXSIZE6, CMD_FMT_TEXSIZE, GE_CMD_TEXTUREMAPENABLE }, + { "Texture L7 size", GE_CMD_TEXSIZE7, CMD_FMT_TEXSIZE, GE_CMD_TEXTUREMAPENABLE }, +}; +const size_t g_stateTextureRowsSize = ARRAY_SIZE(g_stateTextureRows); + +const TabStateRow g_stateSettingsRows[] = { + { "Framebuffer", GE_CMD_FRAMEBUFPTR, CMD_FMT_PTRWIDTH, 0, GE_CMD_FRAMEBUFWIDTH }, + { "Framebuffer format", GE_CMD_FRAMEBUFPIXFORMAT, CMD_FMT_TEXFMT }, + { "Depthbuffer", GE_CMD_ZBUFPTR, CMD_FMT_PTRWIDTH, 0, GE_CMD_ZBUFWIDTH }, + { "Viewport Scale", GE_CMD_VIEWPORTXSCALE, CMD_FMT_XYZ, 0, GE_CMD_VIEWPORTYSCALE, GE_CMD_VIEWPORTZSCALE }, + { "Viewport Offset", GE_CMD_VIEWPORTXCENTER, CMD_FMT_XYZ, 0, GE_CMD_VIEWPORTYCENTER, GE_CMD_VIEWPORTZCENTER }, + { "Scissor", GE_CMD_SCISSOR1, CMD_FMT_XYXY, 0, GE_CMD_SCISSOR2 }, + { "Region", GE_CMD_REGION1, CMD_FMT_XYXY, 0, GE_CMD_REGION2 }, + { "Color test", GE_CMD_COLORTEST, CMD_FMT_COLORTEST, GE_CMD_COLORTESTENABLE, GE_CMD_COLORREF, GE_CMD_COLORTESTMASK }, + { "Alpha test", GE_CMD_ALPHATEST, CMD_FMT_ALPHATEST, GE_CMD_ALPHATESTENABLE }, + { "Clear mode", GE_CMD_CLEARMODE, CMD_FMT_CLEARMODE }, + { "Stencil test", GE_CMD_STENCILTEST, CMD_FMT_STENCILTEST, GE_CMD_STENCILTESTENABLE }, + { "Stencil test op", GE_CMD_STENCILOP, CMD_FMT_STENCILOP, GE_CMD_STENCILTESTENABLE }, + { "Depth test", GE_CMD_ZTEST, CMD_FMT_ZTEST, GE_CMD_ZTESTENABLE }, + { "RGB mask", GE_CMD_MASKRGB, CMD_FMT_HEX }, + { "Stencil/alpha mask", GE_CMD_MASKALPHA, CMD_FMT_HEX }, + { "Transfer src", GE_CMD_TRANSFERSRC, CMD_FMT_PTRWIDTH, 0, GE_CMD_TRANSFERSRCW }, + { "Transfer src pos", GE_CMD_TRANSFERSRCPOS, CMD_FMT_XY }, + { "Transfer dst", GE_CMD_TRANSFERDST, CMD_FMT_PTRWIDTH, 0, GE_CMD_TRANSFERDSTW }, + { "Transfer dst pos", GE_CMD_TRANSFERDSTPOS, CMD_FMT_XY }, + { "Transfer size", GE_CMD_TRANSFERSIZE, CMD_FMT_XYPLUS1 }, + { "Vertex type", GE_CMD_VERTEXTYPE, CMD_FMT_VERTEXTYPE }, + { "Offset addr", GE_CMD_OFFSETADDR, CMD_FMT_OFFSETADDR }, + { "Vertex addr", GE_CMD_VADDR, CMD_FMT_VADDR }, + { "Index addr", GE_CMD_IADDR, CMD_FMT_IADDR }, + { "Min Z", GE_CMD_MINZ, CMD_FMT_HEX }, + { "Max Z", GE_CMD_MAXZ, CMD_FMT_HEX }, + { "Offset", GE_CMD_OFFSETX, CMD_FMT_F16_XY, 0, GE_CMD_OFFSETY }, + { "Cull mode", GE_CMD_CULL, CMD_FMT_CULL, GE_CMD_CULLFACEENABLE }, + { "Alpha blend mode", GE_CMD_BLENDMODE, CMD_FMT_BLENDMODE, GE_CMD_ALPHABLENDENABLE }, + { "Blend color A", GE_CMD_BLENDFIXEDA, CMD_FMT_HEX, GE_CMD_ALPHABLENDENABLE }, + { "Blend color B", GE_CMD_BLENDFIXEDB, CMD_FMT_HEX, GE_CMD_ALPHABLENDENABLE }, + { "Logic Op", GE_CMD_LOGICOP, CMD_FMT_LOGICOP, GE_CMD_LOGICOPENABLE }, + { "Fog 1", GE_CMD_FOG1, CMD_FMT_FLOAT24, GE_CMD_FOGENABLE }, + { "Fog 2", GE_CMD_FOG2, CMD_FMT_FLOAT24, GE_CMD_FOGENABLE }, + { "Fog color", GE_CMD_FOGCOLOR, CMD_FMT_HEX, GE_CMD_FOGENABLE }, + { "Morph Weight 0", GE_CMD_MORPHWEIGHT0, CMD_FMT_FLOAT24 }, + { "Morph Weight 1", GE_CMD_MORPHWEIGHT1, CMD_FMT_FLOAT24 }, + { "Morph Weight 2", GE_CMD_MORPHWEIGHT2, CMD_FMT_FLOAT24 }, + { "Morph Weight 3", GE_CMD_MORPHWEIGHT3, CMD_FMT_FLOAT24 }, + { "Morph Weight 4", GE_CMD_MORPHWEIGHT4, CMD_FMT_FLOAT24 }, + { "Morph Weight 5", GE_CMD_MORPHWEIGHT5, CMD_FMT_FLOAT24 }, + { "Morph Weight 6", GE_CMD_MORPHWEIGHT6, CMD_FMT_FLOAT24 }, + { "Morph Weight 7", GE_CMD_MORPHWEIGHT7, CMD_FMT_FLOAT24 }, + // TODO: Format? + { "Patch division", GE_CMD_PATCHDIVISION, CMD_FMT_HEX }, + { "Patch primitive", GE_CMD_PATCHPRIMITIVE, CMD_FMT_PATCHPRIMITIVE }, + // TODO: Format? + { "Patch facing", GE_CMD_PATCHFACING, CMD_FMT_HEX, GE_CMD_PATCHCULLENABLE }, + { "Dither 0", GE_CMD_DITH0, CMD_FMT_HEX, GE_CMD_DITHERENABLE }, + { "Dither 1", GE_CMD_DITH1, CMD_FMT_HEX, GE_CMD_DITHERENABLE }, + { "Dither 2", GE_CMD_DITH2, CMD_FMT_HEX, GE_CMD_DITHERENABLE }, + { "Dither 3", GE_CMD_DITH3, CMD_FMT_HEX, GE_CMD_DITHERENABLE }, + { "Imm vertex XY", GE_CMD_VSCX, CMD_FMT_F16_XY, 0, GE_CMD_VSCY }, + { "Imm vertex Z", GE_CMD_VSCZ, CMD_FMT_HEX }, + { "Imm vertex tex STQ", GE_CMD_VTCS, CMD_FMT_XYZ, 0, GE_CMD_VTCT, GE_CMD_VTCQ }, + { "Imm vertex color0", GE_CMD_VCV, CMD_FMT_HEX }, + { "Imm vertex color1", GE_CMD_VSCV, CMD_FMT_HEX }, + { "Imm vertex fog", GE_CMD_VFC, CMD_FMT_HEX }, + // TODO: Format? + { "Imm vertex prim", GE_CMD_VAP, CMD_FMT_HEX }, +}; +const size_t g_stateSettingsRowsSize = ARRAY_SIZE(g_stateSettingsRows); + +// TODO: Commands not present in the above lists (some because they don't have meaningful values...): +// GE_CMD_PRIM, GE_CMD_BEZIER, GE_CMD_SPLINE, GE_CMD_BOUNDINGBOX, +// GE_CMD_JUMP, GE_CMD_BJUMP, GE_CMD_CALL, GE_CMD_RET, GE_CMD_END, GE_CMD_SIGNAL, GE_CMD_FINISH, +// GE_CMD_BONEMATRIXNUMBER, GE_CMD_BONEMATRIXDATA, GE_CMD_WORLDMATRIXNUMBER, GE_CMD_WORLDMATRIXDATA, +// GE_CMD_VIEWMATRIXNUMBER, GE_CMD_VIEWMATRIXDATA, GE_CMD_PROJMATRIXNUMBER, GE_CMD_PROJMATRIXDATA, +// GE_CMD_TGENMATRIXNUMBER, GE_CMD_TGENMATRIXDATA, +// GE_CMD_LOADCLUT, GE_CMD_TEXFLUSH, GE_CMD_TEXSYNC, +// GE_CMD_TRANSFERSTART, +// GE_CMD_UNKNOWN_* + void FormatStateRow(GPUDebugInterface *gpudebug, char *dest, size_t destSize, CmdFormatType fmt, u32 value, bool enabled, u32 otherValue, u32 otherValue2) { switch (fmt) { case CMD_FMT_HEX: diff --git a/GPU/Debugger/State.h b/GPU/Debugger/State.h index eeb5dae989..88fab4f595 100644 --- a/GPU/Debugger/State.h +++ b/GPU/Debugger/State.h @@ -51,4 +51,23 @@ enum CmdFormatType { class GPUDebugInterface; + +struct TabStateRow { + std::string_view title; + uint8_t cmd; + CmdFormatType fmt; + uint8_t enableCmd; + uint8_t otherCmd; + uint8_t otherCmd2; +}; + +extern const TabStateRow g_stateFlagsRows[]; +extern const TabStateRow g_stateLightingRows[]; +extern const TabStateRow g_stateTextureRows[]; +extern const TabStateRow g_stateSettingsRows[]; +extern const size_t g_stateFlagsRowsSize; +extern const size_t g_stateLightingRowsSize; +extern const size_t g_stateTextureRowsSize; +extern const size_t g_stateSettingsRowsSize; + void FormatStateRow(GPUDebugInterface *debug, char *dest, size_t destSize, CmdFormatType fmt, u32 value, bool enabled, u32 otherValue, u32 otherValue2); diff --git a/UI/ImDebugger/ImGe.cpp b/UI/ImDebugger/ImGe.cpp index 4c1cdc5b43..534a52e931 100644 --- a/UI/ImDebugger/ImGe.cpp +++ b/UI/ImDebugger/ImGe.cpp @@ -7,6 +7,8 @@ #include "Core/HLE/sceDisplay.h" #include "Core/HW/Display.h" +#include "GPU/Debugger/State.h" + void DrawFramebuffersWindow(ImConfig &cfg, FramebufferManagerCommon *framebufferManager) { ImGui::SetNextWindowSize(ImVec2(520, 600), ImGuiCond_FirstUseEver); diff --git a/Windows/GEDebugger/TabState.cpp b/Windows/GEDebugger/TabState.cpp index 984142b296..54176cc5da 100644 --- a/Windows/GEDebugger/TabState.cpp +++ b/Windows/GEDebugger/TabState.cpp @@ -59,197 +59,6 @@ enum StateValuesCols { STATEVALUES_COL_VALUE, }; -struct TabStateRow { - std::string_view title; - uint8_t cmd; - CmdFormatType fmt; - uint8_t enableCmd; - uint8_t otherCmd; - uint8_t otherCmd2; -}; - -static const TabStateRow g_stateFlagsRows[] = { - { "Lighting enable", GE_CMD_LIGHTINGENABLE, CMD_FMT_FLAG }, - { "Light 0 enable", GE_CMD_LIGHTENABLE0, CMD_FMT_FLAG }, - { "Light 1 enable", GE_CMD_LIGHTENABLE1, CMD_FMT_FLAG }, - { "Light 2 enable", GE_CMD_LIGHTENABLE2, CMD_FMT_FLAG }, - { "Light 3 enable", GE_CMD_LIGHTENABLE3, CMD_FMT_FLAG }, - { "Depth clamp enable", GE_CMD_DEPTHCLAMPENABLE, CMD_FMT_FLAG }, - { "Cullface enable", GE_CMD_CULLFACEENABLE, CMD_FMT_FLAG }, - { "Texture map enable", GE_CMD_TEXTUREMAPENABLE, CMD_FMT_FLAG }, - { "Fog enable", GE_CMD_FOGENABLE, CMD_FMT_FLAG }, - { "Dither enable", GE_CMD_DITHERENABLE, CMD_FMT_FLAG }, - { "Alpha blend enable", GE_CMD_ALPHABLENDENABLE, CMD_FMT_FLAG }, - { "Alpha test enable", GE_CMD_ALPHATESTENABLE, CMD_FMT_FLAG }, - { "Depth test enable", GE_CMD_ZTESTENABLE, CMD_FMT_FLAG }, - { "Stencil test enable", GE_CMD_STENCILTESTENABLE, CMD_FMT_FLAG }, - { "Antialias enable", GE_CMD_ANTIALIASENABLE, CMD_FMT_FLAG }, - { "Patch cull enable", GE_CMD_PATCHCULLENABLE, CMD_FMT_FLAG }, - { "Color test enable", GE_CMD_COLORTESTENABLE, CMD_FMT_FLAG }, - { "Logic op enable", GE_CMD_LOGICOPENABLE, CMD_FMT_FLAG }, - { "Depth write disable", GE_CMD_ZWRITEDISABLE, CMD_FMT_FLAG }, -}; - -static const TabStateRow g_stateLightingRows[] = { - { "Ambient color", GE_CMD_AMBIENTCOLOR, CMD_FMT_HEX }, - { "Ambient alpha", GE_CMD_AMBIENTALPHA, CMD_FMT_HEX }, - { "Material update", GE_CMD_MATERIALUPDATE, CMD_FMT_MATERIALUPDATE }, - { "Material emissive", GE_CMD_MATERIALEMISSIVE, CMD_FMT_HEX }, - { "Material ambient", GE_CMD_MATERIALAMBIENT, CMD_FMT_HEX }, - { "Material diffuse", GE_CMD_MATERIALDIFFUSE, CMD_FMT_HEX }, - { "Material alpha", GE_CMD_MATERIALALPHA, CMD_FMT_HEX }, - { "Material specular", GE_CMD_MATERIALSPECULAR, CMD_FMT_HEX }, - { "Mat. specular coef", GE_CMD_MATERIALSPECULARCOEF, CMD_FMT_FLOAT24 }, - { "Reverse normals", GE_CMD_REVERSENORMAL, CMD_FMT_FLAG }, - { "Shade model", GE_CMD_SHADEMODE, CMD_FMT_SHADEMODEL }, - { "Light mode", GE_CMD_LIGHTMODE, CMD_FMT_LIGHTMODE, GE_CMD_LIGHTINGENABLE }, - { "Light type 0", GE_CMD_LIGHTTYPE0, CMD_FMT_LIGHTTYPE, GE_CMD_LIGHTENABLE0 }, - { "Light type 1", GE_CMD_LIGHTTYPE1, CMD_FMT_LIGHTTYPE, GE_CMD_LIGHTENABLE1 }, - { "Light type 2", GE_CMD_LIGHTTYPE2, CMD_FMT_LIGHTTYPE, GE_CMD_LIGHTENABLE2 }, - { "Light type 3", GE_CMD_LIGHTTYPE3, CMD_FMT_LIGHTTYPE, GE_CMD_LIGHTENABLE3 }, - { "Light pos 0", GE_CMD_LX0, CMD_FMT_XYZ, GE_CMD_LIGHTENABLE0, GE_CMD_LY0, GE_CMD_LZ0 }, - { "Light pos 1", GE_CMD_LX1, CMD_FMT_XYZ, GE_CMD_LIGHTENABLE1, GE_CMD_LY1, GE_CMD_LZ1 }, - { "Light pos 2", GE_CMD_LX2, CMD_FMT_XYZ, GE_CMD_LIGHTENABLE2, GE_CMD_LY2, GE_CMD_LZ2 }, - { "Light pos 3", GE_CMD_LX3, CMD_FMT_XYZ, GE_CMD_LIGHTENABLE3, GE_CMD_LY3, GE_CMD_LZ3 }, - { "Light dir 0", GE_CMD_LDX0, CMD_FMT_XYZ, GE_CMD_LIGHTENABLE0, GE_CMD_LDY0, GE_CMD_LDZ0 }, - { "Light dir 1", GE_CMD_LDX1, CMD_FMT_XYZ, GE_CMD_LIGHTENABLE1, GE_CMD_LDY1, GE_CMD_LDZ1 }, - { "Light dir 2", GE_CMD_LDX2, CMD_FMT_XYZ, GE_CMD_LIGHTENABLE2, GE_CMD_LDY2, GE_CMD_LDZ2 }, - { "Light dir 3", GE_CMD_LDX3, CMD_FMT_XYZ, GE_CMD_LIGHTENABLE3, GE_CMD_LDY3, GE_CMD_LDZ3 }, - { "Light att 0", GE_CMD_LKA0, CMD_FMT_XYZ, GE_CMD_LIGHTENABLE0, GE_CMD_LKB0, GE_CMD_LKC0 }, - { "Light att 1", GE_CMD_LKA1, CMD_FMT_XYZ, GE_CMD_LIGHTENABLE1, GE_CMD_LKB1, GE_CMD_LKC1 }, - { "Light att 2", GE_CMD_LKA2, CMD_FMT_XYZ, GE_CMD_LIGHTENABLE2, GE_CMD_LKB2, GE_CMD_LKC2 }, - { "Light att 3", GE_CMD_LKA3, CMD_FMT_XYZ, GE_CMD_LIGHTENABLE3, GE_CMD_LKB3, GE_CMD_LKC3 }, - { "Lightspot coef 0", GE_CMD_LKS0, CMD_FMT_FLOAT24, GE_CMD_LIGHTENABLE0 }, - { "Lightspot coef 1", GE_CMD_LKS1, CMD_FMT_FLOAT24, GE_CMD_LIGHTENABLE1 }, - { "Lightspot coef 2", GE_CMD_LKS2, CMD_FMT_FLOAT24, GE_CMD_LIGHTENABLE2 }, - { "Lightspot coef 3", GE_CMD_LKS3, CMD_FMT_FLOAT24, GE_CMD_LIGHTENABLE3 }, - { "Light angle 0", GE_CMD_LKO0, CMD_FMT_FLOAT24, GE_CMD_LIGHTENABLE0 }, - { "Light angle 1", GE_CMD_LKO1, CMD_FMT_FLOAT24, GE_CMD_LIGHTENABLE1 }, - { "Light angle 2", GE_CMD_LKO2, CMD_FMT_FLOAT24, GE_CMD_LIGHTENABLE2 }, - { "Light angle 3", GE_CMD_LKO3, CMD_FMT_FLOAT24, GE_CMD_LIGHTENABLE3 }, - { "Light ambient 0", GE_CMD_LAC0, CMD_FMT_HEX, GE_CMD_LIGHTENABLE0 }, - { "Light diffuse 0", GE_CMD_LDC0, CMD_FMT_HEX, GE_CMD_LIGHTENABLE0 }, - { "Light specular 0", GE_CMD_LSC0, CMD_FMT_HEX, GE_CMD_LIGHTENABLE0 }, - { "Light ambient 1", GE_CMD_LAC1, CMD_FMT_HEX, GE_CMD_LIGHTENABLE1 }, - { "Light diffuse 1", GE_CMD_LDC1, CMD_FMT_HEX, GE_CMD_LIGHTENABLE1 }, - { "Light specular 1", GE_CMD_LSC1, CMD_FMT_HEX, GE_CMD_LIGHTENABLE1 }, - { "Light ambient 2", GE_CMD_LAC2, CMD_FMT_HEX, GE_CMD_LIGHTENABLE2 }, - { "Light diffuse 2", GE_CMD_LDC2, CMD_FMT_HEX, GE_CMD_LIGHTENABLE2 }, - { "Light specular 2", GE_CMD_LSC2, CMD_FMT_HEX, GE_CMD_LIGHTENABLE2 }, - { "Light ambient 3", GE_CMD_LAC3, CMD_FMT_HEX, GE_CMD_LIGHTENABLE3 }, - { "Light diffuse 3", GE_CMD_LDC3, CMD_FMT_HEX, GE_CMD_LIGHTENABLE3 }, - { "Light specular 3", GE_CMD_LSC3, CMD_FMT_HEX, GE_CMD_LIGHTENABLE3 }, -}; - -static const TabStateRow g_stateTextureRows[] = { - { "Texture L0 addr", GE_CMD_TEXADDR0, CMD_FMT_PTRWIDTH, GE_CMD_TEXTUREMAPENABLE, GE_CMD_TEXBUFWIDTH0 }, - { "Texture L0 size", GE_CMD_TEXSIZE0, CMD_FMT_TEXSIZE, GE_CMD_TEXTUREMAPENABLE }, - { "Tex format", GE_CMD_TEXFORMAT, CMD_FMT_TEXFMT, GE_CMD_TEXTUREMAPENABLE }, - { "Tex CLUT", GE_CMD_CLUTADDR, CMD_FMT_PTRWIDTH, GE_CMD_TEXTUREMAPENABLE, GE_CMD_CLUTADDRUPPER }, - { "Tex CLUT format", GE_CMD_CLUTFORMAT, CMD_FMT_CLUTFMT, GE_CMD_TEXTUREMAPENABLE }, - - { "Tex U scale", GE_CMD_TEXSCALEU, CMD_FMT_FLOAT24, GE_CMD_TEXTUREMAPENABLE }, - { "Tex V scale", GE_CMD_TEXSCALEV, CMD_FMT_FLOAT24, GE_CMD_TEXTUREMAPENABLE }, - { "Tex U offset", GE_CMD_TEXOFFSETU, CMD_FMT_FLOAT24, GE_CMD_TEXTUREMAPENABLE }, - { "Tex V offset", GE_CMD_TEXOFFSETV, CMD_FMT_FLOAT24, GE_CMD_TEXTUREMAPENABLE }, - { "Tex mapping mode", GE_CMD_TEXMAPMODE, CMD_FMT_TEXMAPMODE, GE_CMD_TEXTUREMAPENABLE }, - { "Tex shade srcs", GE_CMD_TEXSHADELS, CMD_FMT_TEXSHADELS, GE_CMD_TEXTUREMAPENABLE }, - { "Tex func", GE_CMD_TEXFUNC, CMD_FMT_TEXFUNC, GE_CMD_TEXTUREMAPENABLE }, - { "Tex env color", GE_CMD_TEXENVCOLOR, CMD_FMT_HEX, GE_CMD_TEXTUREMAPENABLE }, - { "Tex mode", GE_CMD_TEXMODE, CMD_FMT_TEXMODE, GE_CMD_TEXTUREMAPENABLE }, - { "Tex filtering", GE_CMD_TEXFILTER, CMD_FMT_TEXFILTER, GE_CMD_TEXTUREMAPENABLE }, - { "Tex wrapping", GE_CMD_TEXWRAP, CMD_FMT_TEXWRAP, GE_CMD_TEXTUREMAPENABLE }, - { "Tex level/bias", GE_CMD_TEXLEVEL, CMD_FMT_TEXLEVEL, GE_CMD_TEXTUREMAPENABLE }, - { "Tex lod slope", GE_CMD_TEXLODSLOPE, CMD_FMT_FLOAT24, GE_CMD_TEXTUREMAPENABLE }, - { "Texture L1 addr", GE_CMD_TEXADDR1, CMD_FMT_PTRWIDTH, GE_CMD_TEXTUREMAPENABLE, GE_CMD_TEXBUFWIDTH1 }, - { "Texture L2 addr", GE_CMD_TEXADDR2, CMD_FMT_PTRWIDTH, GE_CMD_TEXTUREMAPENABLE, GE_CMD_TEXBUFWIDTH2 }, - { "Texture L3 addr", GE_CMD_TEXADDR3, CMD_FMT_PTRWIDTH, GE_CMD_TEXTUREMAPENABLE, GE_CMD_TEXBUFWIDTH3 }, - { "Texture L4 addr", GE_CMD_TEXADDR4, CMD_FMT_PTRWIDTH, GE_CMD_TEXTUREMAPENABLE, GE_CMD_TEXBUFWIDTH4 }, - { "Texture L5 addr", GE_CMD_TEXADDR5, CMD_FMT_PTRWIDTH, GE_CMD_TEXTUREMAPENABLE, GE_CMD_TEXBUFWIDTH5 }, - { "Texture L6 addr", GE_CMD_TEXADDR6, CMD_FMT_PTRWIDTH, GE_CMD_TEXTUREMAPENABLE, GE_CMD_TEXBUFWIDTH6 }, - { "Texture L7 addr", GE_CMD_TEXADDR7, CMD_FMT_PTRWIDTH, GE_CMD_TEXTUREMAPENABLE, GE_CMD_TEXBUFWIDTH7 }, - { "Texture L1 size", GE_CMD_TEXSIZE1, CMD_FMT_TEXSIZE, GE_CMD_TEXTUREMAPENABLE }, - { "Texture L2 size", GE_CMD_TEXSIZE2, CMD_FMT_TEXSIZE, GE_CMD_TEXTUREMAPENABLE }, - { "Texture L3 size", GE_CMD_TEXSIZE3, CMD_FMT_TEXSIZE, GE_CMD_TEXTUREMAPENABLE }, - { "Texture L4 size", GE_CMD_TEXSIZE4, CMD_FMT_TEXSIZE, GE_CMD_TEXTUREMAPENABLE }, - { "Texture L5 size", GE_CMD_TEXSIZE5, CMD_FMT_TEXSIZE, GE_CMD_TEXTUREMAPENABLE }, - { "Texture L6 size", GE_CMD_TEXSIZE6, CMD_FMT_TEXSIZE, GE_CMD_TEXTUREMAPENABLE }, - { "Texture L7 size", GE_CMD_TEXSIZE7, CMD_FMT_TEXSIZE, GE_CMD_TEXTUREMAPENABLE }, -}; - -static const TabStateRow g_stateSettingsRows[] = { - { "Framebuffer", GE_CMD_FRAMEBUFPTR, CMD_FMT_PTRWIDTH, 0, GE_CMD_FRAMEBUFWIDTH }, - { "Framebuffer format", GE_CMD_FRAMEBUFPIXFORMAT, CMD_FMT_TEXFMT }, - { "Depthbuffer", GE_CMD_ZBUFPTR, CMD_FMT_PTRWIDTH, 0, GE_CMD_ZBUFWIDTH }, - { "Viewport Scale", GE_CMD_VIEWPORTXSCALE, CMD_FMT_XYZ, 0, GE_CMD_VIEWPORTYSCALE, GE_CMD_VIEWPORTZSCALE }, - { "Viewport Offset", GE_CMD_VIEWPORTXCENTER, CMD_FMT_XYZ, 0, GE_CMD_VIEWPORTYCENTER, GE_CMD_VIEWPORTZCENTER }, - { "Scissor", GE_CMD_SCISSOR1, CMD_FMT_XYXY, 0, GE_CMD_SCISSOR2 }, - { "Region", GE_CMD_REGION1, CMD_FMT_XYXY, 0, GE_CMD_REGION2 }, - { "Color test", GE_CMD_COLORTEST, CMD_FMT_COLORTEST, GE_CMD_COLORTESTENABLE, GE_CMD_COLORREF, GE_CMD_COLORTESTMASK }, - { "Alpha test", GE_CMD_ALPHATEST, CMD_FMT_ALPHATEST, GE_CMD_ALPHATESTENABLE }, - { "Clear mode", GE_CMD_CLEARMODE, CMD_FMT_CLEARMODE }, - { "Stencil test", GE_CMD_STENCILTEST, CMD_FMT_STENCILTEST, GE_CMD_STENCILTESTENABLE }, - { "Stencil test op", GE_CMD_STENCILOP, CMD_FMT_STENCILOP, GE_CMD_STENCILTESTENABLE }, - { "Depth test", GE_CMD_ZTEST, CMD_FMT_ZTEST, GE_CMD_ZTESTENABLE }, - { "RGB mask", GE_CMD_MASKRGB, CMD_FMT_HEX }, - { "Stencil/alpha mask", GE_CMD_MASKALPHA, CMD_FMT_HEX }, - { "Transfer src", GE_CMD_TRANSFERSRC, CMD_FMT_PTRWIDTH, 0, GE_CMD_TRANSFERSRCW }, - { "Transfer src pos", GE_CMD_TRANSFERSRCPOS, CMD_FMT_XY }, - { "Transfer dst", GE_CMD_TRANSFERDST, CMD_FMT_PTRWIDTH, 0, GE_CMD_TRANSFERDSTW }, - { "Transfer dst pos", GE_CMD_TRANSFERDSTPOS, CMD_FMT_XY }, - { "Transfer size", GE_CMD_TRANSFERSIZE, CMD_FMT_XYPLUS1 }, - { "Vertex type", GE_CMD_VERTEXTYPE, CMD_FMT_VERTEXTYPE }, - { "Offset addr", GE_CMD_OFFSETADDR, CMD_FMT_OFFSETADDR }, - { "Vertex addr", GE_CMD_VADDR, CMD_FMT_VADDR }, - { "Index addr", GE_CMD_IADDR, CMD_FMT_IADDR }, - { "Min Z", GE_CMD_MINZ, CMD_FMT_HEX }, - { "Max Z", GE_CMD_MAXZ, CMD_FMT_HEX }, - { "Offset", GE_CMD_OFFSETX, CMD_FMT_F16_XY, 0, GE_CMD_OFFSETY }, - { "Cull mode", GE_CMD_CULL, CMD_FMT_CULL, GE_CMD_CULLFACEENABLE }, - { "Alpha blend mode", GE_CMD_BLENDMODE, CMD_FMT_BLENDMODE, GE_CMD_ALPHABLENDENABLE }, - { "Blend color A", GE_CMD_BLENDFIXEDA, CMD_FMT_HEX, GE_CMD_ALPHABLENDENABLE }, - { "Blend color B", GE_CMD_BLENDFIXEDB, CMD_FMT_HEX, GE_CMD_ALPHABLENDENABLE }, - { "Logic Op", GE_CMD_LOGICOP, CMD_FMT_LOGICOP, GE_CMD_LOGICOPENABLE }, - { "Fog 1", GE_CMD_FOG1, CMD_FMT_FLOAT24, GE_CMD_FOGENABLE }, - { "Fog 2", GE_CMD_FOG2, CMD_FMT_FLOAT24, GE_CMD_FOGENABLE }, - { "Fog color", GE_CMD_FOGCOLOR, CMD_FMT_HEX, GE_CMD_FOGENABLE }, - { "Morph Weight 0", GE_CMD_MORPHWEIGHT0, CMD_FMT_FLOAT24 }, - { "Morph Weight 1", GE_CMD_MORPHWEIGHT1, CMD_FMT_FLOAT24 }, - { "Morph Weight 2", GE_CMD_MORPHWEIGHT2, CMD_FMT_FLOAT24 }, - { "Morph Weight 3", GE_CMD_MORPHWEIGHT3, CMD_FMT_FLOAT24 }, - { "Morph Weight 4", GE_CMD_MORPHWEIGHT4, CMD_FMT_FLOAT24 }, - { "Morph Weight 5", GE_CMD_MORPHWEIGHT5, CMD_FMT_FLOAT24 }, - { "Morph Weight 6", GE_CMD_MORPHWEIGHT6, CMD_FMT_FLOAT24 }, - { "Morph Weight 7", GE_CMD_MORPHWEIGHT7, CMD_FMT_FLOAT24 }, - // TODO: Format? - { "Patch division", GE_CMD_PATCHDIVISION, CMD_FMT_HEX }, - { "Patch primitive", GE_CMD_PATCHPRIMITIVE, CMD_FMT_PATCHPRIMITIVE }, - // TODO: Format? - { "Patch facing", GE_CMD_PATCHFACING, CMD_FMT_HEX, GE_CMD_PATCHCULLENABLE }, - { "Dither 0", GE_CMD_DITH0, CMD_FMT_HEX, GE_CMD_DITHERENABLE }, - { "Dither 1", GE_CMD_DITH1, CMD_FMT_HEX, GE_CMD_DITHERENABLE }, - { "Dither 2", GE_CMD_DITH2, CMD_FMT_HEX, GE_CMD_DITHERENABLE }, - { "Dither 3", GE_CMD_DITH3, CMD_FMT_HEX, GE_CMD_DITHERENABLE }, - { "Imm vertex XY", GE_CMD_VSCX, CMD_FMT_F16_XY, 0, GE_CMD_VSCY }, - { "Imm vertex Z", GE_CMD_VSCZ, CMD_FMT_HEX }, - { "Imm vertex tex STQ", GE_CMD_VTCS, CMD_FMT_XYZ, 0, GE_CMD_VTCT, GE_CMD_VTCQ }, - { "Imm vertex color0", GE_CMD_VCV, CMD_FMT_HEX }, - { "Imm vertex color1", GE_CMD_VSCV, CMD_FMT_HEX }, - { "Imm vertex fog", GE_CMD_VFC, CMD_FMT_HEX }, - // TODO: Format? - { "Imm vertex prim", GE_CMD_VAP, CMD_FMT_HEX }, -}; - -// TODO: Commands not present in the above lists (some because they don't have meaningful values...): -// GE_CMD_PRIM, GE_CMD_BEZIER, GE_CMD_SPLINE, GE_CMD_BOUNDINGBOX, -// GE_CMD_JUMP, GE_CMD_BJUMP, GE_CMD_CALL, GE_CMD_RET, GE_CMD_END, GE_CMD_SIGNAL, GE_CMD_FINISH, -// GE_CMD_BONEMATRIXNUMBER, GE_CMD_BONEMATRIXDATA, GE_CMD_WORLDMATRIXNUMBER, GE_CMD_WORLDMATRIXDATA, -// GE_CMD_VIEWMATRIXNUMBER, GE_CMD_VIEWMATRIXDATA, GE_CMD_PROJMATRIXNUMBER, GE_CMD_PROJMATRIXDATA, -// GE_CMD_TGENMATRIXNUMBER, GE_CMD_TGENMATRIXDATA, -// GE_CMD_LOADCLUT, GE_CMD_TEXFLUSH, GE_CMD_TEXSYNC, -// GE_CMD_TRANSFERSTART, -// GE_CMD_UNKNOWN_* - static std::vector watchList; static void ToggleWatchList(const TabStateRow &info) { @@ -537,9 +346,9 @@ void CtrlStateValues::PromptBreakpointCond(const TabStateRow &info) { } -TabStateValues::TabStateValues(const TabStateRow *rows, int rowCount, LPCSTR dialogID, HINSTANCE _hInstance, HWND _hParent) +TabStateValues::TabStateValues(const TabStateRow *rows, size_t rowCount, LPCSTR dialogID, HINSTANCE _hInstance, HWND _hParent) : Dialog(dialogID, _hInstance, _hParent) { - values = new CtrlStateValues(rows, rowCount, GetDlgItem(m_hDlg, IDC_GEDBG_VALUES)); + values = new CtrlStateValues(rows, (int)rowCount, GetDlgItem(m_hDlg, IDC_GEDBG_VALUES)); } TabStateValues::~TabStateValues() { @@ -587,19 +396,19 @@ BOOL TabStateValues::DlgProc(UINT message, WPARAM wParam, LPARAM lParam) { } TabStateFlags::TabStateFlags(HINSTANCE _hInstance, HWND _hParent) - : TabStateValues(g_stateFlagsRows, ARRAY_SIZE(g_stateFlagsRows), (LPCSTR)IDD_GEDBG_TAB_VALUES, _hInstance, _hParent) { + : TabStateValues(g_stateFlagsRows, g_stateFlagsRowsSize, (LPCSTR)IDD_GEDBG_TAB_VALUES, _hInstance, _hParent) { } TabStateLighting::TabStateLighting(HINSTANCE _hInstance, HWND _hParent) - : TabStateValues(g_stateLightingRows, ARRAY_SIZE(g_stateLightingRows), (LPCSTR)IDD_GEDBG_TAB_VALUES, _hInstance, _hParent) { + : TabStateValues(g_stateLightingRows, g_stateLightingRowsSize, (LPCSTR)IDD_GEDBG_TAB_VALUES, _hInstance, _hParent) { } TabStateSettings::TabStateSettings(HINSTANCE _hInstance, HWND _hParent) - : TabStateValues(g_stateSettingsRows, ARRAY_SIZE(g_stateSettingsRows), (LPCSTR)IDD_GEDBG_TAB_VALUES, _hInstance, _hParent) { + : TabStateValues(g_stateSettingsRows, g_stateSettingsRowsSize, (LPCSTR)IDD_GEDBG_TAB_VALUES, _hInstance, _hParent) { } TabStateTexture::TabStateTexture(HINSTANCE _hInstance, HWND _hParent) - : TabStateValues(g_stateTextureRows, ARRAY_SIZE(g_stateTextureRows), (LPCSTR)IDD_GEDBG_TAB_VALUES, _hInstance, _hParent) { + : TabStateValues(g_stateTextureRows, g_stateTextureRowsSize, (LPCSTR)IDD_GEDBG_TAB_VALUES, _hInstance, _hParent) { } TabStateWatch::TabStateWatch(HINSTANCE _hInstance, HWND _hParent) diff --git a/Windows/GEDebugger/TabState.h b/Windows/GEDebugger/TabState.h index a813b1ff6c..61428ac450 100644 --- a/Windows/GEDebugger/TabState.h +++ b/Windows/GEDebugger/TabState.h @@ -55,7 +55,7 @@ private: class TabStateValues : public Dialog { public: - TabStateValues(const TabStateRow *rows, int rowCount, LPCSTR dialogID, HINSTANCE _hInstance, HWND _hParent); + TabStateValues(const TabStateRow *rows, size_t rowCount, LPCSTR dialogID, HINSTANCE _hInstance, HWND _hParent); ~TabStateValues(); void Update() override {