0

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

当我旋转手表的指针时发生了问题。
看下图。

在此处输入图像描述
这是正常图像,我将其粘贴到 evas_object 并且尚未旋转。

旋转后,手的边缘变成了锯齿状。 在此处输入图像描述

齿轮 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”。但我担心tizen将其更改为“假”。

但是在我设置 true 或 false 之后,仍然显示锯齿状的形状。

由“Gear Watch Designer”创建的表盘在旋转指针时没有锯齿状图像。
如何在没有锯齿边缘的情况下旋转图像?

4

2 回答 2

2

好的,我终于找到了为什么旋转时会出现锯齿状边缘。

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

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

elm_config_accel_preference_set("opengl");

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

于 2016-10-20T10:13:35.900 回答
2

很抱歉回答得太晚了,但我相信您可以通过两种方式解决此问题:

  1. 调用evas_object_anti_alias_set()映射的 evas 对象。

  2. 正如您在另一个答案中提到的那样,使用 GL 加速,但您甚至可能希望在后台缓冲区上启用 MSAA:elm_config_accel_preference_set("opengl:msaa");

于 2017-03-07T03:07:56.903 回答