- 主题:想用gtk和cairo做个东西
怎么说?
【 在 anything1999 (anything1999) 的大作中提到: 】
: 感觉Qt的QPainter不够好
--
FROM 140.224.35.*
所以 qpainter 到底有哪些问题呢?
我觉得可以拿 qtgui 这一部分搞个新一点的 gui 框架。qtwidgets 和 qml 我都有点看不下去。。
【 在 anything1999 (anything1999) 的大作中提到: 】
: 问题是qt和cairo搭配不好啊,qt有自己的QPainter
--
FROM 112.47.230.*
听听几个 2D 引擎有什么差别也不错啊。
而且现在最好的 2D 引擎恐怕真的不是 QtGui, chrome/firefox 的 2D 引擎也非常牛X.
【 在 libgcc (承接各种水军业务) 的大作中提到: 】
: 大哥你是来踢板的么
--
FROM 124.72.119.*
现在是 qpa 插件。可以看
/path/to/qtdir/plugins/platforms/
这个目录里面会列出多个插件。
或者随便抓个 qt 程序,比如
assistant -platform hello
带一个错误的插件名,它就会打印出支持的哪些插件了。
【 在 libgcc (承接各种水军业务) 的大作中提到: 】
: 对了,顺便问下,现在Qt5在linux下用的后端默认是啥
: 之前Qt4还有native,opengl,raster,Qt5好像没这几个选项了?
--
FROM 124.72.119.*
看你的环境啊。。
wayland 底下应该是 wayland 吧。我没试过。
xcb 跑起来以后,似乎也不是通过 xcb 绘制,只是创建一个 xcb 连接,然后用 egl 绘制?我现在还没搞明白。
【 在 libgcc (承接各种水军业务) 的大作中提到: 】
: 默认插件还是x11或者xcb?
--
FROM 124.72.119.*
用 xcb 肯定连接到 xserver. 但是 xserver 自带的 2d 绘图效率很低。因为要发送绘图指令,由 xserver 执行指令都是进程间通信。所以,qt 用了缓冲技术,先内部绘制好,再把内存传给 xserver 当作图片渲染出来就行了。
qt 用 opengl 的原理是通过 xcb 获得到 xserver 的 connection 以后,就可以向 xserver 申请一块 opengl context,里面一个指针指向显存地址区域。qt 拿着这个 context 绘图就行了,不用经过 xserver. 问题是窗口合成器在这个机制底下效率低。所以搞出了 wayland.
【 在 libgcc (承接各种水军业务) 的大作中提到: 】
: xcb还是连的xserver啊,给xserver发消息然后等响应
: 至于xserver怎么画的那我就不知道了
: 我其实也没搞清楚,比如我用了opengl,难道就不走xcb了?opengl自己直接跟显卡玩么?
: ...................
--
FROM 124.72.119.*
因为用 opengl 的话都得首先获得一个 context 啊。
比如你的 opengl 是在一个窗口里面的吧,窗口移动的时候 opengl 动画要不要跟着动。按 alt+tab 窗口管理器显示任务列表让你选择的时候,也得显示 opengl 内容吧。
所以 opengl 是不能单独存在的,不论在哪个操作系统里面。在 windows 底下也是一样的道理。
最极端的例子是 webgl, 在未开启硬件加速的情况下,它的 opengl 压根就是假的,用 CPU 模拟的。
【 在 libgcc (承接各种水军业务) 的大作中提到: 】
: 我就奇怪了,opengl可以直达显卡,为什么还要走xserver
--
FROM 124.72.119.*
framebuffer 貌似只到内存。不写到显存的吧。
【 在 dormouseBHU (dormouseBHU) 的大作中提到: 】
: 直接写 framebuffer?
--
FROM 112.47.122.*