Standardized the glTexStorage*() calls to use osg::maximum(_numMipmapLevels,1) of rnumber of mipmaps to keep the usage consistent.
Fixed the erronous Texture2DArray glTexStorage call so that it used the _numMipmapLevels as above to resolve bug in allocation.
This commit is contained in:
parent
66246703bf
commit
ca134dca2d
@ -239,7 +239,7 @@ void Texture1D::apply(State& state) const
|
|||||||
textureObject->bind();
|
textureObject->bind();
|
||||||
applyTexParameters(GL_TEXTURE_1D, state);
|
applyTexParameters(GL_TEXTURE_1D, state);
|
||||||
|
|
||||||
extensions->glTexStorage1D( GL_TEXTURE_1D, (_numMipmapLevels >0)?_numMipmapLevels:1, texStorageSizedInternalFormat, _textureWidth);
|
extensions->glTexStorage1D( GL_TEXTURE_1D, osg::maximum(_numMipmapLevels,1), texStorageSizedInternalFormat, _textureWidth);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -306,7 +306,7 @@ void Texture2D::apply(State& state) const
|
|||||||
textureObject = generateAndAssignTextureObject(contextID, GL_TEXTURE_2D, _numMipmapLevels, texStorageSizedInternalFormat, _textureWidth, _textureHeight, 1, _borderWidth);
|
textureObject = generateAndAssignTextureObject(contextID, GL_TEXTURE_2D, _numMipmapLevels, texStorageSizedInternalFormat, _textureWidth, _textureHeight, 1, _borderWidth);
|
||||||
textureObject->bind();
|
textureObject->bind();
|
||||||
applyTexParameters(GL_TEXTURE_2D, state);
|
applyTexParameters(GL_TEXTURE_2D, state);
|
||||||
extensions->glTexStorage2D( GL_TEXTURE_2D, (_numMipmapLevels >0)?_numMipmapLevels:1, texStorageSizedInternalFormat,
|
extensions->glTexStorage2D( GL_TEXTURE_2D, osg::maximum(_numMipmapLevels,1), texStorageSizedInternalFormat,
|
||||||
_textureWidth, _textureHeight);
|
_textureWidth, _textureHeight);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -355,7 +355,7 @@ void Texture2DArray::apply(State& state) const
|
|||||||
// First we need to allocate the texture memory
|
// First we need to allocate the texture memory
|
||||||
if(texStorageSizedInternalFormat!=0)
|
if(texStorageSizedInternalFormat!=0)
|
||||||
{
|
{
|
||||||
extensions->glTexStorage3D(GL_TEXTURE_2D_ARRAY, 1, texStorageSizedInternalFormat, _textureWidth, _textureHeight, textureDepth);
|
extensions->glTexStorage3D(GL_TEXTURE_2D_ARRAY, osg::maximum(_numMipmapLevels,1), texStorageSizedInternalFormat, _textureWidth, _textureHeight, textureDepth);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -454,7 +454,7 @@ void Texture2DArray::apply(State& state) const
|
|||||||
|
|
||||||
if (texStorageSizedInternalFormat!=0)
|
if (texStorageSizedInternalFormat!=0)
|
||||||
{
|
{
|
||||||
extensions->glTexStorage3D( GL_TEXTURE_2D_ARRAY, (_numMipmapLevels >0)?_numMipmapLevels:1, texStorageSizedInternalFormat, _textureWidth, _textureHeight, _textureDepth);
|
extensions->glTexStorage3D( GL_TEXTURE_2D_ARRAY, osg::maximum(_numMipmapLevels,1), texStorageSizedInternalFormat, _textureWidth, _textureHeight, _textureDepth);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
extensions->glTexImage3D( GL_TEXTURE_2D_ARRAY, 0, _internalFormat,
|
extensions->glTexImage3D( GL_TEXTURE_2D_ARRAY, 0, _internalFormat,
|
||||||
|
@ -323,7 +323,7 @@ void Texture3D::apply(State& state) const
|
|||||||
textureObject->bind();
|
textureObject->bind();
|
||||||
applyTexParameters(GL_TEXTURE_3D, state);
|
applyTexParameters(GL_TEXTURE_3D, state);
|
||||||
|
|
||||||
extensions->glTexStorage3D( GL_TEXTURE_3D, (_numMipmapLevels >0)?_numMipmapLevels:1, texStorageSizedInternalFormat, _textureWidth, _textureHeight, _textureDepth);
|
extensions->glTexStorage3D( GL_TEXTURE_3D, osg::maximum(_numMipmapLevels,1), texStorageSizedInternalFormat, _textureWidth, _textureHeight, _textureDepth);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -353,7 +353,7 @@ void TextureCubeMap::apply(State& state) const
|
|||||||
|
|
||||||
if(texStorageSizedInternalFormat!=0)
|
if(texStorageSizedInternalFormat!=0)
|
||||||
{
|
{
|
||||||
extensions->glTexStorage2D(GL_TEXTURE_CUBE_MAP, _numMipmapLevels==0 ? 1 : _numMipmapLevels, texStorageSizedInternalFormat, _textureWidth, _textureHeight);
|
extensions->glTexStorage2D(GL_TEXTURE_CUBE_MAP, osg::maximum(_numMipmapLevels,1), texStorageSizedInternalFormat, _textureWidth, _textureHeight);
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
Loading…
Reference in New Issue
Block a user