From 2b08c37f8940776abb96d784af058fd8c115b0d2 Mon Sep 17 00:00:00 2001 From: cutealien Date: Tue, 17 Oct 2023 17:55:39 +0000 Subject: [PATCH] CSoftwareTexture::lock no longer returns image data when a mipmapLevel is requested Returns now getMipMapsData instead which for now will always be 0 in this case (but might work one day) Also removing comment about ITexture::lock() mipmapLevel parameter being broken. It got fixed in November 2019. git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6563 dfc29bdd-3216-0410-991c-e03cc46cb475 --- include/ITexture.h | 3 +-- source/Irrlicht/CSoftwareTexture.cpp | 5 ++++- tests/tests-last-passed-at.txt | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/include/ITexture.h b/include/ITexture.h index 9fe7a7c..ac28572 100644 --- a/include/ITexture.h +++ b/include/ITexture.h @@ -211,8 +211,7 @@ public: only mode or read from in write only mode. Support for this feature depends on the driver, so don't rely on the texture being write-protected when locking with read-only, etc. - \param mipmapLevel NOTE: Currently broken, sorry, we try if we can repair it for 1.9 release. - Number of the mipmapLevel to lock. 0 is main texture. + \param mipmapLevel Number of the mipmapLevel to lock. 0 is main texture. Non-existing levels will silently fail and return 0. \param layer It determines which cubemap face or texture array layer should be locked. \param lockFlags See E_TEXTURE_LOCK_FLAGS documentation. diff --git a/source/Irrlicht/CSoftwareTexture.cpp b/source/Irrlicht/CSoftwareTexture.cpp index 4d36a2a..11a2259 100644 --- a/source/Irrlicht/CSoftwareTexture.cpp +++ b/source/Irrlicht/CSoftwareTexture.cpp @@ -78,7 +78,10 @@ CSoftwareTexture::~CSoftwareTexture() //! lock function void* CSoftwareTexture::lock(E_TEXTURE_LOCK_MODE mode, u32 mipmapLevel, u32 layer, E_TEXTURE_LOCK_FLAGS lockFlags) { - return Image->getData(); + if ( mipmapLevel == 0 ) + return Image->getData(); + else + return Image->getMipMapsData(mipmapLevel); } diff --git a/tests/tests-last-passed-at.txt b/tests/tests-last-passed-at.txt index 683dc84..663ce94 100644 --- a/tests/tests-last-passed-at.txt +++ b/tests/tests-last-passed-at.txt @@ -1,4 +1,4 @@ Tests finished. 72 tests of 72 passed. Compiled as DEBUG -Test suite pass at GMT Fri Sep 22 15:57:32 2023 +Test suite pass at GMT Tue Oct 17 17:50:36 2023