DirectX9 CreateOffscreenPlainSurface返回D3DERR_INVALIDCALL

时间:2018-03-11 00:33:30

标签: c++ directx-9

在Visual Studio 2017社区版中使用c ++。据我所知,相关代码:

LPDIRECT3DSURFACE9 surface = NULL;...

...//create surface
HRESULT result = d3ddev->CreateOffscreenPlainSurface(
    100,
    100,
    D3DFMT_X8B8G8R8,
    D3DPOOL_DEFAULT,
    &surface,
    NULL);

if (result == D3DERR_INVALIDCALL) 
{
    MessageBox(window, "Error creating surface", "Error", MB_OK);
    return false;
}

它构建没有问题,但在调试/运行时,我收到消息框错误。我假设我用变量“表面”弄乱了一些东西,但我看不到哪里。此外,如果我将池从默认更改为临时,它不再返回无效调用,但我无法在以后的代码中使用该表面。

感谢您的时间和任何帮助。

1 个答案:

答案 0 :(得分:0)

我使用了错误的曲面格式,将错误的D3DFMT_X8B8G8R8与正确的D3DFMT_X8R8G8B8混淆。