
从类结构上看其继承与RenderManager和IRenderTarget
架构上设计来说,这点事为了敞开接口,与硬件实现分离,
通过C++的多态机制来实现接口分离的作用!
void DirectXRenderManager::drawOneFrame()
{
static Timer timer;
//static variable first initialized
//it will keep his value during next change!
static unsigned long last_time = timer.getMilliseconds();
unsigned long now_time = timer.getMilliseconds();
unsigned long time = now_time - last_time;
Gui* gui = Gui::getInstancePtr();
if (gui != nullptr)
gui->_injectFrameEntered((float)((double)(time) / (double)1000));
last_time = now_time;
begin();
LayerManager::getInstance().renderToTarget(this, mUpdate);
end();
mUpdate = false;
}这个例程中有两点需要注意:
第一点是gui frame Enter事件的注入
Gui* gui = Gui::getInstancePtr();
if (gui != nullptr)
gui->_injectFrameEntered((float)((double)(time) / (double)1000));第二点是 LayerManager的渲染过程
begin();
LayerManager::getInstance().renderToTarget(this, mUpdate);
end();begin 和 end 熟悉的pipe line 格式
本文探讨了DirectX渲染管理中的关键流程,包括帧注入事件的处理和LayerManager的渲染过程,展示了如何通过C++多态机制实现接口分离。
4860

被折叠的 条评论
为什么被折叠?



