Transformed "Encoded shaders" into "Encoded Resources"
Former-commit-id: ead4cc9bb162d2f9e5c08756575e84f3a9056679
This commit is contained in:
2
build/Encode Resources.bat
Normal file
2
build/Encode Resources.bat
Normal file
@@ -0,0 +1,2 @@
|
||||
premake4 encoderesources
|
||||
pause
|
||||
@@ -1,2 +0,0 @@
|
||||
premake4 encodeshaders
|
||||
pause
|
||||
@@ -1,42 +0,0 @@
|
||||
function encodeShaders()
|
||||
local targets = os.matchdirs("../src/Nazara/Renderer/Shaders/*")
|
||||
for k, targetPath in pairs(targets) do
|
||||
local shaders = os.matchfiles(targetPath .. "/*")
|
||||
for k, filePath in pairs(shaders) do
|
||||
local ext = filePath:sub(-5)
|
||||
if (ext == ".frag" or ext == ".geom" or ext == ".vert") then
|
||||
local shader, err = io.open(filePath, "r")
|
||||
if (not shader) then
|
||||
error("Failed to read shader file: " .. err)
|
||||
end
|
||||
|
||||
local header, err = io.open(filePath .. ".h", "w+")
|
||||
if (not header) then
|
||||
error("Failed to create header file: " .. err)
|
||||
end
|
||||
|
||||
for line in shader:lines() do
|
||||
line = line .. "\n"
|
||||
local length = line:len()
|
||||
for i = 1, length do
|
||||
local byte = line:sub(i, i):byte()
|
||||
if (byte >= 128) then
|
||||
byte = byte - 256
|
||||
end
|
||||
header:write(string.format("%d,", byte))
|
||||
end
|
||||
end
|
||||
|
||||
header:close()
|
||||
shader:close()
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
newaction
|
||||
{
|
||||
trigger = "encodeshaders",
|
||||
description = "Generate a includable header version of shaders",
|
||||
execute = encodeShaders
|
||||
}
|
||||
50
build/scripts/actions/encodesresources.lua
Normal file
50
build/scripts/actions/encodesresources.lua
Normal file
@@ -0,0 +1,50 @@
|
||||
function encodeResources()
|
||||
print("Encoding resources ...")
|
||||
local modules = os.matchdirs("../src/Nazara/*")
|
||||
for k, modulePath in pairs(modules) do
|
||||
local files = os.matchfiles(modulePath .. "/Resources/**")
|
||||
local resourceContent
|
||||
local headerContent
|
||||
local file
|
||||
for k, filePath in pairs(files) do
|
||||
if (filePath:sub(-2) ~= ".h") then
|
||||
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")
|
||||
resource:close()
|
||||
|
||||
local contentLength = resourceContent:len()
|
||||
|
||||
headerContent = ""
|
||||
for i = 1, contentLength do
|
||||
local b = resourceContent:sub(i, i):byte()
|
||||
if (b >= 128) then
|
||||
b = b - 256
|
||||
end
|
||||
headerContent = headerContent .. string.format("%d,", b)
|
||||
end
|
||||
|
||||
local header, err = io.open(filePath .. ".h", "w+")
|
||||
if (not header) then
|
||||
error("Failed to create header file for " .. file .. ": " .. err)
|
||||
end
|
||||
|
||||
header:write(headerContent)
|
||||
header:close()
|
||||
|
||||
print(string.format("%s (raw: %.3g kB, header: %.3g kB)", file, contentLength/1024, string.format("%.3g", headerContent:len()/1024)))
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
newaction
|
||||
{
|
||||
trigger = "encoderesources",
|
||||
description = "Generate a includable header version of resources",
|
||||
execute = encodeResources
|
||||
}
|
||||
Reference in New Issue
Block a user