#cairo #gtk3
#cairo #gtk3
Вопрос:
Я хочу создать окно с использованием GTK 3 под Linux (fedora 12) и нарисовать на нем простой прямоугольник, используя серверную часть cairo-gl, для этого я хочу создать поверхность cairo-gl. Как я могу это сделать, кто-нибудь может помочь мне с примером кода.
Заранее спасибо.
RC7
Ответ №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
Я дал тебе кучу кубиков Lego. Теперь вам нужно их собрать. (Или, может быть, кто-то, у кого больше времени, сделает это и напишет лучший ответ здесь?)
Комментарии:
1. Спасибо. Это должно заставить людей начать. Как вы можете видеть, документации в этой области довольно мало.