- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有以下代码:
struct shaderData
{
char *shaderCode;
UINT size;
};
struct shaderData *CubeApp::GetShaderByteCode(char *compiledShader)
{
struct shaderData *sData = (struct shaderData *)malloc(sizeof(struct shaderData));
std::ifstream fin(compiledShader, std::ios::binary);
fin.seekg(0, std::ios_base::end);
UINT size = (int)fin.tellg();
fin.seekg(0, std::ios_base::beg);
sData->shaderCode = (char *)malloc(size);
fin.read(sData->shaderCode, size);
fin.close();
sData->size = size;
return sData;
}
void CubeApp::InitShaders()
{
struct shaderData *sData = GetShaderByteCode("PShader.cso");
HRESULT hr = m_d3dDevice->CreatePixelShader(sData->shaderCode, sData->size, NULL, &m_d3dPShader);
}
但是调用CreatePixelShader()时返回E_INVALIDARG,m_d3dPShader是一个NULL指针。
有什么想法吗?
最佳答案
这正是我的问题。我的硬件显示并报告支持 DirectX 11_0,但是使用 vs_5_0 或 ps_5_0 的配置文件编译我的顶点或像素着色器会导致 CreateVertexShader() | CreatePixelShader() 返回 E_INVALIDARG。
一旦我使用 vs_4_0、ps_4_0 的配置文件重新编译着色器,调用就会返回 S_OK。
关于c++ - E_INVALIDARG CreatePixelShader() 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14134781/
我有以下代码: struct shaderData { char *shaderCode; UINT size; }; struct shaderData *CubeApp::GetS
我正在使用 directx sdk 中的 fxc.exe 实用程序来编译我的着色器,然后将它们作为字节数组加载到我的应用程序中(使用此代码): inline std::vector ReadToByt
我需要将已编译的像素着色器加载到内存中以与 CreatePixelShader 一起使用,但我不能使用任何 D3DX 调用。 我该怎么做? (我使用 Visual Studio 2010 作为编译器,
我正在做一些 directX,由于某种原因 device->CreatePixelShader 给我一个访问冲突错误我已经在 ID3DBlob 和 pShader 中将 PS 初始化为 ID3D11P
我是一名优秀的程序员,十分优秀!