Мне нужно написать приложение, в котором основное содержимое будет отображаться в OpenGL (что-то вроде движка игры), но нет хорошей библиотеки GUI на основе OpenGL, аналогичной тому, что делают виджеты Qt (но они представляют собой программные средства).Смешивание OpenGL и программного обеспечения, созданного GUI
Как я просматривал исходный код Qt, все рисунки выполняются через QPainter, и в OpenGL реализована даже реализация QPainter, но suppport для нескольких графических бэкэндов был сброшен в Qt 5, поэтому вы не можете отображать Qt Widgets в OpenGL больше (я не знаю почему).
Проблема заключается в том, что вы не можете рисовать поверхность окна, используя как программную, так и аппаратную визуализацию. Вы можете иметь окно, связанное с контекстом OpenGL, или использовать рендеринг программного обеспечения. Это означает, что если я хочу иметь приложение со сложным графическим интерфейсом с содержимым на основе OpenGL, мне нужно либо нарисовать все, используя OpenGL (что сложно, потому что, как я уже сказал, для него нет хорошей библиотеки GUI), или я могу визуализировать GUI для изображения, используя (например, Qt), а не загружать это изображение как текстуру OpenGL (возможно, большую потерю производительности).
Кто-нибудь знает какое-либо хорошее приложение, использующее программный графический интерфейс, загруженный как текстура в OpenGL? Я должен быть уверен, что он будет работать без большой потери производительности, но не может найти хороший пример, что он будет работать даже для приложений, таких как игровые движки.
Не могли бы вы сделать это по-другому? Отнесите сцену OpenGL к текстурной карте, а затем поместите эту текстуру в виде 2D-элемента внутри вашего графического интерфейса. Я думаю, что этот метод больше похож на то, что делают веб-браузеры, компонуя холст на HTML-странице. – emackey
emackey: да, это должно быть возможно, но это, вероятно, означает загрузку содержимого из памяти графического процессора в ОЗУ и отображение его как изображения, поэтому в итоге переместить его из ОЗУ в графический процессор. – Krab
Добавьте тег 'OpenGL', чтобы получить больше ответов :) – emackey