Fixed create/destroy windows.
This commit is contained in:
parent
cee3a802cc
commit
b62fe2749f
@ -4659,8 +4659,9 @@ BX_PRAGMA_DIAGNOSTIC_POP();
|
|||||||
|
|
||||||
const uint32_t subres = _mip + ( (layer + _side) * m_numMips);
|
const uint32_t subres = _mip + ( (layer + _side) * m_numMips);
|
||||||
const uint32_t bpp = getBitsPerPixel(TextureFormat::Enum(m_textureFormat) );
|
const uint32_t bpp = getBitsPerPixel(TextureFormat::Enum(m_textureFormat) );
|
||||||
const uint32_t rectpitch = _rect.m_width*bpp/8;
|
const uint32_t rectpitch = _rect.m_width*bpp/8;
|
||||||
const uint32_t srcpitch = UINT16_MAX == _pitch ? rectpitch : _pitch;
|
const uint32_t srcpitch = UINT16_MAX == _pitch ? rectpitch : _pitch;
|
||||||
|
const uint32_t slicepitch = rectpitch*_rect.m_height;
|
||||||
|
|
||||||
const bool convert = m_textureFormat != m_requestedFormat;
|
const bool convert = m_textureFormat != m_requestedFormat;
|
||||||
|
|
||||||
@ -4669,12 +4670,19 @@ BX_PRAGMA_DIAGNOSTIC_POP();
|
|||||||
|
|
||||||
if (convert)
|
if (convert)
|
||||||
{
|
{
|
||||||
temp = (uint8_t*)BX_ALLOC(g_allocator, rectpitch*_rect.m_height);
|
temp = (uint8_t*)BX_ALLOC(g_allocator, slicepitch);
|
||||||
imageDecodeToBgra8(temp, data, _rect.m_width, _rect.m_height, srcpitch, TextureFormat::Enum(m_requestedFormat) );
|
imageDecodeToBgra8(temp, data, _rect.m_width, _rect.m_height, srcpitch, TextureFormat::Enum(m_requestedFormat) );
|
||||||
data = temp;
|
data = temp;
|
||||||
}
|
}
|
||||||
|
|
||||||
deviceCtx->UpdateSubresource(m_ptr, subres, &box, data, srcpitch, 0);
|
deviceCtx->UpdateSubresource(
|
||||||
|
m_ptr
|
||||||
|
, subres
|
||||||
|
, &box
|
||||||
|
, data
|
||||||
|
, srcpitch
|
||||||
|
, TextureD3D11::Texture3D == m_type ? slicepitch : 0
|
||||||
|
);
|
||||||
|
|
||||||
if (NULL != temp)
|
if (NULL != temp)
|
||||||
{
|
{
|
||||||
@ -4729,7 +4737,8 @@ BX_PRAGMA_DIAGNOSTIC_POP();
|
|||||||
m_dsv = NULL;
|
m_dsv = NULL;
|
||||||
m_swapChain = NULL;
|
m_swapChain = NULL;
|
||||||
|
|
||||||
m_numTh = _num;
|
m_denseIdx = UINT16_MAX;
|
||||||
|
m_numTh = _num;
|
||||||
m_needPresent = false;
|
m_needPresent = false;
|
||||||
memcpy(m_attachment, _attachment, _num*sizeof(Attachment) );
|
memcpy(m_attachment, _attachment, _num*sizeof(Attachment) );
|
||||||
|
|
||||||
|
@ -4429,6 +4429,7 @@ data.NumQualityLevels = 0;
|
|||||||
|
|
||||||
void FrameBufferD3D12::create(uint8_t _num, const Attachment* _attachment)
|
void FrameBufferD3D12::create(uint8_t _num, const Attachment* _attachment)
|
||||||
{
|
{
|
||||||
|
m_denseIdx = UINT16_MAX;
|
||||||
m_numTh = _num;
|
m_numTh = _num;
|
||||||
memcpy(m_attachment, _attachment, _num*sizeof(Attachment) );
|
memcpy(m_attachment, _attachment, _num*sizeof(Attachment) );
|
||||||
|
|
||||||
|
@ -3154,6 +3154,7 @@ namespace bgfx { namespace d3d9
|
|||||||
m_surface[ii] = NULL;
|
m_surface[ii] = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_denseIdx = UINT16_MAX;
|
||||||
m_dsIdx = UINT8_MAX;
|
m_dsIdx = UINT8_MAX;
|
||||||
m_num = 0;
|
m_num = 0;
|
||||||
m_numTh = _num;
|
m_numTh = _num;
|
||||||
|
@ -5812,6 +5812,7 @@ namespace bgfx { namespace gl
|
|||||||
{
|
{
|
||||||
GL_CHECK(glGenFramebuffers(1, &m_fbo[0]) );
|
GL_CHECK(glGenFramebuffers(1, &m_fbo[0]) );
|
||||||
|
|
||||||
|
m_denseIdx = UINT16_MAX;
|
||||||
m_numTh = _num;
|
m_numTh = _num;
|
||||||
memcpy(m_attachment, _attachment, _num*sizeof(Attachment) );
|
memcpy(m_attachment, _attachment, _num*sizeof(Attachment) );
|
||||||
|
|
||||||
|
@ -2689,6 +2689,7 @@ namespace bgfx { namespace mtl
|
|||||||
|
|
||||||
void FrameBufferMtl::create(uint8_t _num, const Attachment* _attachment)
|
void FrameBufferMtl::create(uint8_t _num, const Attachment* _attachment)
|
||||||
{
|
{
|
||||||
|
m_denseIdx = UINT16_MAX;
|
||||||
m_num = 0;
|
m_num = 0;
|
||||||
m_width = 0;
|
m_width = 0;
|
||||||
m_height = 0;
|
m_height = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user