symbian系统api中对alpha混合的实现不是很好,至少不是很灵活,比如必须配合256级灰度mask图等,如果只是想填充半透明的矩形区域的话这样显然比较浪费内存。比较好的方法是自己实现类似矩形半透明填充等的算法,也就是那个src*alpha+(1-alpha)*dst的alpha混合算法,通过一些多项式合并以及用整数运算代替浮点运算的方法,可以对其执行效率有一定的优化,在内存允许的情况下,使用查表的方式可以对速度有更进一步的提高。另一个问题是,对于N95类ARMv6架构的CPU来说,如何在生成exe的时候使编译器支持armv6指令从而使用simd对alpha混合等大量像素级的数据运算进行并行优化?目前研究了一段时间也没发现carbide上能启用armv6的方式,我想是由于需要对N73类同为3rd的机型的兼容吧。
移动平台
[ZT]CMWAP 和CMNET 的主要区别与适用范围
如果你是一个菜鸟或者初学者,不妨直接跳到第(4)节,看看我提供的”应用程序能否工作于CMWAP的辨别方法”;如果你希望对CMWAP和CMNET有一个详细的了解,那么就读完全篇吧;如果你对这个问题有所研究的话,还请不吝赐教,解开仍旧困惑我的几个疑问。
Symbian下用DSA绘图游戏的资源loading
工作一天累了,坐在回家的公共汽车上,按着手机总结一下今天的loading研究。(wp能用手机写文章真是舒坦啊!)
symbian下的游戏一般使用CTimer或CIdle等基于活动对象的方式驱动动画绘图逻辑,而资源加载所需的图片解码等操作用的imagedecoder也是活动对象方式实现,这就有可能导致逻辑混乱…
Continue reading…
[ZT]Symbian OS s60 3rd编程中实现IMSI、IMEI查询
#ifndef MYTELEPHONY_H
#define MYTELEPHONY_H
#include
#include
class CMyTelephony : public CActive
{
public:
static void GetIMSIL(TDes& aIMSI);
static void GetIMEIL(TDes& aIMEI);
static void GetPhoneType(TDes& aPhoneType);
static void DialPhone(const TDesC& aPhoneId);
static CMyTelephony* NewL();
protected:
void DoCancel();
void RunL();
private:
static CMyTelephony* NewLC();
~CMyTelephony();
CMyTelephony();
void ConstructL();
void GetSubscriberId();
void GetPhoneId();
private:
CTelephony* iTelephony;
CTelephony::TCancellationRequest iRequest;
CTelephony::TSubscriberIdV1 iSubscriberId;
CTelephony::TSubscriberIdV1Pckg iSubscriberIdPckg;
CTelephony::TPhoneIdV1 iPhoneId;
CTelephony::TPhoneIdV1Pckg iPhoneIdPckg;
CTelephony::TCallId iCallId;
TBuf<32> iPhoneType;
public :
void DialNewCall(const TDesC& aTelNumber);
};
#endif // MYTELEPHONY_H
Symbian IAP相关…
1.从CommDb中获取接入点信息:
CCommsDatabase* DB=CCommsDatabase::NewL(EDatabaseTypeIAP);
CleanupStack::PushL(DB);
CCommsDbTableView* view= DB->OpenIAPTableViewMatchingBearerSetLC(
ECommDbBearerGPRS|ECommDbBearerWLAN, //GPRS和无线局域网
ECommDbConnectionDirectionOutgoing); //方向无所谓的,写Unknown也可以
User::LeaveIfError(view->GotoFirstRecord()); //转到第一条记录
RGA在非官方支持平台上的可安装情况
虽然nokia官方声明的随open c放出的RGA图形声音库只能在s60 3rd中的部分机型上使用,但根据其本质(新N-Gage的一部分)分析,理论上应该可以应用于所有s60 3rd机型,新N-Gage平台通过破解手机证书系统可以实现安装在所有三版机上,但由于硬件性能的差别导致部分n-gage游戏在N73这类机型上不能正常运行。目前测试的在E71机型上可以正常安装RGA库,可用性还有待测试。
TRAP和TRAPD对后面函数调用的一个细节…
今天刚注意到TRAP和TRAPD类的宏内的函数调用,如果没写(),编译时也不会报错,但是实际函数并没有执行,本来以为类型MFC的消息映射机制,看来不是…
[ZT]S60 3rd FP1 SDK编译的SDK自带的例子在N73上无法正确显示程序图标
基本原因是Nokia的mifconf变了。
方法1:
找到S60 3rd MR SDK中的mifconv.exe, 用其替换3rd FP1以及之后的SDK的mifconv.exe应该可以解决图
标消失问题。
3rd FP1以及之后的SDK的mifconv.exe生成的mif文件尺寸明显小于早期版本生成的mif文件,也许Nokia修改了mif的压缩算法导致图标不能兼容。
自己琢磨出方法1后,在网络上找到了另外一种方法。
方法2:
Issue with SVG icon display on 3rd edition
From Forum Nokia Wiki
SVG(scalable vector graphics) icons sometimes do not show up on S60
3rd edition devices when built with S60 3rd edition SDK.
This problem is because of the fact that mifconv.exe compresses the
icons which the devices are unable to read.
To fix this issue,disable the SVG compression option by specifying
‘/X’ option in mifconv.exe.
Retrieved from “http://wiki.forum.nokia.com/index.php/Issue_with_SVG_icon_display_on_3rd_edition”
RGA app in symbian tasks list
As far as I checked RGA example applications don’t appear in Symbian tasks list.
Am I missing something or it’s not supported?
Does anyone know how to fix it?
Well, N-Gage applications don’t show in the task list. Generally I think only S60 GUI applications show up there.
To hide an app:
CApaWindowGroupName has a SetHidden() method which you call with ETrue.
To make one visible you could try SetHidden(EFalse)…
I am wondering if the system considers an RGA application as a non-gui app, or whether they’re just deliberately hidden for N-Gage.
Sorcery