Как создать cairo-gl поверхность под Gtk - PullRequest
9 голосов
/ 24 мая 2011

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

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

RC7

1 Ответ

6 голосов
/ 14 декабря 2011

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

Затем вам нужно взглянуть на 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

Обратите внимание, что это a.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/

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

...