1
0
mirror of https://github.com/luanti-org/luanti.git synced 2025-11-04 01:05:48 +01:00

Irrlicht: fix mipmaps regenerated multiple times

This commit is contained in:
sfan5
2025-10-12 20:55:10 +02:00
parent ae6aac8aa9
commit 04a443e392
3 changed files with 5 additions and 9 deletions

View File

@@ -186,11 +186,8 @@ public:
You may want to call regenerateMipMapLevels() after this when you changed any data. */
virtual void unlock() = 0;
//! Regenerates the mip map levels of the texture.
/** Required after modifying the texture, usually after calling unlock().
\param layer It informs a texture about which cubemap or texture array layer
needs mipmap regeneration. */
virtual void regenerateMipMapLevels(u32 layer = 0) = 0;
//! Regenerates the mip map levels of the texture. */
virtual void regenerateMipMapLevels() = 0;
//! Get original size of the texture.
/** The texture is usually scaled, if it was created with an unoptimal

View File

@@ -605,7 +605,7 @@ protected:
void *lock(E_TEXTURE_LOCK_MODE mode = ETLM_READ_WRITE, u32 mipmapLevel = 0, u32 layer = 0, E_TEXTURE_LOCK_FLAGS lockFlags = ETLF_FLIP_Y_UP_RTT) override { return 0; }
void unlock() override {}
void regenerateMipMapLevels(u32 layer = 0) override {}
void regenerateMipMapLevels() override {}
};
core::array<SSurface> Textures;

View File

@@ -115,8 +115,7 @@ public:
}
if (HasMipMaps) {
for (size_t i = 0; i < tmpImages->size(); ++i)
regenerateMipMapLevels(i);
regenerateMipMapLevels();
}
if (!KeepImage) {
@@ -389,7 +388,7 @@ public:
LockLayer = 0;
}
void regenerateMipMapLevels(u32 layer = 0) override
void regenerateMipMapLevels() override
{
if (!HasMipMaps || (Size.Width <= 1 && Size.Height <= 1))
return;