首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SharpDX ShaderBytecode.CompileFromFile to PixelShader

SharpDX ShaderBytecode.CompileFromFile to PixelShader
EN

Stack Overflow用户
提问于 2016-11-11 12:03:51
回答 2查看 467关注 0票数 1

目前,我正在进行从SlimDX到SharpDX的迁移。它们之间有些东西是不同的,比如加载着色器等等:

我在创建PixelShader类时遇到了问题( VertexShader类也是如此)。问题是,我在这个问题上找到的每一个例子都无法编译。

例如:

代码语言:javascript
运行
复制
using (var pixelShaderByteCode = ShaderBytecode.CompileFromFile(filename, "PS", "ps_5_0", shaderFlags))
    shader.PixelShader = new SharpDX.Direct3D11.PixelShader(device, pixelShaderByteCode);

问题是,SharpDX.Direct3D11.PixelShader不接受ComplilationResult作为参数。我可以使用vertexShaderByteCode.Bytecode,它是一个ShaderBytecode,但这也是无效的。

有一个vertexShaderByteCode.Bytecode.Data,它是一个DataStream。我可能会从它创建byte[],但我认为这可以更容易解决吗?我漏掉了什么吗?

使用: SharpDX 3.1.1

EN

回答 2

Stack Overflow用户

发布于 2016-11-11 12:08:27

我发现了问题:

看来我也需要引用SharpDX.D3DCompiler,以便为DX11编译。它使用的是DX9编译器。

SharpDX.D3DCompiler.ShaderBytecode(DX11) vs SharpDX.Direct3D9.ShaderBytecode(DX9)

我会把这个留给任何有同样困难的人。

票数 1
EN

Stack Overflow用户

发布于 2016-11-23 22:07:24

CompilationResult由编译返回,您可以测试字节码是否为null,如果为null,则可以检查错误代码(尽管在调试中最好:)。

代码语言:javascript
运行
复制
HasErrors : boolean
Message : string

也检查一下这些。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40547654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档