prevent immutability resetting when textureobject is taken from orphans

This commit is contained in:
Julien Valentin
2020-03-25 23:00:24 +01:00
parent 864b087b1f
commit 197fc401b4
7 changed files with 37 additions and 14 deletions

View File

@@ -322,8 +322,10 @@ void Texture3D::apply(State& state) const
textureObject = generateAndAssignTextureObject(contextID, GL_TEXTURE_3D, _numMipmapLevels, texStorageSizedInternalFormat, _textureWidth, _textureHeight, _textureDepth,0);
textureObject->bind();
applyTexParameters(GL_TEXTURE_3D, state);
extensions->glTexStorage3D( GL_TEXTURE_3D, osg::maximum(_numMipmapLevels,1), texStorageSizedInternalFormat, _textureWidth, _textureHeight, _textureDepth);
if(!textureObject->_allocated)
{
extensions->glTexStorage3D( GL_TEXTURE_3D, osg::maximum(_numMipmapLevels,1), texStorageSizedInternalFormat, _textureWidth, _textureHeight, _textureDepth);
}
}
else
{
@@ -345,6 +347,7 @@ void Texture3D::apply(State& state) const
_readPBuffer->bindPBufferToTexture(GL_FRONT);
}
textureObject->setAllocated(_numMipmapLevels, texStorageSizedInternalFormat!=0? texStorageSizedInternalFormat : _internalFormat, _textureWidth, _textureHeight, _textureDepth, _borderWidth);
}
else
{