|
最近一直被这个流畅滚动字幕(跑马灯)的问题搞得焦头烂额,试过很多方式。这里作下总结,还请各位高手指下路。
1 . PyQt 框架下实现,这个下面我没有常使用OPENGL,而是试过两种方式,一种是移动QLABEL及类似方式,一种是用QANIMATIONPROPRTY的方式,性能都不行。都遇到,文本多卡的问题
2.PYGAME下实现, 这里下面性能相对还行,因为底层是用SDL实现的,窗口化时无法实现双缓冲,所以也是比较卡。
3.PYGLET, 这个下面调的是GDI+(WIndows)字体渲染库,,我建立了一个OPENGL CONTEXT,然后用 font.Text() 然后text.draw()方法渲染文本, 但比PYGAME更卡,但有个好处,不用分割文本,超长文本都支持。
最后被逼到绝路上了,可能只有放弃PYTHON搞这个东西了,因为我想用
FTGL渲染字体加上OPENGL这个方式,听说性能不错。
PYGLETDRAW的 代码:
def draw(self):
glClear(GL_COLOR_BUFFER_BIT)
glClearColor(self.bColor[0],self.bColor[1],self.bColor[2],self.bColor[3])
self.x= self.x -self.step
if self.text.x < - self.text.width:
self.x = 0
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
self.text.x =self.win.width + self.x
self.text.draw()
self.fps.draw()
我想问下,我这样调PYGLET的 TEXT.DRAW() ,是不是用OPENGL渲染出来的? |
|