做东西时,出现没有绘制结果的情况。很奇怪,查看后,发现确实没有绘制物体。
稍作修改后,出现了另一个问题。在输出窗口“Need call beginscene before rendering”
但是,明明调用了SUCCEEDED(dev->BeginScene()),惆怅了一晚。第二天,读了下代码,
发现,我创建了2个Device对象,但是不是2个Device对象就会出现这个错误呢?
于是,再做下试验。
在新工程中,把代码粘贴到里面。结果,创建多个Device也没有出现这个错误。
这说明我的方向是错误的。
马上再回到代码里面,查看被我注释的代码。最后才发现,原来我的对象单体模式,在构建时候,传入了一个Device,
但是后面,我又调用了一次构建函数,但已经构建了实体,所以只返回了原实体的指针,并没有重新创建。
问题就出在这里,这2次构建的时候,分别传入了不同的Device。但我在BeginScene的时候,用的是第二次的Device,
绘制用的是第一次的Device.因此就报错了。- = 强大的调试器。
对于这个简单的错误,有3点要注意。
1。要查看是不是真的在代码的绘制前,调用了BeginScene。而不是怀疑编译器。
2。当然也有时,需要全部重新编译下。可能有编译版本不正确。
3。查看BeginScene的dev和Render的Dev是不是同一个(重要!!气人啊!!)