summaryrefslogtreecommitdiffstats
path: root/tools/platform
diff options
context:
space:
mode:
Diffstat (limited to 'tools/platform')
-rw-r--r--tools/platform/gui.cpp11
-rw-r--r--tools/platform/model.cpp30
2 files changed, 19 insertions, 22 deletions
diff --git a/tools/platform/gui.cpp b/tools/platform/gui.cpp
index f2f9561d5..8e455cd12 100644
--- a/tools/platform/gui.cpp
+++ b/tools/platform/gui.cpp
@@ -217,14 +217,9 @@ GUI::GUI(
desc.init2D(IResource::Type::Texture2D, Format::RGBA_Unorm_UInt8, width, height, 1);
desc.setDefaults(IResource::Usage::PixelShaderResource);
-
- ptrdiff_t mipRowStrides[] = { ptrdiff_t(width * 4 * sizeof(unsigned char)) };
- void* subResourceData[] = { pixels };
- ITextureResource::Data initData;
- initData.mipRowStrides = mipRowStrides;
- initData.numMips = 1;
- initData.numSubResources = 1;
- initData.subResources = subResourceData;
+ ITextureResource::SubresourceData initData = {};
+ initData.data = pixels;
+ initData.strideY = width * 4 * sizeof(unsigned char);
auto texture =
device->createTextureResource(IResource::Usage::PixelShaderResource, desc, &initData);
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);