From 3026d8b9ac27c5c98f72f07c0120b8bb1975cc23 Mon Sep 17 00:00:00 2001 From: Lynix Date: Tue, 26 Nov 2013 15:59:49 +0100 Subject: [PATCH] Optimized resource encoder Is now three times faster Former-commit-id: 39397911e4b87d1831d15a32d7125a707c353bf7 --- build/scripts/actions/encodesresources.lua | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/build/scripts/actions/encodesresources.lua b/build/scripts/actions/encodesresources.lua index daba7b71d..f098cd3fd 100644 --- a/build/scripts/actions/encodesresources.lua +++ b/build/scripts/actions/encodesresources.lua @@ -1,30 +1,28 @@ function encodeResources() print("Encoding resources ...") + local startClock = os.clock() local modules = os.matchdirs("../src/Nazara/*") for k, modulePath in pairs(modules) do - local file - local headerContent local moduleName = modulePath:sub(15, -1) - local resourceContent local files = os.matchfiles(modulePath .. "/Resources/**") for k, filePath in pairs(files) do if (filePath:sub(-2) ~= ".h") then - file = filePath:sub(modulePath:len() + 12, -1) + local file = filePath:sub(modulePath:len() + 12, -1) local resource, err = io.open(filePath, "rb") if (not resource) then error("Failed to read resource file " .. file .. ": " .. err) end - resourceContent = resource:read("*a") + local resourceContent = resource:read("*a") resource:close() local contentLength = resourceContent:len() - headerContent = "" + local headerContentTable = {} for i = 1, contentLength do - local b = resourceContent:sub(i, i):byte() - headerContent = headerContent .. string.format("%d,", b) + table.insert(headerContentTable, string.format("%d,", resourceContent:byte(i))) end + local headerContent = table.concat(headerContentTable) local header, err = io.open(filePath .. ".h", "w+") if (not header) then @@ -33,11 +31,12 @@ function encodeResources() header:write(headerContent) header:close() - + print(string.format("%s: %s (raw: %.3g kB, header: %.3g kB)", moduleName, file, contentLength/1024, string.format("%.3g", headerContent:len()/1024))) end end end + print("Finished (took " .. os.clock() - startClock .. "s)") end newaction