Как создать поверхность cairo-gl под Gtk

Я хочу создать окно с помощью GTK 3 под linux (fedora 12) и нарисовать на нем простой прямоугольник с помощью бэкенда cairo-gl, для этого я хочу создать поверхность cairo-gl. Как я могу это сделать, может ли кто-нибудь помочь мне с образцом кода.

Заранее спасибо.

RC7


person RC7    schedule 24.05.2011    source источник


Ответы (1)


Ну, во-первых, вам нужно убедиться, что ваша версия cairo поддерживает gl. Я не уверен, что он есть в версии Fedora 12. Возможно, вам придется скомпилировать собственный файл cairo.

Тогда вам нужно посмотреть cairo-gl.h: http://cgit.freedesktop.org/cairo/tree/src/cairo-gl.h

В этом файле есть хороший комментарий, объясняющий, что сначала вам нужно создать cairo_device, используя ваш контекст gl, а затем передать его в cairo_gl_surface_create().

Этот файл из набора тестов cairo содержит пример поверхности gl: http://cgit.freedesktop.org/cairo/tree/test/gl-surface-source.c

Обратите внимание, что это файл .c, который включает в себя другой файл .c: http://cgit.freedesktop.org/cairo/tree/test/set-source.c

Набор тестов полон примеров программирования cairo. Используй это! :)

Я не уверен, как вы делаете GL с помощью GTK3, но в худшем случае вы можете использовать GDK для получения идентификаторов дисплея и окна X11, а затем использовать стандартные вызовы glx: http://developer.gnome.org/gdk3/stable/gdk3-X-Window-System-Interaction.html

И чтобы использовать cairo с GTK3, вам нужно посмотреть здесь: http://developer.gnome.org/gdk3/stable/gdk3-Cairo-Interaction.html И это: http://zetcode.com/tutorials/cairographicstutorial/

Я дал тебе кучу кубиков Лего. Теперь нужно их собрать. (Или, может быть, кто-то, у кого больше времени, сделает это и напишет здесь лучший ответ?)

person pzanoni    schedule 14.12.2011
comment
Спасибо. Это должно заставить людей начать. Как видите, документации в этой области довольно мало. - person Alexandre C.; 15.12.2011