Commit eb3665c2 by Jamie Madill Committed by Shannon Woods

Do not check the texture's filtering mode in Texture*::updateTexture, instead…

Do not check the texture's filtering mode in Texture*::updateTexture, instead check the texture's dirty flags. With sampler objects, it becomes difficult to rely on the texture filtering mode state to determine if mipmapping is going to be enabled in the texture, as sampler object may or may not override the texture internal state. TRAC #23453 Signed-off-by: Nicolas Capens Signed-off-by: Shannon Woods Authored-by: Jamie Madill
parent e29d1672
...@@ -807,9 +807,7 @@ void Texture2D::createTexture() ...@@ -807,9 +807,7 @@ void Texture2D::createTexture()
void Texture2D::updateTexture() void Texture2D::updateTexture()
{ {
bool mipmapping = (isMipmapFiltered() && isMipmapComplete()); int levels = (isMipmapComplete() ? levelCount() : 1);
int levels = (mipmapping ? levelCount() : 1);
for (int level = 0; level < levels; level++) for (int level = 0; level < levels; level++)
{ {
...@@ -1262,12 +1260,10 @@ void TextureCubeMap::createTexture() ...@@ -1262,12 +1260,10 @@ void TextureCubeMap::createTexture()
void TextureCubeMap::updateTexture() void TextureCubeMap::updateTexture()
{ {
bool mipmapping = isMipmapFiltered() && isMipmapCubeComplete(); int levels = (isMipmapCubeComplete() ? levelCount() : 1);
for (int face = 0; face < 6; face++) for (int face = 0; face < 6; face++)
{ {
int levels = (mipmapping ? levelCount() : 1);
for (int level = 0; level < levels; level++) for (int level = 0; level < levels; level++)
{ {
rx::Image *image = mImageArray[face][level]; rx::Image *image = mImageArray[face][level];
...@@ -1911,9 +1907,7 @@ void Texture3D::createTexture() ...@@ -1911,9 +1907,7 @@ void Texture3D::createTexture()
void Texture3D::updateTexture() void Texture3D::updateTexture()
{ {
bool mipmapping = (isMipmapFiltered() && isMipmapComplete()); int levels = (isMipmapComplete() ? levelCount() : 1);
int levels = (mipmapping ? levelCount() : 1);
for (int level = 0; level < levels; level++) for (int level = 0; level < levels; level++)
{ {
...@@ -2410,9 +2404,7 @@ void Texture2DArray::createTexture() ...@@ -2410,9 +2404,7 @@ void Texture2DArray::createTexture()
void Texture2DArray::updateTexture() void Texture2DArray::updateTexture()
{ {
bool mipmapping = (isMipmapFiltered() && isMipmapComplete()); int levels = (isMipmapComplete() ? levelCount() : 1);
int levels = (mipmapping ? levelCount() : 1);
for (int level = 0; level < levels; level++) for (int level = 0; level < levels; level++)
{ {
for (int layer = 0; layer < mLayerCounts[level]; layer++) for (int layer = 0; layer < mLayerCounts[level]; layer++)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment