diff --git a/Windows_Libs/Dev/Render/RendererCore.cpp b/Windows_Libs/Dev/Render/RendererCore.cpp index 7a9749c..4b2a78d 100644 --- a/Windows_Libs/Dev/Render/RendererCore.cpp +++ b/Windows_Libs/Dev/Render/RendererCore.cpp @@ -359,7 +359,15 @@ void Renderer::Initialise(ID3D11Device *pDevice, IDXGISwapChain *pSwapChain) backBufferSampleCount = backDesc.SampleDesc.Count; backBufferSampleQuality = backDesc.SampleDesc.Quality; m_pDevice->CreateRenderTargetView(backBuffer, nullptr, &renderTargetView); - m_pDevice->CreateShaderResourceView(backBuffer, nullptr, &renderTargetShaderResourceView); + + D3D11_TEXTURE2D_DESC srvDesc = backDesc; + srvDesc.BindFlags = D3D11_BIND_RENDER_TARGET | D3D11_BIND_SHADER_RESOURCE; + srvDesc.MiscFlags = 0; + ID3D11Texture2D *srvTexture = nullptr; + m_pDevice->CreateTexture2D(&srvDesc, nullptr, &srvTexture); + m_pDevice->CreateShaderResourceView(srvTexture, nullptr, &renderTargetShaderResourceView); + + srvTexture->Release(); backBuffer->Release(); } diff --git a/Windows_Libs/Dev/Render/RendererTexture.cpp b/Windows_Libs/Dev/Render/RendererTexture.cpp index 8279697..fe992bf 100644 --- a/Windows_Libs/Dev/Render/RendererTexture.cpp +++ b/Windows_Libs/Dev/Render/RendererTexture.cpp @@ -21,7 +21,7 @@ int user_write_data_bytes_written() void user_write_data(png_struct_def* png_ptr, unsigned char* data, size_t length) { - int canWrite = (int)((unsigned char*)dataEnd - (unsigned char*)dataCurr); + int canWrite = (int)(dataEnd - dataCurr); if ((int)length < canWrite) canWrite = (int)length; memcpy(dataCurr, data, canWrite); @@ -113,7 +113,7 @@ void Renderer::TextureData(int width, int height, void* data, int level, C4JRend desc.Height = height; desc.MipLevels = m_textures[idx].mipLevels; desc.ArraySize = 1; - desc.Format = (DXGI_FORMAT)textureFormats[format]; + desc.Format = textureFormats[format]; desc.SampleDesc.Count = 1; desc.SampleDesc.Quality = 0; desc.Usage = D3D11_USAGE_DEFAULT; @@ -121,18 +121,12 @@ void Renderer::TextureData(int width, int height, void* data, int level, C4JRend desc.CPUAccessFlags = 0; desc.MiscFlags = 0; - m_pDevice->CreateTexture2D(&desc, NULL, (ID3D11Texture2D**)&m_textures[idx].texture); + m_pDevice->CreateTexture2D(&desc, NULL, &m_textures[idx].texture); m_pDevice->CreateShaderResourceView(m_textures[idx].texture, NULL, &m_textures[idx].view); } - c.m_pDeviceContext->UpdateSubresource( - m_textures[idx].texture, - level, - NULL, - data, - width * 4, - width * height * 4 - ); + c.m_pDeviceContext->UpdateSubresource(m_textures[idx].texture, level, NULL, + data, width * 4, width * height * 4); } void Renderer::TextureDataUpdate(int xoffset, int yoffset, int width, int height, void* data, int level)