working on rendering

This commit is contained in:
2025-12-23 15:03:44 +02:00
parent 5a71b3023a
commit 3b4e2eea32
65 changed files with 1971 additions and 190 deletions

View File

@@ -0,0 +1,75 @@
#include "c.h"
#include "helper.h"
#include "ld.h"
#include "target.h"
CUtlString shadercompiler_lib;
CUtlString shadercompiler_exe;
DECLARE_BUILD_STAGE(libshadercompiler)
{
CProject_t stProject;
LinkProject_t stLinkProject;
CUtlString szOutput;
stProject.m_szName = "shadercompiler";
stProject.m_target = Target_t::HostTarget();
stProject.bFPIC = true;
stProject.includeDirectories = {
"public",
"external/slang/include",
"external/Vulkan-Headers/include",
};
stProject.files = {
"shadercompiler/slang/vulkan_spirv.cpp",
"materialsystem/compiledshader.cpp",
};
stLinkProject = ccompiler->Compile(&stProject);
stLinkProject.linkType = ELINK_STATIC_LIBRARY;
szOutput = linker->Link(&stLinkProject);
shadercompiler_lib = szOutput;
return 1;
}
DECLARE_BUILD_STAGE(shadercompiler)
{
CProject_t stProject;
LinkProject_t stLinkProject;
CUtlString szOutput;
stProject.m_szName = "fsc";
stProject.m_target = Target_t::HostTarget();
stProject.includeDirectories = {"public"};
stProject.files = {
"shadercompiler/main.cpp",
};
stLinkProject = ccompiler->Compile(&stProject);
stLinkProject.linkType = ELINK_EXECUTABLE;
stLinkProject.objects.AppendTail((Object_t){tier0_lib});
stLinkProject.objects.AppendTail((Object_t){tier1_lib});
stLinkProject.objects.AppendTail((Object_t){tier2_lib});
stLinkProject.objects.AppendTail((Object_t){shadercompiler_lib});
stLinkProject.libraries = {"slang-compiler","slang-glslang-2025.24.2"};
stLinkProject.libraryDirectories = {"external/linux"};
szOutput = linker->Link(&stLinkProject);
filesystem2->MakeDirectory(CUtlString("%s/bin/tools", szOutputDir.GetString()));
filesystem2->CopyFile(CUtlString("%s/bin/tools", szOutputDir.GetString()), szOutput);
filesystem2->CopyFile(CUtlString("%s/bin/tools", szOutputDir.GetString()), "external/linux/libslang-compiler.so.0.2025.24.2");
filesystem2->CopyFile(CUtlString("%s/bin/tools", szOutputDir.GetString()), "external/linux/libslang-glslang-2025.24.2.so");
shadercompiler_exe = CUtlString("%s/bin/tools/fsc", szOutputDir.GetString());
return 1;
}
DECLARE_BUILD_STAGE(compileshaders)
{
if (CommandLine()->CheckParam("-nofsc"))
return 0;
CUtlVector<CUtlString> args = {"-i", "funnyassets", "-o", "build/funnygame/assets"};
runner->Run(shadercompiler_exe, args);
runner->Wait();
return 0;
};