LPDIRECT3DDEVICE9 ->BeginScene() 函数失败
LPDIRECT3DDEVICE9 ->BeginScene() function failed
现在,我尝试着为游戏2D执行一个引擎。我为游戏的成功创造了机会。但有一个问题。当我调用device->BeginScene()时,它不起作用。函数失败
我已经搜索并知道函数失败,因为我已经调用了device->BeginScene()之前,没有调用device->EndScene()。(这意味着我调用函数device->BeginScene()连续两次)。一些代码:
//GameEngine.cpp
void CGameEngine::Draw()
{
// let the state draw the screen
if (!states.empty())
{
this->RenderStart();// this function failed- return 0
this->Render2D_Start();
states.back()->Draw(this);
this->Render2D_Stop();
this->RenderStop();
}
}
我已经调试了很多次,但没有发现什么问题!!
有谁能帮我吗?(引擎中的所有类都是OK的,只有CIntroState和CGameEngine类有问题)下载我的项目:http://mediafire.com/?h3jumchcqujnh69
提前感谢。对不起,我英语不好。
你看过文档了吗?它指定你不允许嵌套BeginScene调用。在呼叫BeginScene
之后,必须先呼叫EndScene
,再呼叫BeginScene
。
在任何连续的present调用之间应该有一个IDirect3DDevice9::BeginScene/IDirect3DDevice9::EndScene对(IDirect3DDevice9:: present或IDirect3DSwapChain9:: present)。IDirect3DDevice9::BeginScene 应该在任何渲染执行之前调用一次, IDirect3DDevice9::EndScene 应该在所有帧渲染提交到运行时之后调用一次。多个非嵌套的IDirect3DDevice9::BeginScene/IDirect3DDevice9::EndScene对在调用present之间是合法的,但有多个对可能会导致性能下降。
- 函数返回时,带指针的复制构造函数失败
- 为什么 std::get<T> 其中 T 是调用 constexpr 函数失败的结果?
- 在 if 语句中调用重载构造函数失败
- 使用特征函数失败
- 为什么通过通用引用运算符 (&&) 将变量的引用传递给 Varadic 模板函数失败?
- 为什么我的代码在没有 chroot 函数的情况下工作,但使用 chroot 函数失败?
- 非常量调用 const 成员函数失败,只读位置C++
- 对于实际指针类型,用于检测类似指针(可取消引用)类型的模板函数失败
- C++模板化类默认构造函数失败
- STD :: MAP EMPLECE通过显式构造函数失败
- 为什么 std::apply 使用泛型函数失败
- 从返回绑定中获取函数失败
- 运算符 == 重载函数失败
- 打开不存在的文件时如何使流构造函数失败?
- 为线程构造函数传递引用以将其绑定到函数失败
- 显式DLL 1函数失败
- 模板参数扣除/替换使用Lambda表达式使用高阶函数失败
- 来自(QT)插件的调用函数失败
- 什么错误的逻辑导致我的链表的这个 push_back(..) 函数失败?
- 复制构造函数失败..重载,动态分配