added typless checks

This commit is contained in:
cdozdil
2024-09-10 23:31:34 +03:00
parent fe7a0e69db
commit f674c5bec7
3 changed files with 27 additions and 2 deletions
+1 -1
View File
@@ -32,7 +32,7 @@ void Imgui_Dx11::CreateRenderTarget(ID3D11Resource* out)
{
D3D11_RENDER_TARGET_VIEW_DESC rtvDesc;
ZeroMemory(&rtvDesc, sizeof(rtvDesc));
rtvDesc.Format = outDesc.Format;
rtvDesc.Format = TranslateTypelessFormats(outDesc.Format);
rtvDesc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE2D;
rtvDesc.Texture2D.MipSlice = 0;
+1 -1
View File
@@ -242,7 +242,7 @@ void Imgui_Dx12::CreateRenderTarget(const D3D12_RESOURCE_DESC& InDesc)
desc.Height = InDesc.Height;
desc.DepthOrArraySize = 1;
desc.MipLevels = 1;
desc.Format = InDesc.Format;
desc.Format = TranslateTypelessFormats(InDesc.Format);
desc.SampleDesc.Count = 1;
desc.SampleDesc.Quality = 0;
desc.Layout = D3D12_TEXTURE_LAYOUT_UNKNOWN;
+25
View File
@@ -1,5 +1,6 @@
#include "../pch.h"
#include "imgui_common.h"
#include <dxgi.h>
class ImguiDxBase
{
@@ -15,6 +16,30 @@ protected:
long frameCounter = 0;
void RenderMenu();
static DXGI_FORMAT TranslateTypelessFormats(DXGI_FORMAT format)
{
switch (format) {
case DXGI_FORMAT_R32G32B32A32_TYPELESS:
return DXGI_FORMAT_R32G32B32A32_FLOAT;
case DXGI_FORMAT_R32G32B32_TYPELESS:
return DXGI_FORMAT_R32G32B32_FLOAT;
case DXGI_FORMAT_R16G16B16A16_TYPELESS:
return DXGI_FORMAT_R16G16B16A16_FLOAT;
case DXGI_FORMAT_R10G10B10A2_TYPELESS:
return DXGI_FORMAT_R10G10B10A2_UINT;
case DXGI_FORMAT_R8G8B8A8_TYPELESS:
return DXGI_FORMAT_R8G8B8A8_UNORM;
case DXGI_FORMAT_B8G8R8A8_TYPELESS:
return DXGI_FORMAT_B8G8R8A8_UNORM;
case DXGI_FORMAT_R16G16_TYPELESS:
return DXGI_FORMAT_R16G16_FLOAT;
case DXGI_FORMAT_R32G32_TYPELESS:
return DXGI_FORMAT_R32G32_FLOAT;
default:
return format;
}
}
public:
bool IsVisible() const;
bool IsInited() const { return _baseInit; }