summaryrefslogtreecommitdiffstats
path: root/tools/platform/model.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2021-04-24 00:17:43 -0700
committerGitHub <noreply@github.com>2021-04-24 00:17:43 -0700
commit9a5672d7b8a155117a2c3f8375e3b8a5b43d91b7 (patch)
tree9be3ea214ea735e41e8fdaef9824e84212a30cbb /tools/platform/model.cpp
parent697017e6fae8c252638abc298ec1556de2e41314 (diff)
Remove resource `Usage` from `gfx` interface. (#1813)
* Fix `model-viewer` crash when using Vulkan. Fixing an issue in shader object layout creation for to make sure a correct descriptor set layout is calculated for types that need an implicit constant buffer. * Fix formatting. * Fixes. * Fix memory leak in vulkan. * Remove resource `Usage` from `gfx` interface.
Diffstat (limited to 'tools/platform/model.cpp')
-rw-r--r--tools/platform/model.cpp40
1 files changed, 22 insertions, 18 deletions
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);