我目前正在开发一个程序来显示和控制桌面上的动画精灵。现在我的问题是将它们绘制到屏幕上。只要精灵不阻碍它,用户仍然应该能够访问其他应用程序。在(桌面)屏幕上绘制形状移动对象
我的尝试在下面,我希望有人能指引我走向正确的方向。我并不关心我需要使用哪个库,只要性能足够满足20-30个动画精灵的需求。
我尝试至今:
我第一次尝试使用Qt。我用QWidget和QLabel来显示对象的像素图。像素本身有一个alpha通道,我使用QWidget的setMask(pixmap.mask())方法去除任何我不想显示的东西,但是这种方法不能用于快速移动形状,比如移动生物。如果setMask被调用所有的50-100ms来改变掩码到下一个移动相位,那么CPU负载会变得很高,同时有很多生物同时移动。
我的第二次尝试是使用一个QWidget所有的生物,这样setMask不是每次召唤一次,而是每次只能召唤一次,可以用这种方式移动更多的生物,但当鼠标指针移动到生物上时,屏幕会像地狱一样闪烁。尝试Xlib的XShape函数来改变每个生物的形状,但表现并不比setMask好多少。
我试过Qt中的透明度,但是如果我在整个屏幕上使用QWidget,移动鼠标时X的CPU负载会变得非常高。我不知道,如果我能在这里做更好的事情。
你的整个问题可以用概括请尝试修剪这段文字。我们不需要任何第一个子弹列表,你的程序的细节与实际问题无关。 – meagar
你是对的文本墙。我是挂了我的问题,并认为“更多信息的更好的人能理解我的问题” – WkoD