【发布时间】:2017-10-10 16:07:47
【问题描述】:
我正在尝试在我的 c++ 项目中使用 Direct2D 中的自定义效果,该项目包含在 c#/XAML 解决方案中。我一直在尝试从Windows-universal-samples git repo 的D2DCustomEffects 解决方案中调整CustomPixelShader 项目。
我的问题(我认为)是他们正在项目解决方案中配置自定义构建步骤以获取 fxc 来编译着色器。当我尝试模仿他们的配置时,我注意到在我的项目属性页面中我有一个附加属性 - HLSL 编译器 - 这在 CustomPixelShader 示例项目中不存在(见图)。
当我尝试构建项目而不尝试配置 HLSL 编译器时,出现错误
Error X1507 failed to open source file: 'd2d1effecthelpers.hlsli'
这是一个在自定义效果示例中明确指出对着色器编译很重要的文件。 d2d1effecthelpers.hlsli 的路径包含在自定义构建步骤配置中,我已检查该文件是否存在。但是,如果我将 d2d1effecthelpers.hlsli 的路径添加到 HLSL 编译器配置中的 Additional include 目录,则该错误消息会消失,但我会遇到其他问题。我将其解释为 HLSL 编译器尝试编译着色器,尽管我确实想使用自定义构建步骤来代替。
我的问题是:是否可以以任何方式禁用 Visual Studio HLSL 编译器?我注意到如果我从项目中排除任何着色器文件,HLSL 编译器将从项目属性页面中消失,但是如何手动执行呢?
或者,是否有任何关于 Visual Studio 内置 HLSL 编译器的文档?我还真没找到。我已经尝试过,但未能让 HLSL 编译器按照与示例中的自定义构建步骤相同的规则进行构建。
我正在使用 Visual Studio Community 2017 v 15.3.5。
【问题讨论】:
标签: visual-studio visual-studio-2017 direct2d