纯手绘的MyGUI类图、渲染流程图

MyGUI (version 3.2 preview) class diagrams and render flow charts, sketched by liigo. 2011-12-16.


init:



IRenderTarget, RenderManager, Vertex, IVertexBuf, ITexture, DirectXRenderMananger:



BaseManager, LayerManager, ILayer, ILayNode, ILayerItem:



LayerManager tree:



2011-12-20 liigo 更新上图如下图,主要补充了Layer和LayerNode的渲染内容:

LayerManager tree, Layer.renderToTarget(), LayerNode.renderToTarget():



RenderItem, ISubWidget:



DirectXRenderManage.doRender(...) ISubWidget.createDrawItem(...):



MyGUI渲染流程总结:BaseManager.run() -> while(PeekMessage())... BaseManager.drawOneFrame() -> IDirect3DDevice9.BeginScene() ->RenderManager.drawOneFrame -> RenderManager.onFrameEvent(), begin()|SetRenderStates, onRenderToTarget() end() ->LayerManager.renderToTarget() -> ILayer.renderToTarget() -> ILayerNode.renderToTarget() -> RenderItem.renderToTarget() ->ISubWidget.doRender() to IVertexBuffer, DirectXRenderManager.doRender() ->IDirect3DDevice9.SetStreamSource() to IVertexBuffer->IDirect3DDevice9.DrawPrimitive(D3DPT_TRIANGLELIST, ...) ...and last, IDirect3DDevice9.EndScene,IDirect3DDevice9.Present().

整个渲染流程的核心是ISubWidget.doRender() 生成顶点数据(含坐标/颜色/纹理)到 IVertexBuffer,喂入IDirect3DDevice9.DrawPrimitive() 。文/liigo

以上内容为草记,主要便于自己理解。目前理解的层次有限,暂不奢求对外人有多少帮助。

续:《纯手绘的MyGUI创建Widget流程图


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值