У меня есть программа, которая отображает анимацию с фиксированной частотой кадров (скажем, 30 кадров в секунду) в окне.Как напрямую писать в буфер отображения в GTK/GDK
В настоящее время я использую 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
Я не хочу использовать какие-либо функции, кроме очень простой ГДК/GTK требует создания и управления окном и получить входные события.
В FAQ они предлагают использовать GdkRGB. Однако в официальной документации для GdkRGB они используют функцию gdk_draw_rgb_image()
, которая устарела, на самом деле большинство функций GdkRGB.
В качестве альтернативы они предлагают использовать OpenGL. Проблема с этим заключается в том, что для этого требуется некая обычная lib, такая как GtkGLArea, которая не является частью GTK (я не хочу зависеть от каких-либо библиотек, которые не установлены по умолчанию). Кроме того, в моей системе поддержка OpenGL драйвера ... ограничена.
Я изучил Каир (который предлагается в качестве альтернативы для некоторых устаревших функций), но это добавит еще более шаблонный код (и я подозреваю дополнительные накладные расходы) для моей относительно простой проблемы.
Я подозреваю, что GTK без каких-либо вспомогательных библиотек не является подходящим инструментом для работы. Это инструментарий пользовательского интерфейса, а не набор инструментов для рисования. – ptomato