Выбор между Runnable и Horeographer.FrameCallback для перераспределения поверхности OpenGLAndroid

Форум для тех, кто программирует под Android
Anonymous
Выбор между Runnable и Horeographer.FrameCallback для перераспределения поверхности OpenGL

Сообщение Anonymous »

Мое приложение (сделанное в Delphi) рендерирует на поверхности OpenGL, и рендеринг выполняется «По требованию»
для запроса перекрасной реки, у меня есть две возможные стратегии: < /p>
опция 1: Использование Runnable
Я определяю myrender как runnable и запросить перерисован это до главного Looper: < /p>

Код: Выделить всё

Looper.getMainLooper().post(MyRender);
Тогда логика рендеринга выполняется внутри run () :

Код: Выделить всё

MyRender.run() {
PaintTheSurface();
}
опция 2: Использование choreographer.framecallback
Альтернативно, я определяю myrender как a choreographer.framecallback , и запросить перераспределение, используя:

Код: Выделить всё

Choreographer.getInstance().postFrameCallback(MyRender);
Логика рендеринга затем выполняется внутри doFrame () :

Код: Выделить всё

MyRender.doFrame(frameTimeNanos: Long) {
PaintTheSurface();
}
мои наблюдения
Я пробовал оба подхода, но визуально я не замечаю никакой разницы. Я не уверен, какой подход к выбору и каковы преимущества и недостатки каждого из них. Тем не менее, другие события, которые могут вызвать перерисование, например, как события Touch или Mouse Move, - насколько мне известно, увольняются хореографом .
my my Вопросы

[*] Каковы плюсы и минусы использования runnable против хореографа.framecallback для запроса redraw?
[*] Если я использую хореограф , как он обрабатывает события прикосновения или мыши, которые не могут быть синхронизированы с временем кадра хореографа?


Подробнее здесь: https://stackoverflow.com/questions/794 ... g-an-openg

Вернуться в «Android»