From 0a02e6f34097b3387c7e5cbecff6d3e8e12e2135 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Fonseca?= Date: Fri, 3 Aug 2012 19:56:23 +0100 Subject: [PATCH] Process window events on d3dretrace. --- retrace/d3dretrace.hpp | 3 +++ retrace/d3dretrace.py | 4 ++++ retrace/d3dretrace_ws.cpp | 26 ++++++++++++++++++++++++++ 3 files changed, 33 insertions(+) diff --git a/retrace/d3dretrace.hpp b/retrace/d3dretrace.hpp index c1bc0cd..b552c0b 100644 --- a/retrace/d3dretrace.hpp +++ b/retrace/d3dretrace.hpp @@ -53,6 +53,9 @@ createWindow(int width, int height); void resizeWindow(HWND hWnd, int width, int height); +bool +processEvents(void); + } /* namespace d3dretrace */ diff --git a/retrace/d3dretrace.py b/retrace/d3dretrace.py index aed586e..ddd37b9 100644 --- a/retrace/d3dretrace.py +++ b/retrace/d3dretrace.py @@ -72,6 +72,10 @@ class D3DRetracer(Retracer): Retracer.invokeInterfaceMethod(self, interface, method) + # process events after presents + if method.name == 'Present': + print r' d3dretrace::processEvents();' + # check errors if str(method.type) == 'HRESULT': print r' if (FAILED(_result)) {' diff --git a/retrace/d3dretrace_ws.cpp b/retrace/d3dretrace_ws.cpp index b8c29e8..42bd0ab 100644 --- a/retrace/d3dretrace_ws.cpp +++ b/retrace/d3dretrace_ws.cpp @@ -37,6 +37,13 @@ WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { MINMAXINFO *pMMI; switch (uMsg) { + case WM_KEYDOWN: + switch (wParam) { + case VK_ESCAPE: + PostMessage(hWnd, WM_CLOSE, 0, 0); + break; + } + break; case WM_GETMINMAXINFO: // Allow to create a window bigger than the desktop pMMI = (MINMAXINFO *)lParam; @@ -45,6 +52,9 @@ WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) pMMI->ptMaxTrackSize.x = 60000; pMMI->ptMaxTrackSize.y = 60000; break; + case WM_CLOSE: + exit(0); + break; default: break; } @@ -121,5 +131,21 @@ resizeWindow(HWND hWnd, int width, int height) { } +bool +processEvents(void) { + MSG uMsg; + while (PeekMessage(&uMsg, NULL, 0, 0, PM_REMOVE)) { + if (uMsg.message == WM_QUIT) { + return false; + } + + if (!TranslateAccelerator(uMsg.hwnd, NULL, &uMsg)) { + TranslateMessage(&uMsg); + DispatchMessage(&uMsg); + } + } + return true; +} + } /* namespace d3dretrace */ -- 2.43.0