From 56ede30ec0a9e032c35374694b0ab875dcaaaed7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branimir=20Karad=C5=BEi=C4=87?= Date: Sun, 13 Mar 2016 12:13:19 -0700 Subject: [PATCH] Fixed issue #714. --- src/bgfx.cpp | 6 +----- src/bgfx_p.h | 1 - src/renderer_d3d11.cpp | 3 +-- src/renderer_d3d12.cpp | 3 +-- src/renderer_d3d9.cpp | 25 +++++++++++++++++++++++-- src/renderer_gl.cpp | 3 +-- 6 files changed, 27 insertions(+), 14 deletions(-) diff --git a/src/bgfx.cpp b/src/bgfx.cpp index 781a270bf..47f4f25c6 100644 --- a/src/bgfx.cpp +++ b/src/bgfx.cpp @@ -348,7 +348,6 @@ namespace bgfx bx::write(&writer, magic); TextureCreate tc; - tc.m_flags = _flags; tc.m_width = _width; tc.m_height = _height; tc.m_sides = 0; @@ -1820,7 +1819,7 @@ namespace bgfx qsort(scores, numScores, sizeof(int32_t), compareDescending); - RendererContextI* renderCtx = NULL; + RendererContextI* renderCtx; for (uint32_t ii = 0; ii < numScores; ++ii) { RendererType::Enum renderer = RendererType::Enum(scores[ii] & 0xff); @@ -2913,7 +2912,6 @@ namespace bgfx bx::write(&writer, magic); TextureCreate tc; - tc.m_flags = _flags; tc.m_width = _width; tc.m_height = _height; tc.m_sides = 0; @@ -2970,7 +2968,6 @@ namespace bgfx bx::write(&writer, magic); TextureCreate tc; - tc.m_flags = _flags; tc.m_width = _width; tc.m_height = _height; tc.m_sides = 0; @@ -3014,7 +3011,6 @@ namespace bgfx bx::write(&writer, magic); TextureCreate tc; - tc.m_flags = _flags; tc.m_width = _size; tc.m_height = _size; tc.m_sides = 6; diff --git a/src/bgfx_p.h b/src/bgfx_p.h index 34106718e..e9cf4f980 100644 --- a/src/bgfx_p.h +++ b/src/bgfx_p.h @@ -313,7 +313,6 @@ namespace bgfx struct TextureCreate { TextureFormat::Enum m_format; - uint32_t m_flags; uint16_t m_width; uint16_t m_height; uint16_t m_sides; diff --git a/src/renderer_d3d11.cpp b/src/renderer_d3d11.cpp index 8b897b75a..ccb051165 100644 --- a/src/renderer_d3d11.cpp +++ b/src/renderer_d3d11.cpp @@ -1782,7 +1782,6 @@ BX_PRAGMA_DIAGNOSTIC_POP(); bx::write(&writer, magic); TextureCreate tc; - tc.m_flags = texture.m_flags; tc.m_width = _width; tc.m_height = _height; tc.m_sides = 0; @@ -1794,7 +1793,7 @@ BX_PRAGMA_DIAGNOSTIC_POP(); bx::write(&writer, tc); texture.destroy(); - texture.create(mem, tc.m_flags, 0); + texture.create(mem, texture.m_flags, 0); release(mem); } diff --git a/src/renderer_d3d12.cpp b/src/renderer_d3d12.cpp index d9f6c489d..08371760d 100644 --- a/src/renderer_d3d12.cpp +++ b/src/renderer_d3d12.cpp @@ -1376,7 +1376,6 @@ namespace bgfx { namespace d3d12 bx::write(&writer, magic); TextureCreate tc; - tc.m_flags = texture.m_flags; tc.m_width = _width; tc.m_height = _height; tc.m_sides = 0; @@ -1388,7 +1387,7 @@ namespace bgfx { namespace d3d12 bx::write(&writer, tc); texture.destroy(); - texture.create(mem, tc.m_flags, 0); + texture.create(mem, texture.m_flags, 0); release(mem); } diff --git a/src/renderer_d3d9.cpp b/src/renderer_d3d9.cpp index 43564c552..04ec99646 100644 --- a/src/renderer_d3d9.cpp +++ b/src/renderer_d3d9.cpp @@ -1004,8 +1004,29 @@ namespace bgfx { namespace d3d9 void resizeTexture(TextureHandle _handle, uint16_t _width, uint16_t _height) BX_OVERRIDE { TextureD3D9& texture = m_textures[_handle.idx]; - texture.m_width = _width; - texture.m_height = _height; + + uint32_t size = sizeof(uint32_t) + sizeof(TextureCreate); + const Memory* mem = alloc(size); + + bx::StaticMemoryBlockWriter writer(mem->data, mem->size); + uint32_t magic = BGFX_CHUNK_MAGIC_TEX; + bx::write(&writer, magic); + + TextureCreate tc; + tc.m_width = _width; + tc.m_height = _height; + tc.m_sides = 0; + tc.m_depth = 0; + tc.m_numMips = 1; + tc.m_format = TextureFormat::Enum(texture.m_requestedFormat); + tc.m_cubeMap = false; + tc.m_mem = NULL; + bx::write(&writer, tc); + + texture.destroy(); + texture.create(mem, texture.m_flags, 0); + + release(mem); } void overrideInternal(TextureHandle _handle, uintptr_t _ptr) BX_OVERRIDE diff --git a/src/renderer_gl.cpp b/src/renderer_gl.cpp index 7dab30f77..82b87e459 100644 --- a/src/renderer_gl.cpp +++ b/src/renderer_gl.cpp @@ -2227,7 +2227,6 @@ namespace bgfx { namespace gl bx::write(&writer, magic); TextureCreate tc; - tc.m_flags = texture.m_flags; tc.m_width = _width; tc.m_height = _height; tc.m_sides = 0; @@ -2239,7 +2238,7 @@ namespace bgfx { namespace gl bx::write(&writer, tc); texture.destroy(); - texture.create(mem, tc.m_flags, 0); + texture.create(mem, texture.m_flags, 0); release(mem); }