Browse Source

Windows Player build checks for cached DDS versions of textures and excludes original textures if DDS is found.

Matt Benic 9 years ago
parent
commit
0deca90324

+ 6 - 2
Source/ToolCore/Build/BuildBase.cpp

@@ -149,6 +149,11 @@ bool BuildBase::BuildCopyFile(const String& srcFileName, const String& destFileN
     return true;
     return true;
 }
 }
 
 
+bool BuildBase::CheckIncludeResourceFile(const String & resourceDir, const String & fileName)
+{
+    return (GetExtension(fileName) != ".psd");
+}
+
 bool BuildBase::BuildRemoveDirectory(const String& path)
 bool BuildBase::BuildRemoveDirectory(const String& path)
 {
 {
     if (buildFailed_)
     if (buildFailed_)
@@ -278,8 +283,7 @@ void BuildBase::ScanResourceDirectory(const String& resourceDir)
             }
             }
         }
         }
 
 
-        // TODO: Add additional filters
-        if (GetExtension(filename) == ".psd")
+        if (!CheckIncludeResourceFile(resourceDir, filename))
             continue;
             continue;
 
 
         BuildResourceEntry* newEntry = new BuildResourceEntry;
         BuildResourceEntry* newEntry = new BuildResourceEntry;

+ 1 - 1
Source/ToolCore/Build/BuildBase.h

@@ -55,7 +55,7 @@ protected:
     bool BuildRemoveDirectory(const String& path);
     bool BuildRemoveDirectory(const String& path);
     bool BuildCreateDirectory(const String& path);
     bool BuildCreateDirectory(const String& path);
     bool BuildCopyFile(const String& srcFileName, const String& destFileName);
     bool BuildCopyFile(const String& srcFileName, const String& destFileName);
-
+    virtual bool CheckIncludeResourceFile(const String& resourceDir, const String& fileName);
 
 
     void GenerateResourcePackage(const String& resourcePackagePath);
     void GenerateResourcePackage(const String& resourcePackagePath);
 
 

+ 22 - 0
Source/ToolCore/Build/BuildWindows.cpp

@@ -12,6 +12,7 @@
 #include "../ToolSystem.h"
 #include "../ToolSystem.h"
 #include "../ToolEnvironment.h"
 #include "../ToolEnvironment.h"
 #include "../Project/Project.h"
 #include "../Project/Project.h"
+#include "../Assets/AssetDatabase.h"
 
 
 #include "BuildWindows.h"
 #include "BuildWindows.h"
 #include "BuildSystem.h"
 #include "BuildSystem.h"
@@ -53,6 +54,27 @@ void BuildWindows::Initialize()
 
 
 }
 }
 
 
+bool BuildWindows::CheckIncludeResourceFile(const String& resourceDir, const String& fileName)
+{
+    // #623 BEGIN TODO: Skip files that have a converted version in the cache
+    AssetDatabase* db = GetSubsystem<AssetDatabase>();
+    String cachePath = db->GetCachePath();
+    if (resourceDir != cachePath)
+    {
+        String ext = GetExtension(fileName);
+        if (ext == ".jpg" || ext == ".png" || ext == ".tga")
+        {
+            FileSystem* fileSystem = GetSubsystem<FileSystem>();
+            String compressedPath = cachePath + "DDS/" + fileName + ".dds";
+            if (fileSystem->FileExists(compressedPath))
+                return false;
+        }
+    }
+    // #623 END TODO
+    
+    return BuildBase::CheckIncludeResourceFile(resourceDir, fileName);
+}
+
 void BuildWindows::BuildAtomicNET()
 void BuildWindows::BuildAtomicNET()
 {
 {
     // AtomicNET
     // AtomicNET

+ 1 - 0
Source/ToolCore/Build/BuildWindows.h

@@ -30,6 +30,7 @@ public:
 protected:
 protected:
 
 
     void Initialize();
     void Initialize();
+    virtual bool CheckIncludeResourceFile(const String& resourceDir, const String& fileName);
 
 
 private:
 private: