GUI Toolkit в OpenGL - PullRequest
       52

GUI Toolkit в OpenGL

6 голосов
/ 09 апреля 2011

Я бы хотел разработать приложение (на C ++), подобное Pure Data , но с классным графическим интерфейсом и лучшей документацией ... Да, что-то вроде Max / MSP или Reaktor , но бесплатно и открыто!

Чтобы создать привлекательный, реактивный и переносимый интерфейс, я подумал об использовании OpenGL. На мой взгляд, есть что-то вроде GUI Blender .

Перед тем, как приступить к разработке своего пользовательского инструментария для графического интерфейса, я погуглил, чтобы понять, существует ли что-то, что я мог бы использовать, и обнаружил:

  • Juce : это кажется вполне поддерживаемым, но я не понял, можете ли вы встраивать только холст OpenGL в свой интерфейс или можно отобразить все виджеты с использованием OpenGL.
  • nUI : это кажется действительно классным и портативным, но ... Его форум - пустыня, и действительно трудно найти учебник!
  • ceGUI, FLTK, GLUI: такие плоские и серые ;-) и любые другие не поддерживаются.

Знаете ли вы другой инструментарий? Как вы понимаете, я ищу портативную библиотеку (на C ++), быструю и поддерживаемую.

Другая возможность - разработка с нуля моего пользовательского инструментария с использованием SDL или Freeglut, в этом случае, что может быть лучшим решением?

P.S .: Читая другие темы по этой теме, я заметил, что многие разработчики предлагают использовать Qt ... Может ли Qt полагаться на OpenGL для рендеринга? Или это может только хост OpenGL canvas? В любом случае, вы считаете возможным (с хорошей производительностью) создать что-то подобное в Qt:

Ответы [ 3 ]

1 голос
/ 18 мая 2012

Мне нравятся Clutter и MX.

См. http://www.clutter -project.org / и https://github.com/clutter-project/mx

1 голос
/ 30 января 2017

Qt 5.7 и выше предлагает QtQuick Controls 2.0 в QML, которые реализованы в OpenGL.

http://doc.qt.io/qt-5/qtquickcontrols2-index.html

Их API очень стабилен и работает на Android, iOS, macOS, Windows, GNU / Linux и т. Д.

Вот небольшой привет мир в великой книге о QML.https://qmlbook.github.io/en/ch02/index.html#hello-world

Вы пишете JavaScript на QML, а система сборки QMake превращает его в объектный код C ++.

import QtQuick 2.5

Rectangle {
    width: 360
    height: 360
    Text {
        anchors.centerIn: parent
        text: "Hello World"
    }
    MouseArea {
        anchors.fill: parent
        onClicked: {
            Qt.quit();
        }
    }
}
1 голос
/ 09 апреля 2011

На самом деле нет хорошего инструментария openGL, они, как правило, придуманы для конкретного приложения, а затем отброшены.

Да Qt очень хорошо работает с openGL, есть openGL QGlWidget с полным аппаратным ускорением (и дополнительными ссылками на openCL).Вы можете иметь столько QGLwidget, сколько вам нужно в приложении Qt - каждый со своими собственными командами openGL.

Вы также можете смешивать Qt и openGL в одном QGlWidget (http://doc.qt.nokia.com/qq/qq26-openglcanvas.html)

Немного не по теме: Вы также можете выбрать Qt, чтобы использовать openGL для всего своего рендеринга - это все еще немного экспериментально, но означает, что 2d Qt может быть намного быстрее на некоторых встроенных платформах, таких как телефоны.
edit: Чтобы уточнить - все приложение все еще в нормеQt, но рисуется командами openGL «под капотом»

...