diff --git a/Core/Debugger/WebSocket/GPUBufferSubscriber.cpp b/Core/Debugger/WebSocket/GPUBufferSubscriber.cpp index 915426755b..98f65231c2 100644 --- a/Core/Debugger/WebSocket/GPUBufferSubscriber.cpp +++ b/Core/Debugger/WebSocket/GPUBufferSubscriber.cpp @@ -34,12 +34,14 @@ void *WebSocketGPUBufferInit(DebuggerEventHandlerMap &map) { map["gpu.buffer.renderColor"] = &WebSocketGPUBufferRenderColor; map["gpu.buffer.renderDepth"] = &WebSocketGPUBufferRenderDepth; map["gpu.buffer.renderStencil"] = &WebSocketGPUBufferRenderStencil; + map["gpu.buffer.texture"] = &WebSocketGPUBufferTexture; + map["gpu.buffer.clut"] = &WebSocketGPUBufferClut; return nullptr; } // Note: Calls req.Respond(). Other data can be added afterward. -static bool StreamBufferToDataURI(DebuggerRequest &req, const GPUDebugBuffer &buf, bool includeAlpha) { +static bool StreamBufferToDataURI(DebuggerRequest &req, const GPUDebugBuffer &buf, bool includeAlpha, int stackWidth) { #ifdef USING_QT_UI req.Fail("Not supported on Qt yet, pull requests accepted"); return false; @@ -53,6 +55,14 @@ static bool StreamBufferToDataURI(DebuggerRequest &req, const GPUDebugBuffer &bu return false; } + if (stackWidth > 0) { + u32 totalPixels = w * h; + w = stackWidth; + while ((totalPixels % w) != 0) + --w; + h = totalPixels / w; + } + png_structp png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, nullptr, nullptr, nullptr); if (!png_ptr) { req.Fail("Internal error setting up PNG encoder (png_ptr)"); @@ -218,6 +228,9 @@ static void GenericStreamBuffer(DebuggerRequest &req, std::function