我想在我的c + +項目中的Direct2D中獲得自定義效果,該項目包含在c#/ XAML解決方案中。我一直在嘗試改編Windows-universal-samples git repo的D2DCustomEffects解決方案中的CustomPixelShader項目。在Visual Studio 2017中禁用內置的HLSL編譯器?
我的問題(我認爲)是他們正在項目解決方案中配置一個自定義生成步驟,以獲得fxc編譯着色器。當我嘗試模仿他們的配置時,我注意到在我的項目屬性頁面中,我有一個額外的屬性 - HLSL編譯器 - 它不存在於CustomPixelShader示例項目中(請參閱圖像)。
當我嘗試建立項目,而不嘗試配置HLSL編譯器,我得到的錯誤
Error X1507 failed to open source file: 'd2d1effecthelpers.hlsli'
這是在自定義效果例子清楚地表明,作爲重要文件着色器編譯。 d2d1effecthelpers.hlsli的路徑包含在Custom構建步驟配置中,並且我已檢查該文件在那裏。但是,如果將d2d1effecthelpers.hlsli的路徑添加到HLSL編譯器配置中的其他包含目錄中,該錯誤消息將消失,但我會遇到其他問題。我正在解釋這個,就好像HLSL編譯器試圖編譯着色器一樣,即使我真的想用Custom構建步驟來完成這個任務。
我的問題是:是否有可能以任何方式禁用Visual Studio HLSL編譯器?我注意到,如果我從項目中排除任何着色器文件,HLSL編譯器會從項目屬性頁面中消失,但是如何手動執行該操作?
另外,是否有Visual Studio內置HLSL編譯器的任何文檔在任何地方?我還沒有真正找到。我已經嘗試過,但是未能按照與示例中的「自定義」構建步驟相同的規則來構建HLSL編譯器。
我正在使用Visual Studio Community 2017 v 15.3.5。
謝謝你的回答!我從另一個論壇得到了完全相同的解決方案,我剛剛添加了該答案的摘要,但您已經打敗了我。 –