Browse Source

Making sure DDS files are loaded properly from GetTempResource.

Gareth Fouche 9 years ago
parent
commit
61f38a74fa
1 changed files with 20 additions and 1 deletions
  1. 20 1
      Source/Atomic/Resource/ResourceCache.cpp

+ 20 - 1
Source/Atomic/Resource/ResourceCache.cpp

@@ -712,7 +712,26 @@ SharedPtr<Resource> ResourceCache::GetTempResource(StringHash type, const String
     }
 
     // Attempt to load the resource
-    SharedPtr<File> file = GetFile(name, sendEventOnFailure);
+    SharedPtr<File> file;
+
+    // #623 BEGIN TODO: For now try to get DDS version of textures from /DDS cache sub directory,
+    // ultimately should have per platform compressed versions saved in cache
+#ifdef ATOMIC_PLATFORM_DESKTOP
+    String ext = Atomic::GetExtension(name);
+    if (ext == ".jpg" || ext == ".png" || ext == ".tga")
+    {
+        String ddsName = "DDS/" + name + ".dds";
+        file = GetFile(ddsName, false);
+        if (file)
+            LOGDEBUG("Loaded cached DDS " + name + ".dds");
+    }
+    if (!file)
+        file = GetFile(name, sendEventOnFailure);
+#else
+    // #623 END TODO
+    file = GetFile(name, sendEventOnFailure);
+#endif
+
     if (!file)
         return SharedPtr<Resource>();  // Error is already logged