diff --git a/premake5.lua b/premake5.lua index a610ffa5..8f6e5ecf 100644 --- a/premake5.lua +++ b/premake5.lua @@ -112,6 +112,7 @@ include "src/ZoneCommon.lua" include "src/ObjCommon.lua" include "src/ObjLoading.lua" include "src/ObjWriting.lua" +include "tools/scripts/raw.lua" -- Components group: All projects assist or are part of a tool group "Components" @@ -136,6 +137,10 @@ group "Tools" ZoneCodeGenerator:project() group "" +group "Raw" + Raw:project() +group "" + -- ======================== -- Tests -- ======================== diff --git a/raw/iw4/statemaps/additive.sm b/raw/iw4/statemaps/additive.sm new file mode 100644 index 00000000..c9fed78a --- /dev/null +++ b/raw/iw4/statemaps/additive.sm @@ -0,0 +1,66 @@ +alphaTest +{ + mtlAlphaTest == Always && mtlBlendOp == Add && mtlSrcBlend == SrcAlpha && mtlDestBlend == InvSrcAlpha: + mtlAlphaTest == Always && mtlBlendOp == Add && mtlSrcBlend == SrcAlpha && mtlDestBlend == One: + GT0; + default: + passthrough; +} + +blendFunc +{ + default: + Add, InvDestAlpha, One; +} + +separateAlphaBlendFunc +{ + default: + Disable, One, Zero; +} + +cullFace +{ + default: + passthrough; +} + +depthTest +{ + mtlDepthTest == LessEqual && mtlDestBlend == Zero: + Equal; + mtlDepthTest == LessEqual: + LessEqual; + default: + Equal; +} + +depthWrite +{ + default: + Disable; +} + +colorWrite +{ + default: + Enable, Enable; +} + +polygonOffset +{ + default: + passthrough; +} + +stencil +{ + default: + passthrough; +} + +wireframe +{ + default: + Disable; +} diff --git a/raw/iw4/statemaps/additive_stencil.sm b/raw/iw4/statemaps/additive_stencil.sm new file mode 100644 index 00000000..08123d6c --- /dev/null +++ b/raw/iw4/statemaps/additive_stencil.sm @@ -0,0 +1,68 @@ +alphaTest +{ + mtlAlphaTest == Always && mtlBlendOp == Add && mtlSrcBlend == SrcAlpha && mtlDestBlend == InvSrcAlpha: + mtlAlphaTest == Always && mtlBlendOp == Add && mtlSrcBlend == SrcAlpha && mtlDestBlend == One: + GT0; + default: + passthrough; +} + +blendFunc +{ + default: + Add, InvDestAlpha, One; +} + +separateAlphaBlendFunc +{ + default: + Disable, One, Zero; +} + +cullFace +{ + default: + passthrough; +} + +depthTest +{ + mtlDepthTest == LessEqual && mtlDestBlend == Zero: + Equal; + mtlDepthTest == LessEqual: + LessEqual; + default: + Equal; +} + +depthWrite +{ + default: + Disable; +} + +colorWrite +{ + default: + Enable, Enable; +} + +polygonOffset +{ + default: + passthrough; +} + +stencil +{ + default: + OneSided, + Equal, Keep, Keep, Keep, + Always, Keep, Keep, Keep; +} + +wireframe +{ + default: + Disable; +} diff --git a/raw/iw4/statemaps/build_floatz.sm b/raw/iw4/statemaps/build_floatz.sm new file mode 100644 index 00000000..554b407e --- /dev/null +++ b/raw/iw4/statemaps/build_floatz.sm @@ -0,0 +1,59 @@ +alphaTest +{ + default: + Always; +} + +blendFunc +{ + default: + Disable, One, Zero; +} + +separateAlphaBlendFunc +{ + default: + Disable, One, Zero; +} + +cullFace +{ + default: + passthrough; +} + +depthTest +{ + default: + passthrough; +} + +depthWrite +{ + default: + passthrough; +} + +colorWrite +{ + default: + Enable, Enable; +} + +polygonOffset +{ + default: + passthrough; +} + +stencil +{ + default: + passthrough; +} + +wireframe +{ + default: + Disable; +} diff --git a/raw/iw4/statemaps/build_shadowmap.sm b/raw/iw4/statemaps/build_shadowmap.sm new file mode 100644 index 00000000..88126d88 --- /dev/null +++ b/raw/iw4/statemaps/build_shadowmap.sm @@ -0,0 +1,63 @@ +alphaTest +{ + default: + Always; +} + +blendFunc +{ + default: + Disable, One, Zero; +} + +separateAlphaBlendFunc +{ + default: + Disable, One, Zero; +} + +cullFace +{ + mtlCullFace == Back: + Front; + mtlCullFace == None: + None; + mtlCullFace == Front: + Back; +} + +depthTest +{ + default: + passthrough; +} + +depthWrite +{ + default: + Enable; +} + +colorWrite +{ + default: + Enable, Enable; +} + +polygonOffset +{ + default: + passthrough; +} + +stencil +{ + default: + passthrough; +} + +wireframe +{ + default: + Disable; +} diff --git a/raw/iw4/statemaps/build_shadowmap_color.sm b/raw/iw4/statemaps/build_shadowmap_color.sm new file mode 100644 index 00000000..ccad5e95 --- /dev/null +++ b/raw/iw4/statemaps/build_shadowmap_color.sm @@ -0,0 +1,59 @@ +alphaTest +{ + default: + passthrough; +} + +blendFunc +{ + default: + Disable, One, Zero; +} + +separateAlphaBlendFunc +{ + default: + Disable, One, Zero; +} + +cullFace +{ + default: + None; +} + +depthTest +{ + default: + passthrough; +} + +depthWrite +{ + default: + Enable; +} + +colorWrite +{ + default: + Enable, Enable; +} + +polygonOffset +{ + default: + passthrough; +} + +stencil +{ + default: + passthrough; +} + +wireframe +{ + default: + Disable; +} diff --git a/raw/iw4/statemaps/build_shadowmap_depth.sm b/raw/iw4/statemaps/build_shadowmap_depth.sm new file mode 100644 index 00000000..989ba7e3 --- /dev/null +++ b/raw/iw4/statemaps/build_shadowmap_depth.sm @@ -0,0 +1,59 @@ +alphaTest +{ + default: + passthrough; +} + +blendFunc +{ + default: + Disable, One, Zero; +} + +separateAlphaBlendFunc +{ + default: + Disable, One, Zero; +} + +cullFace +{ + default: + None; +} + +depthTest +{ + default: + passthrough; +} + +depthWrite +{ + default: + Enable; +} + +colorWrite +{ + default: + Disable, Disable; +} + +polygonOffset +{ + default: + shadowmap; +} + +stencil +{ + default: + passthrough; +} + +wireframe +{ + default: + Disable; +} diff --git a/raw/iw4/statemaps/build_shadowmap_model.sm b/raw/iw4/statemaps/build_shadowmap_model.sm new file mode 100644 index 00000000..8ddf2983 --- /dev/null +++ b/raw/iw4/statemaps/build_shadowmap_model.sm @@ -0,0 +1,59 @@ +alphaTest +{ + default: + passthrough; +} + +blendFunc +{ + default: + Disable, One, Zero; +} + +separateAlphaBlendFunc +{ + default: + Disable, One, Zero; +} + +cullFace +{ + default: + passthrough; +} + +depthTest +{ + default: + passthrough; +} + +depthWrite +{ + default: + Enable; +} + +colorWrite +{ + default: + Disable, Disable; +} + +polygonOffset +{ + default: + shadowmap; +} + +stencil +{ + default: + passthrough; +} + +wireframe +{ + default: + Disable; +} diff --git a/raw/iw4/statemaps/clear_alpha_stencil.sm b/raw/iw4/statemaps/clear_alpha_stencil.sm new file mode 100644 index 00000000..5cc7ed4f --- /dev/null +++ b/raw/iw4/statemaps/clear_alpha_stencil.sm @@ -0,0 +1,61 @@ +alphaTest +{ + default: + Always; +} + +blendFunc +{ + default: + Disable, One, Zero; +} + +separateAlphaBlendFunc +{ + default: + Disable, One, Zero; +} + +cullFace +{ + default: + Back; +} + +depthTest +{ + default: + Disable; +} + +depthWrite +{ + default: + Disable; +} + +colorWrite +{ + default: + Disable, Enable; +} + +polygonOffset +{ + default: + 0; +} + +stencil +{ + default: + OneSided, + Always, Zero, Zero, Zero, + Always, Zero, Zero, Zero; +} + +wireframe +{ + default: + Disable; +} diff --git a/raw/iw4/statemaps/color_only.sm b/raw/iw4/statemaps/color_only.sm new file mode 100644 index 00000000..dcf74a4d --- /dev/null +++ b/raw/iw4/statemaps/color_only.sm @@ -0,0 +1,59 @@ +alphaTest +{ + default: + Always; +} + +blendFunc +{ + default: + Disable, One, Zero; +} + +separateAlphaBlendFunc +{ + default: + Disable, One, Zero; +} + +cullFace +{ + default: + Back; +} + +depthTest +{ + default: + LessEqual; +} + +depthWrite +{ + default: + Disable; +} + +colorWrite +{ + default: + Enable, Enable; +} + +polygonOffset +{ + default: + 0; +} + +stencil +{ + default: + passthrough; +} + +wireframe +{ + default: + Disable; +} diff --git a/raw/iw4/statemaps/default.sm b/raw/iw4/statemaps/default.sm new file mode 100644 index 00000000..012ac840 --- /dev/null +++ b/raw/iw4/statemaps/default.sm @@ -0,0 +1,68 @@ +alphaTest +{ + mtlAlphaTest == Always && mtlBlendOp == Add && mtlSrcBlend == SrcAlpha && mtlDestBlend == InvSrcAlpha: + mtlAlphaTest == Always && mtlBlendOp == Add && mtlSrcBlend == SrcAlpha && mtlDestBlend == One: + GT0; + default: + passthrough; +} + +blendFunc +{ + default: + passthrough; +} + +separateAlphaBlendFunc +{ + mtlBlendOp == Disable: + Disable, One, Zero; + default: + Add, InvDestAlpha, One; +} + +cullFace +{ + default: + passthrough; +} + +depthTest +{ + default: + passthrough; +} + +depthWrite +{ + mtlBlendOp == Disable: + Enable; + default: + Disable; +} + +colorWrite +{ + mtlPolygonOffset == 0: + Enable, Enable; + default: + Enable, Enable; +} + +polygonOffset +{ + default: + passthrough; +} + +stencil +{ + default: + passthrough; +} + +wireframe +{ + default: + Disable; +} diff --git a/raw/iw4/statemaps/default2d.sm b/raw/iw4/statemaps/default2d.sm new file mode 100644 index 00000000..57d9cc5f --- /dev/null +++ b/raw/iw4/statemaps/default2d.sm @@ -0,0 +1,68 @@ +alphaTest +{ + mtlAlphaTest == Always && mtlBlendOp == Add && mtlSrcBlend == SrcAlpha && mtlDestBlend == InvSrcAlpha: + mtlAlphaTest == Always && mtlBlendOp == Add && mtlSrcBlend == SrcAlpha && mtlDestBlend == One: + GT0; + default: + passthrough; +} + +blendFunc +{ + default: + passthrough; +} + +separateAlphaBlendFunc +{ + mtlBlendOp == Disable: + Disable, One, Zero; + default: + Add, InvDestAlpha, One; +} + +cullFace +{ + default: + passthrough; +} + +depthTest +{ + default: + Disable; +} + +depthWrite +{ + default: + Disable; +} + +colorWrite +{ + mtlPolygonOffset == 0: + Enable, Enable; + default: + Enable, Enable; +} + +polygonOffset +{ + default: + 0; +} + +stencil +{ + default: + Disable, + Always, Keep, Keep, Keep, + Always, Keep, Keep, Keep; +} + +wireframe +{ + default: + Disable; +} diff --git a/raw/iw4/statemaps/effect_add.sm b/raw/iw4/statemaps/effect_add.sm new file mode 100644 index 00000000..2de73bb0 --- /dev/null +++ b/raw/iw4/statemaps/effect_add.sm @@ -0,0 +1,64 @@ +alphaTest +{ + mtlAlphaTest == Always && mtlBlendOp == Add && mtlSrcBlend == SrcAlpha && mtlDestBlend == InvSrcAlpha: + mtlAlphaTest == Always && mtlBlendOp == Add && mtlSrcBlend == SrcAlpha && mtlDestBlend == One: + GT0; + default: + passthrough; +} + +blendFunc +{ + default: + passthrough; +} + +separateAlphaBlendFunc +{ + default: + passthrough; +} + +cullFace +{ + default: + passthrough; +} + +depthTest +{ + default: + passthrough; +} + +depthWrite +{ + mtlBlendOp == Disable: + Enable; + default: + Disable; +} + +colorWrite +{ + default: + Enable, Enable; +} + +polygonOffset +{ + default: + passthrough; +} + +stencil +{ + default: + passthrough; +} + +wireframe +{ + default: + Disable; +} diff --git a/raw/iw4/statemaps/multiply_fog.sm b/raw/iw4/statemaps/multiply_fog.sm new file mode 100644 index 00000000..65e0d373 --- /dev/null +++ b/raw/iw4/statemaps/multiply_fog.sm @@ -0,0 +1,66 @@ +alphaTest +{ + mtlAlphaTest == Always && mtlBlendOp == Add && mtlSrcBlend == SrcAlpha && mtlDestBlend == InvSrcAlpha: + mtlAlphaTest == Always && mtlBlendOp == Add && mtlSrcBlend == SrcAlpha && mtlDestBlend == One: + GT0; + default: + passthrough; +} + +blendFunc +{ + default: + Add, One, One; +} + +separateAlphaBlendFunc +{ + default: + Disable, One, Zero; +} + +cullFace +{ + default: + passthrough; +} + +depthTest +{ + default: + passthrough; +} + +depthWrite +{ + mtlBlendOp == Disable: + Enable; + default: + Disable; +} + +colorWrite +{ + mtlBlendOp == Disable: + Enable, Enable; + default: + Enable, Enable; +} + +polygonOffset +{ + default: + passthrough; +} + +stencil +{ + default: + passthrough; +} + +wireframe +{ + default: + Disable; +} diff --git a/raw/iw4/statemaps/nocolor.sm b/raw/iw4/statemaps/nocolor.sm new file mode 100644 index 00000000..a89eca26 --- /dev/null +++ b/raw/iw4/statemaps/nocolor.sm @@ -0,0 +1,64 @@ +alphaTest +{ + mtlAlphaTest == Always && mtlBlendOp == Add && mtlSrcBlend == SrcAlpha && mtlDestBlend == InvSrcAlpha: + mtlAlphaTest == Always && mtlBlendOp == Add && mtlSrcBlend == SrcAlpha && mtlDestBlend == One: + GT0; + default: + passthrough; +} + +blendFunc +{ + default: + Disable, One, Zero; +} + +separateAlphaBlendFunc +{ + default: + Disable, One, Zero; +} + +cullFace +{ + default: + passthrough; +} + +depthTest +{ + default: + passthrough; +} + +depthWrite +{ + mtlBlendOp == Disable: + Enable; + default: + Disable; +} + +colorWrite +{ + default: + Disable, Disable; +} + +polygonOffset +{ + default: + passthrough; +} + +stencil +{ + default: + passthrough; +} + +wireframe +{ + default: + Disable; +} diff --git a/raw/iw4/statemaps/objective.sm b/raw/iw4/statemaps/objective.sm new file mode 100644 index 00000000..6efa0a5f --- /dev/null +++ b/raw/iw4/statemaps/objective.sm @@ -0,0 +1,59 @@ +alphaTest +{ + default: + passthrough; +} + +blendFunc +{ + default: + Add, SrcAlpha, One; +} + +separateAlphaBlendFunc +{ + default: + Disable, One, Zero; +} + +cullFace +{ + default: + Back; +} + +depthTest +{ + default: + LessEqual; +} + +depthWrite +{ + default: + Disable; +} + +colorWrite +{ + default: + Enable, Enable; +} + +polygonOffset +{ + default: + passthrough; +} + +stencil +{ + default: + passthrough; +} + +wireframe +{ + default: + Disable; +} diff --git a/raw/iw4/statemaps/passthrough.sm b/raw/iw4/statemaps/passthrough.sm new file mode 100644 index 00000000..9bf9f8f9 --- /dev/null +++ b/raw/iw4/statemaps/passthrough.sm @@ -0,0 +1,59 @@ +alphaTest +{ + default: + passthrough; +} + +blendFunc +{ + default: + passthrough; +} + +separateAlphaBlendFunc +{ + default: + passthrough; +} + +cullFace +{ + default: + passthrough; +} + +depthTest +{ + default: + passthrough; +} + +depthWrite +{ + default: + passthrough; +} + +colorWrite +{ + default: + passthrough; +} + +polygonOffset +{ + default: + passthrough; +} + +stencil +{ + default: + passthrough; +} + +wireframe +{ + default: + passthrough; +} diff --git a/raw/iw4/statemaps/pixel_cost_add.sm b/raw/iw4/statemaps/pixel_cost_add.sm new file mode 100644 index 00000000..c61e26e8 --- /dev/null +++ b/raw/iw4/statemaps/pixel_cost_add.sm @@ -0,0 +1,59 @@ +alphaTest +{ + default: + Always; +} + +blendFunc +{ + default: + Add, One, One; +} + +separateAlphaBlendFunc +{ + default: + Disable, One, Zero; +} + +cullFace +{ + default: + passthrough; +} + +depthTest +{ + default: + passthrough; +} + +depthWrite +{ + default: + passthrough; +} + +colorWrite +{ + default: + Enable, Enable; +} + +polygonOffset +{ + default: + passthrough; +} + +stencil +{ + default: + passthrough; +} + +wireframe +{ + default: + Disable; +} diff --git a/raw/iw4/statemaps/premulalpha.sm b/raw/iw4/statemaps/premulalpha.sm new file mode 100644 index 00000000..e0a26aa9 --- /dev/null +++ b/raw/iw4/statemaps/premulalpha.sm @@ -0,0 +1,68 @@ +alphaTest +{ + mtlAlphaTest == Always && mtlBlendOp == Add && mtlSrcBlend == SrcAlpha && mtlDestBlend == InvSrcAlpha: + mtlAlphaTest == Always && mtlBlendOp == Add && mtlSrcBlend == SrcAlpha && mtlDestBlend == One: + GT0; + default: + passthrough; +} + +blendFunc +{ + default: + Add, One, InvSrcAlpha; +} + +separateAlphaBlendFunc +{ + mtlBlendOp == Disable: + Disable, One, Zero; + default: + Add, InvDestAlpha, One; +} + +cullFace +{ + default: + passthrough; +} + +depthTest +{ + default: + passthrough; +} + +depthWrite +{ + mtlBlendOp == Disable: + Enable; + default: + passthrough; +} + +colorWrite +{ + mtlPolygonOffset == 0: + Enable, Enable; + default: + Enable, Enable; +} + +polygonOffset +{ + default: + passthrough; +} + +stencil +{ + default: + passthrough; +} + +wireframe +{ + default: + Disable; +} diff --git a/raw/iw4/statemaps/shadowcookie_receiver.sm b/raw/iw4/statemaps/shadowcookie_receiver.sm new file mode 100644 index 00000000..e569b38b --- /dev/null +++ b/raw/iw4/statemaps/shadowcookie_receiver.sm @@ -0,0 +1,59 @@ +alphaTest +{ + default: + passthrough; +} + +blendFunc +{ + default: + Add, Zero, InvSrcColor; +} + +separateAlphaBlendFunc +{ + default: + Disable, One, Zero; +} + +cullFace +{ + default: + passthrough; +} + +depthTest +{ + default: + LessEqual; +} + +depthWrite +{ + default: + Disable; +} + +colorWrite +{ + default: + Enable, Enable; +} + +polygonOffset +{ + default: + 2; +} + +stencil +{ + default: + passthrough; +} + +wireframe +{ + default: + Disable; +} diff --git a/raw/iw4/statemaps/wireframe.sm b/raw/iw4/statemaps/wireframe.sm new file mode 100644 index 00000000..009bb3a6 --- /dev/null +++ b/raw/iw4/statemaps/wireframe.sm @@ -0,0 +1,61 @@ +alphaTest +{ + default: + Always; +} + +blendFunc +{ + default: + Disable, One, Zero; +} + +separateAlphaBlendFunc +{ + default: + Disable, One, Zero; +} + +cullFace +{ + default: + Back; +} + +depthTest +{ + default: + LessEqual; +} + +depthWrite +{ + default: + Disable; +} + +colorWrite +{ + default: + Enable, Disable; +} + +polygonOffset +{ + default: + 2; +} + +stencil +{ + default: + Disable, + Always, Zero, Zero, Zero, + Always, Zero, Zero, Zero; +} + +wireframe +{ + default: + Enable; +} diff --git a/raw/iw4/statemaps/zfeather_add.sm b/raw/iw4/statemaps/zfeather_add.sm new file mode 100644 index 00000000..25f84b0c --- /dev/null +++ b/raw/iw4/statemaps/zfeather_add.sm @@ -0,0 +1,64 @@ +alphaTest +{ + mtlAlphaTest == Always && mtlBlendOp == Add && mtlSrcBlend == SrcAlpha && mtlDestBlend == InvSrcAlpha: + mtlAlphaTest == Always && mtlBlendOp == Add && mtlSrcBlend == SrcAlpha && mtlDestBlend == One: + GT0; + default: + passthrough; +} + +blendFunc +{ + default: + passthrough; +} + +separateAlphaBlendFunc +{ + default: + Disable, One, Zero; +} + +cullFace +{ + default: + passthrough; +} + +depthTest +{ + default: + passthrough; +} + +depthWrite +{ + mtlSrcBlend == One && mtlDestBlend == Zero: + Enable; + default: + Disable; +} + +colorWrite +{ + default: + Enable, Enable; +} + +polygonOffset +{ + default: + passthrough; +} + +stencil +{ + default: + passthrough; +} + +wireframe +{ + default: + Disable; +} diff --git a/tools/scripts/folders.lua b/tools/scripts/folders.lua index e6bad73a..8e9d12fe 100644 --- a/tools/scripts/folders.lua +++ b/tools/scripts/folders.lua @@ -19,6 +19,11 @@ function TestFolder() return path.getrelative(os.getcwd(), _TestFolder) end +local _RawFolder = path.getabsolute("../../raw") +function RawFolder() + return path.getrelative(os.getcwd(), _RawFolder) +end + -- Target Directories TargetDirectoryBin = "%{wks.location}/bin/%{cfg.buildcfg}_%{cfg.platform}" TargetDirectoryLib = "%{wks.location}/lib/%{cfg.buildcfg}_%{cfg.platform}" diff --git a/tools/scripts/raw.lua b/tools/scripts/raw.lua new file mode 100644 index 00000000..2531b36d --- /dev/null +++ b/tools/scripts/raw.lua @@ -0,0 +1,52 @@ +Raw = {} + +function Raw:include(includes) + if includes:handle(self:name()) then + Utils:include(includes) + includedirs { + RawFolder() + } + end +end + +function Raw:link(links) +end + +function Raw:use() + +end + +function Raw:name() + return "Raw" +end + +function Raw:project() + local folder = RawFolder() + + project(self:name()) + targetdir(TargetDirectoryBin) + location "%{wks.location}/raw" + kind "Utility" + + files { + path.join(folder, "*/**"), + path.join(folder, "*/**") + } + + vpaths { + ["*"] = { + folder + } + } + + filter "files:**" + buildmessage 'Copying rawfile %{file.relpath}' + buildcommands { + -- Relpath contains two .. so build/raw is getting reverted in the target path + "cp \"%{file.relpath}\" \"%{cfg.targetdir}/build/raw/%{file.relpath}\"" + } + buildoutputs { + "%{cfg.targetdir}/build/raw/%{file.relpath}" + } + filter {} +end