From 660e9bf9748a500d7e251a84678fe410bc2f26c0 Mon Sep 17 00:00:00 2001 From: Latif Khalifa Date: Mon, 4 Jul 2011 03:18:29 +0000 Subject: [PATCH] Do texture download enqueueing from a single function that first checks if we already got that texture loaded. git-svn-id: https://radegast.googlecode.com/svn/trunk@941 f7a694da-4d33-11de-9ad6-1127a62b9fcd --- Radegast/GUI/Rendering/Rendering.cs | 37 ++++++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/Radegast/GUI/Rendering/Rendering.cs b/Radegast/GUI/Rendering/Rendering.cs index 4b42663..3b126c3 100644 --- a/Radegast/GUI/Rendering/Rendering.cs +++ b/Radegast/GUI/Rendering/Rendering.cs @@ -1016,14 +1016,13 @@ namespace Radegast.Rendering FaceData data = new FaceData(); ra.data[fi] = data; data.TextureInfo.TextureID = TEF.TextureID; - var textureItem = new TextureLoadItem() + + DownloadTexture(new TextureLoadItem() { Data = data, Prim = ra.avatar, TeFace = ra.avatar.Textures.FaceTextures[fi] - }; - - PendingTextures.Enqueue(textureItem); + }); } } } @@ -1685,6 +1684,17 @@ namespace Radegast.Rendering return picked != null; } + public void DownloadTexture(TextureLoadItem item) + { + if (TexturesPtrMap.ContainsKey(item.TeFace.TextureID)) + { + item.Data.TextureInfo.TexturePointer = TexturesPtrMap[item.TeFace.TextureID].TexturePointer; + } + else + { + PendingTextures.Enqueue(item); + } + } private void MeshPrim(Primitive prim, FacetedMesh mesh) { @@ -1763,14 +1773,19 @@ namespace Radegast.Rendering else { - var textureItem = new TextureLoadItem() + if (TexturesPtrMap.ContainsKey(teFace.TextureID)) { - Data = data, - Prim = prim, - TeFace = teFace - }; - - PendingTextures.Enqueue(textureItem); + data.TextureInfo.TexturePointer = TexturesPtrMap[teFace.TextureID].TexturePointer; + } + else + { + DownloadTexture(new TextureLoadItem() + { + Data = data, + Prim = prim, + TeFace = teFace + }); + } } } -- 2.11.0