mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-06 01:50:38 +00:00
Use per-face targets when serialising cubemap images with TexImage
This commit is contained in:
@@ -712,14 +712,29 @@ void GLResourceManager::PrepareTextureInitialContents(ResourceId liveid, Resourc
|
||||
}
|
||||
else if(details.dimension == 2)
|
||||
{
|
||||
GLenum targets[] = {
|
||||
eGL_TEXTURE_CUBE_MAP_POSITIVE_X, eGL_TEXTURE_CUBE_MAP_NEGATIVE_X,
|
||||
eGL_TEXTURE_CUBE_MAP_POSITIVE_Y, eGL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
|
||||
eGL_TEXTURE_CUBE_MAP_POSITIVE_Z, eGL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
|
||||
};
|
||||
|
||||
gl.glTextureParameteriEXT(tex, details.curType, eGL_TEXTURE_MAX_LEVEL, mips - 1);
|
||||
|
||||
int w = details.width;
|
||||
int h = details.height;
|
||||
for(int i = 0; i < mips; i++)
|
||||
{
|
||||
gl.glTextureImage2DEXT(tex, details.curType, i, details.internalFormat, w, h, 0,
|
||||
baseFormat, dataType, NULL);
|
||||
if(details.curType != eGL_TEXTURE_CUBE_MAP)
|
||||
{
|
||||
gl.glTextureImage2DEXT(tex, details.curType, i, details.internalFormat, w, h, 0,
|
||||
baseFormat, dataType, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
for(size_t t = 0; t < ARRAY_COUNT(targets); t++)
|
||||
gl.glTextureImage2DEXT(tex, targets[t], i, details.internalFormat, w, h, 0,
|
||||
baseFormat, dataType, NULL);
|
||||
}
|
||||
w = RDCMAX(1, w >> 1);
|
||||
if(details.curType != eGL_TEXTURE_1D_ARRAY)
|
||||
h = RDCMAX(1, h >> 1);
|
||||
@@ -1471,14 +1486,30 @@ bool GLResourceManager::Serialise_InitialState(ResourceId resid, GLResource res)
|
||||
}
|
||||
else if(dim == 2)
|
||||
{
|
||||
GLenum targets[] = {
|
||||
eGL_TEXTURE_CUBE_MAP_POSITIVE_X, eGL_TEXTURE_CUBE_MAP_NEGATIVE_X,
|
||||
eGL_TEXTURE_CUBE_MAP_POSITIVE_Y, eGL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
|
||||
eGL_TEXTURE_CUBE_MAP_POSITIVE_Z, eGL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
|
||||
};
|
||||
|
||||
gl.glTextureParameteriEXT(tex, textype, eGL_TEXTURE_MAX_LEVEL, mips - 1);
|
||||
|
||||
int w = width;
|
||||
int h = height;
|
||||
for(int i = 0; i < mips; i++)
|
||||
{
|
||||
gl.glTextureImage2DEXT(tex, textype, i, internalformat, w, h, 0, baseFormat, dataType,
|
||||
NULL);
|
||||
if(textype != eGL_TEXTURE_CUBE_MAP)
|
||||
{
|
||||
gl.glTextureImage2DEXT(tex, textype, i, internalformat, w, h, 0, baseFormat, dataType,
|
||||
NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
for(size_t t = 0; t < ARRAY_COUNT(targets); t++)
|
||||
gl.glTextureImage2DEXT(tex, targets[t], i, internalformat, w, h, 0, baseFormat,
|
||||
dataType, NULL);
|
||||
}
|
||||
|
||||
w = RDCMAX(1, w >> 1);
|
||||
if(textype != eGL_TEXTURE_1D_ARRAY)
|
||||
h = RDCMAX(1, h >> 1);
|
||||
|
||||
Reference in New Issue
Block a user