Pet*_*oip 6 glsl visual-studio premake vulkan
我希望 Visual Studio 自动检测着色器文件的更改并运行 glslangValidator 作为构建步骤,而不是手动将 GLSL 着色器编译为 SPIR-V。我正在使用 Premake 生成 Visual Studio 解决方案/项目。
一种部分有效的解决方案是在 中声明premake5.lua:
--prebuildcommands [[for %%i in (..\data\shaders\*) do (..\libs\vulkan\glslangValidator.exe -V -o "%%~dpibin\%%~nxi.spv" %%i)]]
Run Code Online (Sandbox Code Playgroud)
然后right-click shader in solution explorer -> properties -> General -> Item Type -> Custom Build Tool。
这种方法有一些缺点:
我在 premake 文档中找到的最接近的东西是:Custom Build Commands。我认为这个想法是在着色器文件上使用过滤器并生成构建命令,但我无法获得任何工作。也许其他人有想法?
看起来我误解了预制文档中的一些内容(感谢 Nicol)。我通过执行以下操作使其工作:
filter "files:../data/shaders/*"
buildcommands '"../libs/vulkan/glslangValidator.exe" -V -o "%{file.directory}/bin/%{file.name}.spv" "%{file.relpath}"'
buildoutputs "%{file.directory}/bin/%{file.name}.spv"
Run Code Online (Sandbox Code Playgroud)
现在我的 Visual Studio 项目设置与 krOoze 的答案匹配。唯一的缺点是必须为每个新着色器手动设置(或重新生成整个项目)。自定义规则看起来很有趣,但目前仅支持 Visual Studio(而且它们不支持同一规则中的多种扩展类型(.frag、.vert、.comp 等))。
| 归档时间: |
|
| 查看次数: |
1551 次 |
| 最近记录: |