Number of mips is GL_TEXTURE_MAX_LEVEL+1

This commit is contained in:
baldurk
2014-11-16 21:40:20 +00:00
parent 5ae3c0fd29
commit 8f133984fe
+12
View File
@@ -159,9 +159,14 @@ bool GLResourceManager::Prepare_InitialState(GLResource res)
gl.glGetTexParameteriv(details.curType, eGL_TEXTURE_IMMUTABLE_FORMAT, &immut);
if(immut)
{
gl.glGetTexParameteriv(details.curType, eGL_TEXTURE_IMMUTABLE_LEVELS, (GLint *)&mips);
}
else
{
gl.glGetTexParameteriv(details.curType, eGL_TEXTURE_MAX_LEVEL, (GLint *)&mips);
mips++;
}
gl.glBindTexture(details.curType, tex);
@@ -198,6 +203,8 @@ bool GLResourceManager::Prepare_InitialState(GLResource res)
}
TextureStateInitialData *state = (TextureStateInitialData *)Serialiser::AllocAlignedBuffer(sizeof(TextureStateInitialData));
RDCEraseMem(state, sizeof(TextureStateInitialData));
{
gl.glGetTextureParameterivEXT(res.name, details.curType, eGL_DEPTH_STENCIL_TEXTURE_MODE, (GLint *)&state->depthMode);
@@ -726,9 +733,14 @@ void GLResourceManager::Apply_InitialState(GLResource live, InitialContentData i
gl.glGetTexParameteriv(details.curType, eGL_TEXTURE_IMMUTABLE_FORMAT, &immut);
if(immut)
{
gl.glGetTexParameteriv(details.curType, eGL_TEXTURE_IMMUTABLE_LEVELS, (GLint *)&mips);
}
else
{
gl.glGetTexParameteriv(details.curType, eGL_TEXTURE_MAX_LEVEL, (GLint *)&mips);
mips++;
}
// copy over mips
for(int i=0; i < mips; i++)