瀏覽代碼

Prevent callback textures from loading again after failing (#778)

mcukstorm 6 月之前
父節點
當前提交
cf77a3a329
共有 2 個文件被更改,包括 3 次插入1 次删除
  1. 2 1
      Source/Core/TextureDatabase.cpp
  2. 1 0
      Source/Core/TextureDatabase.h

+ 2 - 1
Source/Core/TextureDatabase.cpp

@@ -75,10 +75,11 @@ auto CallbackTextureDatabase::EnsureLoaded(RenderManager* render_manager, Render
 	-> CallbackTextureEntry&
 {
 	CallbackTextureEntry& data = texture_list[callback_index];
-	if (!data.texture_handle)
+	if (!data.texture_handle && !data.load_failed)
 	{
 		if (!data.callback(CallbackTextureInterface(*render_manager, *render_interface, data.texture_handle, data.dimensions)))
 		{
+			data.load_failed = true;
 			data.texture_handle = {};
 			data.dimensions = {};
 		}

+ 1 - 0
Source/Core/TextureDatabase.h

@@ -57,6 +57,7 @@ private:
 		CallbackTextureFunction callback;
 		TextureHandle texture_handle = {};
 		Vector2i dimensions;
+		bool load_failed = false;
 	};
 
 	CallbackTextureEntry& EnsureLoaded(RenderManager* render_manager, RenderInterface* render_interface, StableVectorIndex callback_index);