• 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。

  • 相关阅读:
    Minimum Cost POJ
    SPFA费用流模板
    ISAP模板
    822D My pretty girl Noora
    822C Hacker, pack your bags!
    Dinic模板
    extjs最普通的grid
    springmvc配置首页的方式
    JSTL select和checkbox的用法
    请教<context:component-scan/>和<mvc:annotation-driven/>的区别20
  • 原文地址:https://www.cnblogs.com/dawn/p/1701352.html
Copyright © 2020-2023  润新知