У меня есть программа, которая отображает анимацию с фиксированной частотой кадров (скажем, 30 кадров в секунду) в окне.
В настоящее время я использую SDL, но, к сожалению, в ней отсутствует интеграция с рабочим столом (например, перетаскивание), и теперьвместо этого я хочу использовать GTK.
, что я хочу сделать (при условии, что окно имеет двойную буферизацию):
1 obtain off-screen buffer
2 render my stuff to buffer
3 tell the toolkit to swap buffers
4 update window
5 repeat
Я не хочу использовать какие-либо функции, кроме базовых GDK /GTK призывает создавать и управлять окном и получать входные события.
В FAQ они предлагают использовать GdkRGB.Тем не менее, в официальной документации для GdkRGB они используют функцию gdk_draw_rgb_image()
, которая устарела, на самом деле большинство функций GdkRGB.
В качестве альтернативы они предлагают использовать OpenGL.Проблема в том, что требуется некоторая необычная библиотека, например GtkGLArea, которая не является частью GTK (я не хочу зависеть от каких-либо библиотек, которые не установлены по умолчанию).Кроме того, в моей системе поддержка OpenGL в драйвере ... ограничена.
Я рассмотрел Cairo (который предлагается в качестве альтернативы для некоторых устаревших функций), но это добавило бы еще больше стандартного кода (и яподозреваю дополнительные издержки) для моей относительно простой проблемы.