From 70d38796872328f5cc87a0400c79550ceeccffe9 Mon Sep 17 00:00:00 2001 From: ssdfasd <2156608475@qq.com> Date: Sun, 15 Mar 2026 19:40:24 +0800 Subject: [PATCH] Remove unused CreateTexture2D function --- tests/D3D12/main.cpp | 88 -------------------------------------------- 1 file changed, 88 deletions(-) diff --git a/tests/D3D12/main.cpp b/tests/D3D12/main.cpp index 55353eb3..eb71107c 100644 --- a/tests/D3D12/main.cpp +++ b/tests/D3D12/main.cpp @@ -380,94 +380,6 @@ ID3D12Resource* CreateBufferObject(ID3D12GraphicsCommandList* inCommandList, } //================================================================================= -// 2D纹理创建 -// DEFAULT堆 → 通过Upload堆中转数据 → CopyTextureRegion → 状态转换 -//================================================================================= -ID3D12Resource* CreateTexture2D(ID3D12GraphicsCommandList* inCommandList, - const void* inPixelData, int inDataSizeInBytes, int inWidth, int inHeight, - DXGI_FORMAT inFormat) { - D3D12_HEAP_PROPERTIES d3dHeapProperties = {}; - d3dHeapProperties.Type = D3D12_HEAP_TYPE_DEFAULT; - - D3D12_RESOURCE_DESC d3d12ResourceDesc = {}; - d3d12ResourceDesc.Dimension = D3D12_RESOURCE_DIMENSION_TEXTURE2D; - d3d12ResourceDesc.Alignment = 0; - d3d12ResourceDesc.Width = inWidth; - d3d12ResourceDesc.Height = inHeight; - d3d12ResourceDesc.DepthOrArraySize = 1; - d3d12ResourceDesc.MipLevels = 1; - d3d12ResourceDesc.Format = inFormat; - d3d12ResourceDesc.SampleDesc.Count = 1; - d3d12ResourceDesc.SampleDesc.Quality = 0; - d3d12ResourceDesc.Layout = D3D12_TEXTURE_LAYOUT_UNKNOWN; - d3d12ResourceDesc.Flags = D3D12_RESOURCE_FLAG_NONE; - - ID3D12Resource* texture = nullptr; - gDevice.GetDevice()->CreateCommittedResource(&d3dHeapProperties, - D3D12_HEAP_FLAG_NONE, - &d3d12ResourceDesc, - D3D12_RESOURCE_STATE_COPY_DEST, - nullptr, - IID_PPV_ARGS(&texture) - ); - d3d12ResourceDesc = texture->GetDesc(); - UINT64 memorySizeUsed = 0; - UINT64 rowSizeInBytes = 0; - UINT rowUsed = 0; - D3D12_PLACED_SUBRESOURCE_FOOTPRINT subresourceFootprint; - gDevice.GetDevice()->GetCopyableFootprints(&d3d12ResourceDesc, 0, 1, 0, - &subresourceFootprint, &rowUsed, &rowSizeInBytes, &memorySizeUsed); - - ID3D12Resource* tempBufferObject = nullptr; - D3D12_HEAP_PROPERTIES d3dTempHeapProperties = {}; - d3dTempHeapProperties.Type = D3D12_HEAP_TYPE_UPLOAD; - - D3D12_RESOURCE_DESC d3d12TempResourceDesc = {}; - d3d12TempResourceDesc.Dimension = D3D12_RESOURCE_DIMENSION_BUFFER; - d3d12TempResourceDesc.Alignment = 0; - d3d12TempResourceDesc.Width = memorySizeUsed; - d3d12TempResourceDesc.Height = 1; - d3d12TempResourceDesc.DepthOrArraySize = 1; - d3d12TempResourceDesc.MipLevels = 1; - d3d12TempResourceDesc.Format = DXGI_FORMAT_UNKNOWN; - d3d12TempResourceDesc.SampleDesc.Count = 1; - d3d12TempResourceDesc.SampleDesc.Quality = 0; - d3d12TempResourceDesc.Layout = D3D12_TEXTURE_LAYOUT_ROW_MAJOR; - d3d12TempResourceDesc.Flags = D3D12_RESOURCE_FLAG_NONE; - - gDevice.GetDevice()->CreateCommittedResource( - &d3dTempHeapProperties, - D3D12_HEAP_FLAG_NONE, - &d3d12TempResourceDesc, - D3D12_RESOURCE_STATE_GENERIC_READ, - nullptr, - IID_PPV_ARGS(&tempBufferObject) - ); - BYTE* pData; - tempBufferObject->Map(0, nullptr, reinterpret_cast(&pData)); - BYTE* pDstTempBuffer = reinterpret_cast(pData + subresourceFootprint.Offset); - const BYTE* pSrcData = reinterpret_cast(inPixelData); - for (UINT i = 0; i < rowUsed; i++) { - memcpy(pDstTempBuffer + subresourceFootprint.Footprint.RowPitch * i, pSrcData + rowSizeInBytes * i, rowSizeInBytes); - } - tempBufferObject->Unmap(0, nullptr); - D3D12_TEXTURE_COPY_LOCATION dst = {}; - dst.pResource = texture; - dst.Type = D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX; - dst.SubresourceIndex = 0; - - D3D12_TEXTURE_COPY_LOCATION src = {}; - src.pResource = tempBufferObject; - src.Type = D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT; - src.PlacedFootprint = subresourceFootprint; - inCommandList->CopyTextureRegion(&dst, 0, 0, 0, &src, nullptr); - - D3D12_RESOURCE_BARRIER barrier = InitResourceBarrier(texture, - D3D12_RESOURCE_STATE_COPY_DEST, D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE); - inCommandList->ResourceBarrier(1, &barrier); - return texture; -} - //================================================================================= // 渲染管线状态对象 (PSO) // 包含: InputLayout / VS/GS/PS / Rasterizer / DepthStencil / Blend