使用Evas地图

时间:2016-10-13 16:01:35

标签: image rotation tizen efl samsung-gear-s2

我正在使用EFL Native应用程序为Samsung Gear S2制作一个手表应用程序。

当我转动手表时出现问题 请看下面的图片。

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文档写入此设置使图像变为" SMOOTH" 默认设置为" true"。但是我担心发生变化,因为#" false"。

但锯齿状的形状仍然显示尽管我设置了真或假。

由#34; Gear Watch Designer"创建的Watchface旋转手上没有锯齿状的图像 如何在没有锯齿状边缘的情况下旋转图像?

2 个答案:

答案 0 :(得分:0)

好的,我终于找到了旋转时出现锯齿状边缘的原因。

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

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

elm_config_accel_preference_set("opengl");

在创建窗口(elm_win_add)之前编写此代码,它将在旋转图像上生成抗锯齿图像。

答案 1 :(得分:0)

很抱歉答案很晚,但我相信你可以通过两种方式解决这个问题:

  1. 在映射的evas对象上调用stats.getMean()

  2. 正如您在其他答案中提到的那样,使用GL加速,但您甚至可能希望在后备缓冲区上启用MSAA:evas_object_anti_alias_set()