我正在使用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"。但是我担心发生变化,因为#" false"。
但锯齿状的形状仍然显示尽管我设置了真或假。
由#34; Gear Watch Designer"创建的Watchface旋转手上没有锯齿状的图像 如何在没有锯齿状边缘的情况下旋转图像?
答案 0 :(得分:0)
好的,我终于找到了旋转时出现锯齿状边缘的原因。
在模拟器或我的装备s2中,默认的EFL渲染引擎不是opengl
后端。
所以我可以使用以下代码修复它。
elm_config_accel_preference_set("opengl");
在创建窗口(elm_win_add)之前编写此代码,它将在旋转图像上生成抗锯齿图像。
答案 1 :(得分:0)
很抱歉答案很晚,但我相信你可以通过两种方式解决这个问题:
在映射的evas对象上调用stats.getMean()
。
正如您在其他答案中提到的那样,使用GL加速,但您甚至可能希望在后备缓冲区上启用MSAA:evas_object_anti_alias_set()