Qt的渲染系统

QT 的 Paint System 主要是基于 QPainter, QPainterDevice 和 QPaintEngine 三个类。


1.QPainter       

  用于完成绘制操作。


2.QPaintDevice  

  可以看成是一个2维的画板,包含一些画板的基本信息。直译的话就是绘图设备。


3.QPaintEngine

  提供了接口,QPainter 使用这些接口往不同类型的 device 上绘制。QPaintEngine不直接提供给开发人员使用。打个比方,如果你想使用windows自身的绘制设备绘制UI,那么Qt就选择默认地匹配windows的QPaintEngine进行界面的绘制;如果你想用OpenGL渲染界面,则需要使用OpenGL相关的QPaintEngine。Qt自带的QGLWidget可使用OpenGL进行渲染,其内部便使用了QGLPaintEngine。

 

4.QD3DPaintEngine

  如果我希望能用Windows下的DirectX9 图形API渲染Qt界面的话,我需要创建D3D相关的QPaintEngine。具体实现可以参照QGLWidget。Qt因为跨平台选择了支持OpenGL,对D3D就没提供内部支持了。

     今天基本就到这里了,下一步的计划是,分析QGLPaintEngine的同时,逐步逐步地实现QD3DPaintEngine。

posted @ 2010-03-31 13:58  Dawnli  阅读(2063)  评论(0编辑  收藏  举报