2016-10-13 248 views
0

我正在为EFL Native应用程序制作Samsung Gear S2的手表应用程序。锯齿形边缘与Evas旋转图像

当我旋转手表时发生问题。
看看下面的图片。

enter image description here
这是正常的图像我把它粘贴到evas_object,它还没有旋转。

旋转后,手的边缘变成锯齿状。 enter image description here

齿轮s2的分辨率是360px X 360px,所以我会让每个图像都适合这个尺寸。

我用下面的代码旋转图像。

Evas_Map *m = NULL; 

m = evas_map_new(4); 

//evas_map_smooth_set(m, true); 
evas_map_util_points_populate_from_object(m, obj); 
evas_map_util_rotate(m, degree, cx, cy); 
evas_object_map_set(obj, m); 
evas_object_map_enable_set(obj, EINA_TRUE); 
evas_map_free(m); 

我试着用evas_map_smooth_set()函数修复它。
将EFL文档写入此设置会使图像变为“平滑” ,默认设置为“true”。但我担心tizen将其改为“假”。

但是参差不齐的形状仍然显示尽管我设置了true或false。

由“齿轮手表设计师”创建的表盘在旋转双手时没有参差不齐。
如何旋转图像而没有锯齿边缘?

+0

是您提供的图像缩放超过100%?如果它放大缩小的百分比是多少?你提供的图像的分辨率是多少? –

+0

不,我没有放大图像。图像的高度为360px。所以它几乎适合齿轮S2(360X360) –

回答

0

好的,终于我发现为什么参差不齐的边缘出现在旋转中。

在模拟器或我的装备s2中,默认的EFL渲染引擎不是opengl后端。

所以我可以用下面的代码修复它。

elm_config_accel_preference_set("opengl"); 

在创建窗口(elm_win_add)之前写下此代码,它将在旋转图像上制作消除锯齿的图像。

0

对不起,我回答得很晚,但我相信你可以通过两种方式解决这个问题:所映射的舱外活动对象上

  1. 呼叫evas_object_anti_alias_set()

  2. 正如你在另一个答案已经mentionned,使用GL加速,但你甚至可能要在后备缓冲启用MSAA:elm_config_accel_preference_set("opengl:msaa");