| 442 | } |
| 443 | |
| 444 | std::unique_ptr<EI_Resource> EI_Device::CreateDepthResource(const int width, const int height, const char* name) |
| 445 | { |
| 446 | EI_Resource* res = new EI_Resource; |
| 447 | res->m_ResourceType = EI_ResourceType::Texture; |
| 448 | res->m_pTexture = new CAULDRON_DX12::Texture(); |
| 449 | |
| 450 | res->m_pTexture->InitDepthStencil(&m_device, name, &CD3DX12_RESOURCE_DESC::Tex2D(DXGI_FORMAT_R32_TYPELESS, width, height, 1, 1, 1, 0, D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL)); |
| 451 | |
| 452 | res->DSView = new CAULDRON_DX12::DSV(); |
| 453 | m_resourceViewHeaps.AllocDSVDescriptor(1, res->DSView); |
| 454 | res->m_pTexture->CreateDSV(0, res->DSView); |
| 455 | |
| 456 | res->SRView = new CAULDRON_DX12::CBV_SRV_UAV(); |
| 457 | D3D12_SHADER_RESOURCE_VIEW_DESC srvDesc = {}; |
| 458 | srvDesc.Format = DXGI_FORMAT_R32_FLOAT; |
| 459 | srvDesc.ViewDimension = D3D12_SRV_DIMENSION_TEXTURE2D; |
| 460 | srvDesc.TextureCube.MostDetailedMip = 0; |
| 461 | srvDesc.TextureCube.ResourceMinLODClamp = 0; |
| 462 | srvDesc.TextureCube.MipLevels = 1; |
| 463 | srvDesc.Shader4ComponentMapping = D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING; |
| 464 | m_resourceViewHeaps.AllocCBV_SRV_UAVDescriptor(1, res->SRView); |
| 465 | res->m_pTexture->CreateSRV(0, res->SRView, &srvDesc); |
| 466 | |
| 467 | return std::unique_ptr<EI_Resource>(res); |
| 468 | } |
| 469 | |
| 470 | std::unique_ptr<EI_Resource> EI_Device::CreateResourceFromFile(const char* szFilename, bool useSRGB/*= false*/) |
| 471 | { |