pixman和clutter box2d应用程序

时间:2012-09-18 12:03:33

标签: c box2d cairo hardware-acceleration clutter

我有一个简单的clutter-box2d应用程序(用C编写),显示一些图像掉落。它在我的arm目标(ARMv7)上运行速度非常慢, Oprofile 显示以下消耗大量CPU

  

的libpixman-1.so.0.24.4

我如何解决这个问题,我启用了EGL和X11后端,但仍然以某种方式pixman(开罗图像后端使用pixman库作为软件栅格化器。)正在使用并且应用程序变得缓慢。

如何为我的clutter-box2d应用程序获取GPU加速功能。有没有人遇到过类似的问题?

对于ARM配置选项

CLUTTER

./configure --build=i686-linux --host=armv7-none-linux-gnueabi 
              CC=armv7-none-linux-gnueabi-gcc 
              CXX=armv7-none-linux-gnueabi-g++ 
              AR=armv7-none-linux-gnueabi-ar 
              RANLIB=armv7-none-linux-gnueabi-ranlib 
              --disable-glibtest --with-x --disable-rpath --enable-xinput=no 
              --enable-shared --enable-deprecated=no --enable-egl-backend=yes 
              --enable-x11-backend=yes --prefix=/home/XYZ/install_all

CLUTTER-BOX2D

./configure --build=i686-linux --host=armv7-none-linux-gnueabi 
              CC=armv7-none-linux-gnueabi-gcc 
              CXX=armv7-none-linux-gnueabi-g++ 
              AR=armv7-none-linux-gnueabi-ar 
              RANLIB=armv7-none-linux-gnueabi-ranlib 
              --enable-shared --enable-introspection=no 
              --prefix=/home/XYZ/install_all 

COGL

./configure --build=i686-linux --host=armv7-none-linux-gnueabi 
              CC=armv7-none-linux-gnueabi-gcc 
              CXX=armv7-none-linux-gnueabi-g++ 
              --prefix=/home/XYZ/install_all --enable-gl=no --enable-gles2=yes 
              --enable-xlib-egl-platform=yes --disable-rpath 

JSON-GLIB

./configure --host=armv7-none-linux-gnueabi 
              CC=armv7-none-linux-gnueabi-gcc 
              CXX=armv7-none-linux-gnueabi-g++ 
              --enable-introspection=no --disable-glibtest 
              --prefix=/home/XYZ/install_all

LIB-PNG
./configure --build=i686-linux --host=armv7-none-linux-gnueabi 
              CC=armv7-none-linux-gnueabi-gcc 
              CXX=armv7-none-linux-gnueabi-g++ 
              --prefix=/home/XYZ/install_all

1 个答案:

答案 0 :(得分:1)

Clutter内部不使用Cairo。 Clutter-Box2D仅更新actor的位置以匹配内部计算的世界。

您是否正在使用Cairo绘制Box2D世界中演员的内容?

您是否正在重绘每一帧的内容?

如果这两个问题都没有肯定答案,您是否确定您的平台支持GL或GLES驱动程序?