#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:
Извините за очень поздний ответ, но я считаю, что вы можете решить эту проблему двумя способами:
-
Вызовите
evas_object_anti_alias_set()
сопоставленный объект evas. -
Как вы упоминали в другом ответе, используйте ускорение GL, но вы даже можете включить MSAA в фоновом буфере:
elm_config_accel_preference_set("opengl:msaa");