From d17a1dd086e31004f28ed0f8c26036e415f4cf38 Mon Sep 17 00:00:00 2001 From: "seer-by-sentry[bot]" <157164994+seer-by-sentry[bot]@users.noreply.github.com> Date: Thu, 29 Jan 2026 16:12:33 +0000 Subject: [PATCH] Fix uninitialized D3D texture in W3DTreeTextureClass update --- .../Source/W3DDevice/GameClient/W3DTreeBuffer.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DTreeBuffer.cpp b/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DTreeBuffer.cpp index 8c5477ee5e..5c74637341 100644 --- a/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DTreeBuffer.cpp +++ b/Core/GameEngineDevice/Source/W3DDevice/GameClient/W3DTreeBuffer.cpp @@ -133,6 +133,14 @@ int W3DTreeBuffer::W3DTreeTextureClass::update(W3DTreeBuffer *buffer) Get_Filter().Set_U_Addr_Mode(TextureFilterClass::TEXTURE_ADDRESS_CLAMP); Get_Filter().Set_V_Addr_Mode(TextureFilterClass::TEXTURE_ADDRESS_CLAMP); + // Check if the D3D texture has been initialized + if (!Peek_D3D_Texture()) { + DEBUG_CRASH(("D3D texture not initialized in W3DTreeTextureClass::update()")); + return 0; + } + + + IDirect3DSurface8 *surface_level; D3DSURFACE_DESC surface_desc; D3DLOCKED_RECT locked_rect; @@ -603,6 +611,8 @@ void W3DTreeBuffer::updateTexture(void) } DEBUG_ASSERTCRASH(maxHeight<=m_textureWidth, ("Bad max height.")); W3DTreeTextureClass *tex = new W3DTreeTextureClass((DWORD)m_textureWidth, (DWORD)m_textureWidth); + tex->Init(); + m_textureHeight = tex->update(this); m_treeTexture = tex; @@ -2041,3 +2051,7 @@ void W3DTreeBuffer::loadPostProcess( void ) + + + +