写的GTK+程序在linux下和windows下行为不一样。

软件和网站开发以及相关技术探讨
回复
kangtian
帖子: 336
注册时间: 2007-04-22 13:14

写的GTK+程序在linux下和windows下行为不一样。

#1

帖子 kangtian » 2018-03-12 9:52

源码完全相同,windows下的编译环境是msys2中的mingw64,编译过程也没有警告和报错。

linux下按照预期运行,windows下行为古怪。
kangtian
帖子: 336
注册时间: 2007-04-22 13:14

Re: 写的GTK+程序在linux下和windows下行为不一样。

#2

帖子 kangtian » 2018-03-12 21:58

有研究了下,可能是多线程所致。
因为我的程序里使用了多线程,可能linux和windows的线程机制不同。
kangtian
帖子: 336
注册时间: 2007-04-22 13:14

Re: 写的GTK+程序在linux下和windows下行为不一样。

#3

帖子 kangtian » 2018-03-18 17:15

找到真正的原因了,多线程可能是原因之一;但是真正的原因还是cairo。

cairo在Windows下的实现并没有使用硬件加速,相关的2D画图都是用软件实现的,非常缓慢低效。导致界面更新和数据更新不同步。
头像
astolia
论坛版主
帖子: 6396
注册时间: 2008-09-18 13:11

Re: 写的GTK+程序在linux下和windows下行为不一样。

#4

帖子 astolia » 2018-05-05 11:29

cairo有很多种后端可以选的,cairo-win32是只有gdi,但cairo-gl用opengl应该能实现硬件加速,
https://cairographics.org/backends/
回复