summaryrefslogtreecommitdiff
path: root/tools/gfx/open-gl/render-gl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/gfx/open-gl/render-gl.cpp')
-rw-r--r--tools/gfx/open-gl/render-gl.cpp21
1 files changed, 13 insertions, 8 deletions
diff --git a/tools/gfx/open-gl/render-gl.cpp b/tools/gfx/open-gl/render-gl.cpp
index cd17aee78..2f2071a42 100644
--- a/tools/gfx/open-gl/render-gl.cpp
+++ b/tools/gfx/open-gl/render-gl.cpp
@@ -106,7 +106,7 @@ public:
virtual SLANG_NO_THROW Result SLANG_MCALL createTextureResource(
IResource::Usage initialUsage,
const ITextureResource::Desc& desc,
- const ITextureResource::Data* initData,
+ const ITextureResource::SubresourceData* initData,
ITextureResource** outResource) override;
virtual SLANG_NO_THROW Result SLANG_MCALL createBufferResource(
IResource::Usage initialUsage,
@@ -1450,7 +1450,7 @@ SLANG_NO_THROW Result SLANG_MCALL GLDevice::readTextureResource(
SLANG_NO_THROW Result SLANG_MCALL GLDevice::createTextureResource(
IResource::Usage initialUsage,
const ITextureResource::Desc& descIn,
- const ITextureResource::Data* initData,
+ const ITextureResource::SubresourceData* initData,
ITextureResource** outResource)
{
TextureResource::Desc srcDesc(descIn);
@@ -1479,6 +1479,10 @@ SLANG_NO_THROW Result SLANG_MCALL GLDevice::createTextureResource(
// Set on texture so will be freed if failure
texture->m_handle = handle;
+ // TODO: The logic below seems to be ignoring the row/layer stride of
+ // the subresources that have been passed in, despite OpenGL having
+ // the ability to set the image unpack stride, etc.
+
switch (srcDesc.type)
{
case IResource::Type::Texture1D:
@@ -1493,6 +1497,7 @@ SLANG_NO_THROW Result SLANG_MCALL GLDevice::createTextureResource(
{
for (int j = 0; j < srcDesc.numMipLevels; j++)
{
+ // TODO: Double-check this logic - we are passing in `i` as the height?
glTexImage2D(
target,
j,
@@ -1502,7 +1507,7 @@ SLANG_NO_THROW Result SLANG_MCALL GLDevice::createTextureResource(
0,
format,
formatType,
- initData ? initData->subResources[slice++] : nullptr);
+ initData ? initData[slice++].data : nullptr);
}
}
}
@@ -1520,7 +1525,7 @@ SLANG_NO_THROW Result SLANG_MCALL GLDevice::createTextureResource(
0,
format,
formatType,
- initData ? initData->subResources[i] : nullptr);
+ initData ? initData[i].data : nullptr);
}
}
break;
@@ -1556,7 +1561,7 @@ SLANG_NO_THROW Result SLANG_MCALL GLDevice::createTextureResource(
0,
format,
formatType,
- initData ? initData->subResources[slice++] : nullptr);
+ initData ? initData[slice++].data : nullptr);
}
}
}
@@ -1581,7 +1586,7 @@ SLANG_NO_THROW Result SLANG_MCALL GLDevice::createTextureResource(
0,
format,
formatType,
- initData ? initData->subResources[slice++] : nullptr);
+ initData ? initData[slice++].data : nullptr);
}
}
}
@@ -1600,7 +1605,7 @@ SLANG_NO_THROW Result SLANG_MCALL GLDevice::createTextureResource(
0,
format,
formatType,
- initData ? initData->subResources[i] : nullptr);
+ initData ? initData[i].data : nullptr);
}
}
}
@@ -1622,7 +1627,7 @@ SLANG_NO_THROW Result SLANG_MCALL GLDevice::createTextureResource(
0,
format,
formatType,
- initData ? initData->subResources[i] : nullptr);
+ initData ? initData[i].data : nullptr);
}
break;
}