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:
		@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user