summaryrefslogtreecommitdiffstats
path: root/tools/platform/model.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/platform/model.cpp')
-rw-r--r--tools/platform/model.cpp30
1 files changed, 16 insertions, 14 deletions
diff --git a/tools/platform/model.cpp b/tools/platform/model.cpp
index 287f80958..54c171e54 100644
--- a/tools/platform/model.cpp
+++ b/tools/platform/model.cpp
@@ -128,13 +128,16 @@ ComPtr<ITextureResource> loadTextureImage(
// results when loading the image with stb_image.
}
- std::vector<void*> subresourceInitData;
- std::vector<ptrdiff_t> mipRowStrides;
+ std::vector<ITextureResource::SubresourceData> subresourceInitData;
ptrdiff_t stride = extentX * channelCount * sizeof(stbi_uc);
- subresourceInitData.push_back(data);
- mipRowStrides.push_back(stride);
+ ITextureResource::SubresourceData baseInitData;
+ baseInitData.data = data;
+ baseInitData.strideY = stride;
+ baseInitData.strideZ = 0;
+
+ subresourceInitData.push_back(baseInitData);
// create down-sampled images for the different mip levels
bool generateMips = true;
@@ -166,8 +169,13 @@ ComPtr<ITextureResource> loadTextureImage(
STBIR_ALPHA_CHANNEL_NONE,
STBIR_FLAG_ALPHA_PREMULTIPLIED);
- subresourceInitData.push_back(newData);
- mipRowStrides.push_back(newStride);
+
+ ITextureResource::SubresourceData mipInitData;
+ mipInitData.data = newData;
+ mipInitData.strideY = newStride;
+ mipInitData.strideZ = 0;
+
+ subresourceInitData.push_back(mipInitData);
prevExtentX = newExtentX;
prevExtentY = newExtentY;
@@ -176,19 +184,13 @@ ComPtr<ITextureResource> loadTextureImage(
}
}
- int mipCount = (int) mipRowStrides.size();
+ int mipCount = (int) subresourceInitData.size();
ITextureResource::Desc desc;
desc.init2D(IResource::Type::Texture2D, format, extentX, extentY, mipCount);
- ITextureResource::Data initData;
- initData.numSubResources = mipCount;
- initData.numMips = mipCount;
- initData.subResources = &subresourceInitData[0];
- initData.mipRowStrides = &mipRowStrides[0];
-
auto texture =
- device->createTextureResource(IResource::Usage::PixelShaderResource, desc, &initData);
+ device->createTextureResource(IResource::Usage::PixelShaderResource, desc, subresourceInitData.data());
free(data);