Chinaunix首页 | 论坛 | 博客
  • 博客访问: 64091
  • 博文数量: 29
  • 博客积分: 1250
  • 博客等级: 中尉
  • 技术积分: 292
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-30 13:04
文章分类

全部博文(29)

文章存档

2009年(24)

2008年(5)

我的朋友

分类:

2008-11-27 10:38:03

我在qtopia上新增加了图形加速卡,不过遇到了问题,请大侠帮忙指点:
1. 屏幕闪烁问题:只要有画图,图像就会闪烁
2. 透明色的问题:帖的图像没有透明色。
我参考的文档是:
我将图像加速卡命名为pallas. 把附件merge到target端就编译后,可以直接运行。
文件: qtopia_update_2d.rar
大小: 29KB
下载: 下载
Configure时只需要:
qtopia-4.3.1-build> echo "yes" | ../qtopia-4.3.1-src/configure -device omap5912
然后进行make & make install
configure的参数在device的目录下面。
 
运行时需要使用:

export QWS_DISPLAY=pallas:mmWidth=45:mmHeight=60

 

 

我认为问题出现的原因可能是下面几个函数造成的:

1.

void* PallasPaintDevice::memory() const

{

    return QScreen::instance()->base();

}

参考了: http://doc.trolltech.com/4.3/qcustomrasterpaintdevice.html#memory

不过文档说明得不是很清楚,不知道哪位知道这个函数具体怎么实现?

 

2.

void PallasScreen::exposeRegion(QRegion r, int changing)

{

    QScreen::exposeRegion(r, changing);

}

参考了:

也不是很清楚这个函数的实现。注意PallasScreen 是从QLinuxFbScreen继承来的。

 

3.

PallasSurface::PallasSurface()

: QWSWindowSurface()

{

    setSurfaceFlags(Opaque);

    // setSurfaceFlags(Buffered);

    pDevice = 0;

}

PallasSurface::PallasSurface(QWidget *w)

    : QWSWindowSurface(w)

{

    setSurfaceFlags(Opaque);

    // setSurfaceFlags(Buffered);

    pDevice = new PallasPaintDevice(w);

}

这两个函数有两点问题

a. 当我调用setSurfaceFlags(Buffered);时,qtopia在进入idle之前关掉,应该是什么地方出错了。

b. 调用这个函数setSurfaceFlags(Opaque)好像没有什么效果。

 

不知到哪位有这方面的经验,如果哪位大侠用了小弟的patch编译不起来的可以给我留言,多谢!

 

我的环境是:qtopia 4.3.1.

编译参数为:

-edition phone

-xplatform omap5912

-arch arm

-prefix /opt/Qtopia

-release

-launch-method normal

-displaysize 240x320

-iconsize 22

-v4l2

-no-qvfb

-no-voip

-no-sxe

-no-infrared

-no-samples

-no-ssl

-bluetooth

-dbus

-no-drm

-no-auto-i18n-fonts

-sound-system alsa

-qtopiamedia

-mediaengines helix,cruxus

-helix-system-id linux-2.2-libc6-arm9-cross-gcc4

-extra-qtopiacore-config "-no-freetype -no-largefile -qt-mouse-tslib"

-extra-qt-config "-no-largefile"

 

 

阅读(738) | 评论(4) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2009-03-16 17:38:02

因为Qtopia项目整体close,所以项目没有继续做下去。最后的状态是: 已经解决的问题: 1. 坐标系统转换问题 2. 屏幕闪屏问题 3. 画矩形时边框问题 4. 重叠的widget半透明问题 5. 画图片时的透明色问题 6. 等待画面中,小时钟没有半透明效果,小时钟的背景不会随背后的画面变化而变化,小时钟周围有蓝色的小点 7. 有时候,开机的时候(at the beginning of running Qtopia)会画屏 8. 在主菜单的九宫格中,Foucs到的Item应该有个绿色的光环,现在看不见了。 还剩余的问题有: 1. 偶尔有一些不应该出现的小线段出现在画面上[这个原因基本已经找到,并且也做了相应的修改,还没有测试。] 另外,找了一个比较笨的替代方案来做2D的加速。效果不是很好,不过没有以上Bug.

chinaunix网友2009-03-16 17:38:02

因为Qtopia项目整体close,所以项目没有继续做下去。最后的状态是: 已经解决的问题: 1. 坐标系统转换问题 2. 屏幕闪屏问题 3. 画矩形时边框问题 4. 重叠的widget半透明问题 5. 画图片时的透明色问题 6. 等待画面中,小时钟没有半透明效果,小时钟的背景不会随背后的画面变化而变化,小时钟周围有蓝色的小点 7. 有时候,开机的时候(at the beginning of running Qtopia)会画屏 8. 在主菜单的九宫格中,Foucs到的Item应该有个绿色的光环,现在看不见了。 还剩余的问题有: 1. 偶尔有一些不应该出现的小线段出现在画面上[这个原因基本已经找到,并且也做了相应的修改,还没有测试。] 另外,找了一个比较笨的替代方案来做2D的加速。效果不是很好,不过没有以上Bug.

chinaunix网友2008-12-19 10:15:35

目前的状况是: 已经解决的问题: 1. 坐标系统转换问题 2. 屏幕闪屏问题 3. 画矩形时边框问题 4. 重叠的widget半透明问题 5. 画图片时的透明色问题 还剩余的问题有: 1. 等待画面中,小时钟没有半透明效果,小时钟的背景不会随背后的画面变化而变化,小时钟周围有蓝色的小点 2. 偶尔有一些不应该出现的小线段出现在画面上 3. 有时候,开机的时候(at the beginning of running Qtopia)会画屏 4. 在主菜单的九宫格中,Foucs到的Item应该有个绿色的光环,现在看不见了。

chinaunix网友2008-12-19 10:15:35

目前的状况是: 已经解决的问题: 1. 坐标系统转换问题 2. 屏幕闪屏问题 3. 画矩形时边框问题 4. 重叠的widget半透明问题 5. 画图片时的透明色问题 还剩余的问题有: 1. 等待画面中,小时钟没有半透明效果,小时钟的背景不会随背后的画面变化而变化,小时钟周围有蓝色的小点 2. 偶尔有一些不应该出现的小线段出现在画面上 3. 有时候,开机的时候(at the beginning of running Qtopia)会画屏 4. 在主菜单的九宫格中,Foucs到的Item应该有个绿色的光环,现在看不见了。