1
0
mirror of https://github.com/FunkyFr3sh/cnc-ddraw.git synced 2025-03-24 17:49:52 +01:00

fix for fullscreen bug with auto renderer

This commit is contained in:
FunkyFr3sh 2018-06-26 18:02:03 +02:00
parent 4ea226b743
commit 0b12de90e2
3 changed files with 16 additions and 3 deletions

View File

@ -24,6 +24,8 @@
#define CUTSCENE_WIDTH 640 #define CUTSCENE_WIDTH 640
#define CUTSCENE_HEIGHT 400 #define CUTSCENE_HEIGHT 400
#define WM_AUTORENDERER WM_USER+111
extern char OpenglVersion[]; extern char OpenglVersion[];
struct IDirectDrawImpl; struct IDirectDrawImpl;

View File

@ -619,6 +619,14 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
return 0; return 0;
} }
break; break;
case WM_AUTORENDERER:
{
mouse_unlock();
ShowWindow(ddraw->hWnd, SW_MINIMIZE);
ShowWindow(ddraw->hWnd, SW_RESTORE);
mouse_lock();
return 0;
}
case WM_NCLBUTTONDBLCLK: case WM_NCLBUTTONDBLCLK:
{ {
ToggleFullscreen(); ToggleFullscreen();

View File

@ -56,17 +56,20 @@ BOOL detect_cutscene()
DWORD WINAPI render_soft_main(void) DWORD WINAPI render_soft_main(void)
{ {
Sleep(500);
DWORD warningEndTick = timeGetTime() + (15 * 1000); DWORD warningEndTick = timeGetTime() + (15 * 1000);
char warningText[512] = { 0 }; char warningText[512] = { 0 };
if (OpenglVersion[0]) if (OpenglVersion[0])
{ {
if (!ddraw->windowed)
PostMessage(ddraw->hWnd, WM_AUTORENDERER, 0, 0);
snprintf( snprintf(
warningText, sizeof(warningText), warningText, sizeof(warningText),
"-WARNING- Using slow software rendering, please update your graphics card driver (%s)", "-WARNING- Using slow software rendering, please update your graphics card driver (%s)",
strlen(OpenglVersion) > 10 ? "" : OpenglVersion); strlen(OpenglVersion) > 10 ? "" : OpenglVersion);
} }
else
Sleep(500);
DWORD tick_start = 0; DWORD tick_start = 0;
DWORD tick_end = 0; DWORD tick_end = 0;
@ -95,7 +98,7 @@ DWORD WINAPI render_soft_main(void)
{ {
snprintf( snprintf(
debugText, sizeof(debugText), debugText, sizeof(debugText),
"FPS: %lu | Time: %2.2f ms", "FPS: %lu | Time: %2.2f ms ",
frame_count, frameTime); frame_count, frameTime);
frame_count = 0; frame_count = 0;