diff options
Diffstat (limited to 'tools/platform')
| -rw-r--r-- | tools/platform/gui.cpp | 48 | ||||
| -rw-r--r-- | tools/platform/model.cpp | 40 |
2 files changed, 52 insertions, 36 deletions
diff --git a/tools/platform/gui.cpp b/tools/platform/gui.cpp index 63cf3d51b..ba6fc35f8 100644 --- a/tools/platform/gui.cpp +++ b/tools/platform/gui.cpp @@ -139,16 +139,23 @@ GUI::GUI( io.Fonts->GetTexDataAsRGBA32(&pixels, &width, &height); { - gfx::ITextureResource::Desc desc; - desc.init2D(IResource::Type::Texture2D, Format::RGBA_Unorm_UInt8, width, height, 1); - desc.setDefaults(IResource::Usage::PixelShaderResource); + gfx::ITextureResource::Desc desc = {}; + desc.type = IResource::Type::Texture2D; + desc.format = Format::RGBA_Unorm_UInt8; + desc.arraySize = 0; + desc.size.width = width; + desc.size.height = height; + desc.size.depth = 1; + desc.numMipLevels = 1; + desc.defaultState = ResourceState::ShaderResource; + desc.allowedStates = + ResourceStateSet(ResourceState::ShaderResource, ResourceState::CopyDestination); ITextureResource::SubresourceData initData = {}; initData.data = pixels; initData.strideY = width * 4 * sizeof(unsigned char); - auto texture = - device->createTextureResource(IResource::Usage::PixelShaderResource, desc, &initData); + auto texture = device->createTextureResource(desc, &initData); gfx::IResourceView::Desc viewDesc; viewDesc.format = desc.format; @@ -204,19 +211,22 @@ void GUI::endFrame(ITransientResourceHeap* transientHeap, IFramebuffer* framebuf // Allocate transient vertex/index buffers to hold the data for this frame. gfx::IBufferResource::Desc vertexBufferDesc; - vertexBufferDesc.init(vertexCount * sizeof(ImDrawVert)); - vertexBufferDesc.setDefaults(IResource::Usage::VertexBuffer); + vertexBufferDesc.type = IResource::Type::Buffer; + vertexBufferDesc.defaultState = ResourceState::VertexBuffer; + vertexBufferDesc.allowedStates = + ResourceStateSet(ResourceState::VertexBuffer, ResourceState::CopyDestination); + vertexBufferDesc.sizeInBytes = vertexCount * sizeof(ImDrawVert); vertexBufferDesc.cpuAccessFlags = IResource::AccessFlag::Write; - auto vertexBuffer = - device->createBufferResource(IResource::Usage::VertexBuffer, vertexBufferDesc); + auto vertexBuffer = device->createBufferResource(vertexBufferDesc); gfx::IBufferResource::Desc indexBufferDesc; - indexBufferDesc.init(indexCount * sizeof(ImDrawIdx)); - indexBufferDesc.setDefaults(IResource::Usage::IndexBuffer); + indexBufferDesc.type = IResource::Type::Buffer; + indexBufferDesc.sizeInBytes = indexCount * sizeof(ImDrawIdx); + indexBufferDesc.allowedStates = + ResourceStateSet(ResourceState::IndexBuffer, ResourceState::CopyDestination); + indexBufferDesc.defaultState = ResourceState::IndexBuffer; indexBufferDesc.cpuAccessFlags = IResource::AccessFlag::Write; - auto indexBuffer = device->createBufferResource( - IResource::Usage::IndexBuffer, - indexBufferDesc); + auto indexBuffer = device->createBufferResource(indexBufferDesc); auto cmdBuf = transientHeap->createCommandBuffer(); auto encoder = cmdBuf->encodeResourceCommands(); { @@ -238,11 +248,13 @@ void GUI::endFrame(ITransientResourceHeap* transientHeap, IFramebuffer* framebuf // Allocate a transient constant buffer for projection matrix gfx::IBufferResource::Desc constantBufferDesc; - constantBufferDesc.init(sizeof(glm::mat4x4)); - constantBufferDesc.setDefaults(IResource::Usage::ConstantBuffer); + constantBufferDesc.type = IResource::Type::Buffer; + constantBufferDesc.allowedStates = + ResourceStateSet(ResourceState::ConstantBuffer, ResourceState::CopyDestination); + constantBufferDesc.defaultState = ResourceState::ConstantBuffer; + constantBufferDesc.sizeInBytes = sizeof(glm::mat4x4); constantBufferDesc.cpuAccessFlags = IResource::AccessFlag::Write; - auto constantBuffer = - device->createBufferResource(IResource::Usage::ConstantBuffer, constantBufferDesc); + auto constantBuffer = device->createBufferResource(constantBufferDesc); { float L = draw_data->DisplayPos.x; diff --git a/tools/platform/model.cpp b/tools/platform/model.cpp index fadfcc0e2..57acf9ecd 100644 --- a/tools/platform/model.cpp +++ b/tools/platform/model.cpp @@ -189,12 +189,16 @@ ComPtr<ITextureResource> loadTextureImage( int mipCount = (int) subresourceInitData.size(); - ITextureResource::Desc desc; - desc.init2D(IResource::Type::Texture2D, format, extentX, extentY, mipCount); - - auto texture = - device->createTextureResource(IResource::Usage::PixelShaderResource, desc, subresourceInitData.data()); - + ITextureResource::Desc desc = {}; + desc.type = IResource::Type::Texture2D; + desc.defaultState = ResourceState::ShaderResource; + desc.allowedStates = ResourceStateSet(ResourceState::ShaderResource); + desc.format = format; + desc.size.width = extentX; + desc.size.height = extentY; + desc.size.depth = 1; + desc.numMipLevels = mipCount; + auto texture = device->createTextureResource(desc, subresourceInitData.data()); free(data); return texture; @@ -542,23 +546,23 @@ SlangResult ModelLoader::load( modelData.meshes = meshes.data(); IBufferResource::Desc vertexBufferDesc; - vertexBufferDesc.init(modelData.vertexCount * sizeof(Vertex)); - vertexBufferDesc.setDefaults(IResource::Usage::VertexBuffer); + vertexBufferDesc.type = IResource::Type::Buffer; + vertexBufferDesc.sizeInBytes = modelData.vertexCount * sizeof(Vertex); + vertexBufferDesc.allowedStates = + ResourceStateSet(ResourceState::VertexBuffer, ResourceState::CopyDestination); + vertexBufferDesc.defaultState = ResourceState::VertexBuffer; - modelData.vertexBuffer = device->createBufferResource( - IResource::Usage::VertexBuffer, - vertexBufferDesc, - flatVertices.data()); + modelData.vertexBuffer = device->createBufferResource(vertexBufferDesc, flatVertices.data()); if(!modelData.vertexBuffer) return SLANG_FAIL; IBufferResource::Desc indexBufferDesc; - indexBufferDesc.init(modelData.indexCount * sizeof(Index)); - vertexBufferDesc.setDefaults(IResource::Usage::IndexBuffer); + indexBufferDesc.type = IResource::Type::Buffer; + indexBufferDesc.sizeInBytes = modelData.indexCount * sizeof(Index); + indexBufferDesc.allowedStates = + ResourceStateSet(ResourceState::IndexBuffer, ResourceState::CopyDestination); + indexBufferDesc.defaultState = ResourceState::IndexBuffer; - modelData.indexBuffer = device->createBufferResource( - IResource::Usage::IndexBuffer, - indexBufferDesc, - flatIndices.data()); + modelData.indexBuffer = device->createBufferResource(indexBufferDesc, flatIndices.data()); if(!modelData.indexBuffer) return SLANG_FAIL; *outModel = callbacks->createModel(modelData); |
