Изображение с неровными краями при повороте с картой Evas

#image #rotation #tizen #efl #samsung-gear-s2

#изображение #поворот #tizen #efl #samsung-gear-s2

Вопрос:

Я создаю приложение для часов для Samsung Gear S2 с собственным приложением EFL.

Проблема возникла, когда я поворачиваю стрелки часов.
Посмотрите на следующее изображение.

введите описание изображения здесь
Это обычное изображение, я вставляю его в evas_object, и оно еще не повернуто.

После того, как я его повернул, край рук изменился на неровную форму, похожую на нее. введите описание изображения здесь

Разрешение gear s2 составляет 360 пикселей X 360 пикселей, поэтому я делаю так, чтобы каждое изображение соответствовало этому размеру.

И я поворачиваю изображение со следующим кодом.

 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 изменит его на «false».

Но неровная форма все еще отображается, несмотря на то, что я установил true или false.

Циферблат, созданный «Gear Watch Designer», не имеет неровного изображения при вращении стрелок.
Как я могу повернуть изображение без неровных краев?

Комментарии:

1. Предоставленное вами изображение увеличено более чем на 100%? Если оно увеличено, то какой процент масштабирования оно составляет? какое разрешение предоставленного вами изображения?

2. Нет, я не увеличиваю изображение. высота изображения составляет 360 пикселей. так что оно почти подходит для gear s2 (360X360)

Ответ №1:

Хорошо, наконец, я нашел, почему при вращении появляется зазубренный край.

В эмуляторе или моем gear s2 механизм рендеринга EFL по умолчанию не opengl является серверной частью.

Итак, я могу исправить это с помощью следующих кодов.

 elm_config_accel_preference_set("opengl");
  

Напишите этот код перед созданием окна (elm_win_add), он создаст сглаженное изображение на вращающемся изображении.

Ответ №2:

Извините за очень поздний ответ, но я считаю, что вы можете решить эту проблему двумя способами:

  1. Вызовите evas_object_anti_alias_set() сопоставленный объект evas.

  2. Как вы упоминали в другом ответе, используйте ускорение GL, но вы даже можете включить MSAA в фоновом буфере: elm_config_accel_preference_set("opengl:msaa");