From Lionel Lagarde, "In the ::apply method, when the image data need to be re-uploaded, the Texture2DArray checks if the TextureObject can be re-used. The test was made using the constant 1 instead of the real texture depth, so the TextureObject was never re-used."

This commit is contained in:
Robert Osfield 2014-04-24 17:23:16 +00:00
parent bc5575f83a
commit 77f1c58345

View File

@ -249,7 +249,7 @@ void Texture2DArray::apply(State& state) const
// compute the dimensions of the texture. // compute the dimensions of the texture.
computeRequiredTextureDimensions(state, *image, new_width, new_height, new_numMipmapLevels); computeRequiredTextureDimensions(state, *image, new_width, new_height, new_numMipmapLevels);
if (!textureObject->match(GL_TEXTURE_2D_ARRAY_EXT, new_numMipmapLevels, _internalFormat, new_width, new_height, 1, _borderWidth)) if (!textureObject->match(GL_TEXTURE_2D_ARRAY_EXT, new_numMipmapLevels, _internalFormat, new_width, new_height, _textureDepth, _borderWidth))
{ {
Texture::releaseTextureObject(contextID, _textureObjectBuffer[contextID].get()); Texture::releaseTextureObject(contextID, _textureObjectBuffer[contextID].get());
_textureObjectBuffer[contextID] = 0; _textureObjectBuffer[contextID] = 0;