c - pixman 和 clutter box2d 应用程序

标签 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

最佳答案

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

您是否使用 Cairo 来绘制 Box2D 世界中 Actor 的内容?

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

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

关于c - pixman 和 clutter box2d 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12476656/

相关文章:

java - 崩溃 : com. badlogic.gdx.physics.box2d.World.jniCreateBody

graphics - 在 Cairo 中创建可变宽度笔画

c# - 无法使用 Mono.Cairo

c - "Invalid read of size 4"尝试重新分配内存时

c - c89 中的 fmax 和 fmin 替代方案

编译错误: cannot allocate an array of constant size 0. 为什么会出现这个?

c - return 在程序中的使用

iphone - 如何在 iPhone 的 box2d 中创建路径

java - libgdx中使用scene2d时如何实现box2d灯光

c++ - 如何使用 cairo 将图像写入 SVG 文件?