From 426958bf7bb42616ff94f77fd0f5cf734a30911a Mon Sep 17 00:00:00 2001 From: Christian Semmler Date: Tue, 22 Jul 2025 16:45:18 -0700 Subject: [PATCH] Cleanup --- ISLE/isleapp.cpp | 4 ---- .../legoomni/src/video/legovideomanager.cpp | 3 +-- LEGO1/mxdirectx/mxdirect3d.cpp | 18 ++++++++++++------ LEGO1/mxdirectx/mxdirect3d.h | 3 +-- LEGO1/mxdirectx/mxdirectdraw.cpp | 3 +-- LEGO1/mxdirectx/mxdirectdraw.h | 3 +-- LEGO1/mxdirectx/mxdirectxinfo.cpp | 2 +- .../src/d3drm/backends/opengles2/renderer.cpp | 19 +++++++++---------- miniwin/src/d3drm/d3drmrenderer.cpp | 4 ++-- miniwin/src/ddraw/ddraw.cpp | 2 +- miniwin/src/internal/d3drmrenderer.h | 2 +- .../src/internal/d3drmrenderer_opengles2.h | 7 ++----- 12 files changed, 32 insertions(+), 38 deletions(-) diff --git a/ISLE/isleapp.cpp b/ISLE/isleapp.cpp index 8dbc895b..fb397ad4 100644 --- a/ISLE/isleapp.cpp +++ b/ISLE/isleapp.cpp @@ -912,11 +912,7 @@ MxResult IsleApp::SetupWindow() #endif window = SDL_CreateWindowWithProperties(props); - SDL_SetPointerProperty(SDL_GetWindowProperties(window), ISLE_PROP_WINDOW_CREATE_VIDEO_PARAM, &m_videoParam); - MxVideoParam* p = (MxVideoParam*) - SDL_GetPointerProperty(SDL_GetWindowProperties(window), ISLE_PROP_WINDOW_CREATE_VIDEO_PARAM, nullptr); - SDL_Log("MSAA WINDOW: %p %d", p, (p)->GetMSAASamples()); if (m_exclusiveFullScreen && m_fullScreen) { SDL_DisplayMode closestMode; diff --git a/LEGO1/lego/legoomni/src/video/legovideomanager.cpp b/LEGO1/lego/legoomni/src/video/legovideomanager.cpp index 5ba926de..383c6d35 100644 --- a/LEGO1/lego/legoomni/src/video/legovideomanager.cpp +++ b/LEGO1/lego/legoomni/src/video/legovideomanager.cpp @@ -148,8 +148,7 @@ MxResult LegoVideoManager::Create(MxVideoParam& p_videoParam, MxU32 p_frequencyM p_videoParam.GetRect().GetHeight(), bits, paletteEntries, - sizeof(paletteEntries) / sizeof(paletteEntries[0]), - p_videoParam.GetMSAASamples() + sizeof(paletteEntries) / sizeof(paletteEntries[0]) )) { SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "MxDirect3D::Create failed"); goto done; diff --git a/LEGO1/mxdirectx/mxdirect3d.cpp b/LEGO1/mxdirectx/mxdirect3d.cpp index 4b727ab5..a60289cd 100644 --- a/LEGO1/mxdirectx/mxdirect3d.cpp +++ b/LEGO1/mxdirectx/mxdirect3d.cpp @@ -1,5 +1,7 @@ #include "mxdirect3d.h" +#include "mxvideoparam.h" + #include // for SDL_Log #include #include @@ -41,8 +43,7 @@ BOOL MxDirect3D::Create( int height, int bpp, const PALETTEENTRY* pPaletteEntries, - int paletteEntryCount, - DWORD msaaSamples + int paletteEntryCount ) { BOOL success = FALSE; @@ -58,8 +59,7 @@ BOOL MxDirect3D::Create( height, bpp, pPaletteEntries, - paletteEntryCount, - msaaSamples + paletteEntryCount )) { goto done; } @@ -68,8 +68,14 @@ BOOL MxDirect3D::Create( goto done; } - if (msaaSamples && m_pDirect3d->QueryInterface(IID_IDirect3DMiniwin, (void**) &miniwind3d) == S_OK) { - miniwind3d->RequestMSAA(msaaSamples); + if (m_pDirect3d->QueryInterface(IID_IDirect3DMiniwin, (void**) &miniwind3d) == DD_OK) { + MxVideoParam* videoParam = (MxVideoParam*) SDL_GetPointerProperty( + SDL_GetWindowProperties(reinterpret_cast(hWnd)), + ISLE_PROP_WINDOW_CREATE_VIDEO_PARAM, + nullptr + ); + assert(videoParam); + miniwind3d->RequestMSAA(videoParam->GetMSAASamples()); } if (!D3DSetMode()) { diff --git a/LEGO1/mxdirectx/mxdirect3d.h b/LEGO1/mxdirectx/mxdirect3d.h index 30e05a88..b44c72e8 100644 --- a/LEGO1/mxdirectx/mxdirect3d.h +++ b/LEGO1/mxdirectx/mxdirect3d.h @@ -31,8 +31,7 @@ class MxDirect3D : public MxDirectDraw { int height, int bpp, const PALETTEENTRY* pPaletteEntries, - int paletteEntryCount, - DWORD msaaSamples + int paletteEntryCount ) override; // vtable+0x04 void Destroy() override; // vtable+0x08 void DestroyButNotDirectDraw() override; // vtable+0x0c diff --git a/LEGO1/mxdirectx/mxdirectdraw.cpp b/LEGO1/mxdirectx/mxdirectdraw.cpp index 2f78cf40..7ccb78c2 100644 --- a/LEGO1/mxdirectx/mxdirectdraw.cpp +++ b/LEGO1/mxdirectx/mxdirectdraw.cpp @@ -91,8 +91,7 @@ BOOL MxDirectDraw::Create( int height, int bpp, const PALETTEENTRY* pPaletteEntries, - int paletteEntryCount, - DWORD msaaSamples + int paletteEntryCount ) { assert(m_currentDevInfo); diff --git a/LEGO1/mxdirectx/mxdirectdraw.h b/LEGO1/mxdirectx/mxdirectdraw.h index 380122f1..554de189 100644 --- a/LEGO1/mxdirectx/mxdirectdraw.h +++ b/LEGO1/mxdirectx/mxdirectdraw.h @@ -33,8 +33,7 @@ class MxDirectDraw { int height, int bpp, const PALETTEENTRY* pPaletteEntries, - int paletteEntryCount, - DWORD msaaSamples + int paletteEntryCount ); // vtable+0x04 virtual void Destroy(); // vtable+0x08 virtual void DestroyButNotDirectDraw(); // vtable+0x0c diff --git a/LEGO1/mxdirectx/mxdirectxinfo.cpp b/LEGO1/mxdirectx/mxdirectxinfo.cpp index 21182cc4..c8cf2686 100644 --- a/LEGO1/mxdirectx/mxdirectxinfo.cpp +++ b/LEGO1/mxdirectx/mxdirectxinfo.cpp @@ -258,7 +258,7 @@ BOOL MxDeviceEnumerate::EnumDirectDrawCallback(LPGUID p_guid, LPSTR p_driverDesc goto done; } - result = lpDirect3d2->EnumDevices(DevicesEnumerateCallback, miniwind3d); + result = lpDirect3d2->EnumDevices(DevicesEnumerateCallback, this); if (result != DD_OK) { BuildErrorString("D3D enum devices failed: %s\n", EnumerateErrorToString(result)); diff --git a/miniwin/src/d3drm/backends/opengles2/renderer.cpp b/miniwin/src/d3drm/backends/opengles2/renderer.cpp index 0f6f26f2..6db76561 100644 --- a/miniwin/src/d3drm/backends/opengles2/renderer.cpp +++ b/miniwin/src/d3drm/backends/opengles2/renderer.cpp @@ -301,7 +301,6 @@ OpenGLES2Renderer::OpenGLES2Renderer( m_virtualWidth = width; m_virtualHeight = height; m_requestedMsaaSamples = msaaSamples; - SDL_Log("Requested MSAA %d", m_requestedMsaaSamples); ViewportTransform viewportTransform = {1.0f, 0.0f, 0.0f}; Resize(width, height, viewportTransform); @@ -640,8 +639,9 @@ void OpenGLES2Renderer::Resize(int width, int height, const ViewportTransform& v } m_colorTarget = m_depthTarget = m_msaaColorRbo = m_msaaDepthRbo = 0; - GLint samples; + GLint samples, maxSamples; glGetIntegerv(GL_SAMPLES, &samples); + glGetIntegerv(GL_MAX_SAMPLES, &maxSamples); m_useMsaa = samples > 1; if (m_useMsaa) { @@ -663,14 +663,13 @@ void OpenGLES2Renderer::Resize(int width, int height, const ViewportTransform& v } } - if (m_useMsaa) { - GLint max_samples; - glGetIntegerv(GL_MAX_SAMPLES, &max_samples); - SDL_Log("MSAA: ON! samples %d max samples %d", samples, max_samples); - } - else { - SDL_Log("MSAA: OFF! %d %d", samples, m_requestedMsaaSamples); - } + SDL_Log( + "MSAA is %s. Requested samples: %d, active samples: %d, max samples: %d", + m_useMsaa ? "on" : "off", + m_requestedMsaaSamples, + samples, + maxSamples + ); glBindFramebuffer(GL_FRAMEBUFFER, m_fbo); diff --git a/miniwin/src/d3drm/d3drmrenderer.cpp b/miniwin/src/d3drm/d3drmrenderer.cpp index 23eb671c..0cf364fb 100644 --- a/miniwin/src/d3drm/d3drmrenderer.cpp +++ b/miniwin/src/d3drm/d3drmrenderer.cpp @@ -57,13 +57,13 @@ Direct3DRMRenderer* CreateDirect3DRMRenderer( return nullptr; } -void Direct3DRMRenderer_EnumDevices(LPD3DENUMDEVICESCALLBACK cb, void* ctx) +void Direct3DRMRenderer_EnumDevices(const IDirect3DMiniwin* d3d, LPD3DENUMDEVICESCALLBACK cb, void* ctx) { #ifdef USE_SDL_GPU Direct3DRMSDL3GPU_EnumDevice(cb, ctx); #endif #ifdef USE_OPENGLES2 - OpenGLES2Renderer_EnumDevice(cb, ctx); + OpenGLES2Renderer_EnumDevice(d3d, cb, ctx); #endif #ifdef USE_OPENGL1 OpenGL1Renderer_EnumDevice(cb, ctx); diff --git a/miniwin/src/ddraw/ddraw.cpp b/miniwin/src/ddraw/ddraw.cpp index edfae063..bb0e40ce 100644 --- a/miniwin/src/ddraw/ddraw.cpp +++ b/miniwin/src/ddraw/ddraw.cpp @@ -225,7 +225,7 @@ void EnumDevice( HRESULT DirectDrawImpl::EnumDevices(LPD3DENUMDEVICESCALLBACK cb, void* ctx) { - Direct3DRMRenderer_EnumDevices(cb, ctx); + Direct3DRMRenderer_EnumDevices(this, cb, ctx); return S_OK; } diff --git a/miniwin/src/internal/d3drmrenderer.h b/miniwin/src/internal/d3drmrenderer.h index 01ba5b64..7c19a8b4 100644 --- a/miniwin/src/internal/d3drmrenderer.h +++ b/miniwin/src/internal/d3drmrenderer.h @@ -67,4 +67,4 @@ Direct3DRMRenderer* CreateDirect3DRMRenderer( const DDSURFACEDESC& DDSDesc, const GUID* guid ); -void Direct3DRMRenderer_EnumDevices(LPD3DENUMDEVICESCALLBACK cb, void* ctx); +void Direct3DRMRenderer_EnumDevices(const IDirect3DMiniwin* d3d, LPD3DENUMDEVICESCALLBACK cb, void* ctx); diff --git a/miniwin/src/internal/d3drmrenderer_opengles2.h b/miniwin/src/internal/d3drmrenderer_opengles2.h index 1a1f62d2..337ebe40 100644 --- a/miniwin/src/internal/d3drmrenderer_opengles2.h +++ b/miniwin/src/internal/d3drmrenderer_opengles2.h @@ -97,12 +97,9 @@ class OpenGLES2Renderer : public Direct3DRMRenderer { ViewportTransform m_viewportTransform; }; -inline static void OpenGLES2Renderer_EnumDevice(LPD3DENUMDEVICESCALLBACK cb, void* ctx) +inline static void OpenGLES2Renderer_EnumDevice(const IDirect3DMiniwin* d3d, LPD3DENUMDEVICESCALLBACK cb, void* ctx) { - IDirect3DMiniwin* miniwind3d = reinterpret_cast(ctx); - SDL_assert(miniwind3d); - - Direct3DRMRenderer* device = OpenGLES2Renderer::Create(640, 480, miniwind3d->GetMSAASamples()); + Direct3DRMRenderer* device = OpenGLES2Renderer::Create(640, 480, d3d->GetMSAASamples()); if (!device) { return; }