From b95ca4b2a3fa9b5f90382c8e2e340e3fc7f5e386 Mon Sep 17 00:00:00 2001 From: Christian Semmler Date: Thu, 12 Jun 2025 12:37:51 -0700 Subject: [PATCH] Fix `m_callbacks` resource issue (#289) --- miniwin/src/d3drm/backends/software/renderer.cpp | 2 +- miniwin/src/d3drm/d3drmviewport.cpp | 4 ++-- miniwin/src/internal/d3drmobject_impl.h | 7 +++++++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/miniwin/src/d3drm/backends/software/renderer.cpp b/miniwin/src/d3drm/backends/software/renderer.cpp index dbfb871c..305a5fe9 100644 --- a/miniwin/src/d3drm/backends/software/renderer.cpp +++ b/miniwin/src/d3drm/backends/software/renderer.cpp @@ -268,7 +268,7 @@ void Direct3DRMSoftwareRenderer::DrawTriangleProjected( Uint8 r, g, b; SDL_Color c0 = ApplyLighting(v0.position, v0.normal, appearance); - SDL_Color c1, c2; + SDL_Color c1 = {}, c2 = {}; if (!appearance.flat) { c1 = ApplyLighting(v1.position, v1.normal, appearance); c2 = ApplyLighting(v2.position, v2.normal, appearance); diff --git a/miniwin/src/d3drm/d3drmviewport.cpp b/miniwin/src/d3drm/d3drmviewport.cpp index 065ea0ff..3f60c368 100644 --- a/miniwin/src/d3drm/d3drmviewport.cpp +++ b/miniwin/src/d3drm/d3drmviewport.cpp @@ -14,8 +14,8 @@ #include #include -Direct3DRMViewportImpl::Direct3DRMViewportImpl(DWORD width, DWORD height, Direct3DRMRenderer* rendere) - : m_width(width), m_height(height), m_renderer(rendere) +Direct3DRMViewportImpl::Direct3DRMViewportImpl(DWORD width, DWORD height, Direct3DRMRenderer* renderer) + : m_width(width), m_height(height), m_renderer(renderer) { } diff --git a/miniwin/src/internal/d3drmobject_impl.h b/miniwin/src/internal/d3drmobject_impl.h index 16fcd8bf..6cd449fe 100644 --- a/miniwin/src/internal/d3drmobject_impl.h +++ b/miniwin/src/internal/d3drmobject_impl.h @@ -7,6 +7,13 @@ template struct Direct3DRMObjectBaseImpl : public T { + Direct3DRMObjectBaseImpl() : T() {} + Direct3DRMObjectBaseImpl(const Direct3DRMObjectBaseImpl& other) : m_appData(other.m_appData), T(other) + { + if (other.m_name) { + m_name = SDL_strdup(other.m_name); + } + } ULONG Release() override { if (T::m_refCount == 1) {