Написание OpenGL с поддержкой GUI - PullRequest
1 голос
/ 15 июня 2010

Я изучаю возможность написания своего рода аналога ноутбука, который бы воспроизводил внешний вид обычного ноутбука, но с дополнительным преимуществом настройки страницы так, как это невозможно сделать на бумаге - спроситезапрограммируйте, чтобы выложить здесь бумагу в виде сетки, вставьте сетку, вставьте изображение, вставьте запись со встроенной камеры, попробуйте выполнить распознавание рукописного ввода на входе планшета, вставьте немного латекса для аккуратных формул и так далее.Я очень заинтересован в его разработке, просто чтобы посмотреть, может ли написание заметок на компьютере приблизиться к удобному предложению простой бумаги + карандаша (сложно сделать ИМО), и я всегда могу превратить его в университетский проект C ++, так что удвоите прибыль там.

Исходя из типа проекта, к пользовательскому интерфейсу предъявляются определенные требования:

  • пользователь сможет масштабировать, перемещать и поворачивать блокнот по своему желанию, и я думаю,довольно разумно делегировать его в OpenGL, поэтому предполагаемый графический интерфейс должен хорошо работать с OGL (желательно визуализироваться в нем)
  • интерфейс должен быть ориентирован с минимальным вводом с клавиатуры по желанию пользователя (включая некоторый виджесты, может быть) вплоть до ограничения клавиш клавиатуры в качестве модификаторов движений ручки и нажатий;это включает в себя планшет и возможную поддержку мультитач
  • интерфейс должен не мешать там, где он не нужен, и подходить там, где это необходимо, и быть легко уложенным
  • сам блокнот будет контейнером для объектов, представляющихзаписная книжка размыта, поэтому было бы неплохо, если бы графический интерфейс мог накладывать некоторые кадры на точные части нарисованного OpenGL листа, чтобы показать, что можно сделать с данной деталью (например, перемещение, вращение, удаление, копирование, редактирование и т. д.)..) и его экстенты

С точки зрения интерфейса, вероятно, он в конечном итоге будет похож на Alias ​​'Sketch Book Pro: изображение .

Что касается наборов инструментовЯ рассматриваю Qt и nui, но я не совсем понимаю, насколько хорошо они будут соответствовать требованиям и насколько хорошо они будут обрабатывать такое приложение.
Насколько я знаю, вы можете каким-то образом заставить Qt создать виджетрисовать с OpenGL, но с другой стороны я слышал голоса, это структура слот-сигнал не совсем оптимален иукомплектовывает свой собственный препроцессор, и я не знаю, насколько сложно было бы выполнить все необходимые виджеты (скажем, цветовое колесо, линейка, рамки размытия, выбор размытия, всплывающее меню для планшета и т. д.) в ограниченияхQt.Кроме того, довольно много программ Qt, которые у меня были на моей машине, казались действительно вялыми, но это может быть связано с тем, что старые ПК или программисты использовали Qt неоптимально, а не сам фреймворк.
Что касается nui (* 1022)* Я знаю, что он также кроссплатформенный и все основные вещи, которые вам потребуются от GUI-инструментария, и что самое большое, плюс он с самого начала поддерживает OpenGL, но я не знаю, как это с пользовательскими виджетами и другимиаспекты, и он, безусловно, имеет меньшую пользовательскую базу и менее сложную документацию, чем Qt.

Вопрос звучит так:

Соответствует ли какой-либо из этих наборов инструментов (предпочтительно всем) требованиям или тамэто подходящий инструментарий, с которым я не сталкивался, или, может быть, мне стоит просто засучить рукава, получить SFML (или, может быть, Clutter больше подойдет для этого?) и что-то вроде FastDelegates или libsigc ++ и программировать структуру GUI с нулясам?
Я был бы очень рад, если бы кто-нибудь имел опыт работы с подобным проектом GUI иМогу предложить некоторые комментарии о том, насколько хорошо работают эти наборы инструментов или стоит ли в этом случае использовать собственный набор инструментов с графическим интерфейсом.

Извините за длиннодушность, да.

Ответы [ 2 ]

5 голосов
/ 15 июня 2010

Вы пробовали FLTK ?Он сделан с учетом программирования трехмерной графики и имеет интерфейсы для OpenGL.Я написал несколько привязок FLTK-> Scheme и обнаружил, что API очень интересно работать с .

1 голос
/ 15 июня 2010

Поддержка шрифтов OpenGL ужасна, по моему опыту. Похоже, вам все равно придется разрабатывать все свои собственные виджеты, так что даже не надевайте инструментарий. Вы потратите больше времени на изучение инструментария, пытаясь выяснить, как заставить этот инструментарий работать с OpenGL, и пытаясь выяснить, как сделать свои специальные виджеты в этом инструментарии, чем просто развернуть свой. Я бы не дал этот совет в любой ситуации, но похоже, что ваше приложение и ваш набор виджетов будут очень уникальными. Создайте суперкласс для всех виджетов, определите метод рисования, даже методы-обработчики и т. Д. Для переопределения, и вы уже сделали большую часть того, что эти инфраструктуры сделали бы для вас.

Кроме того, я уверен, что вы это знаете, но это огромный проект, поэтому вы должны сначала сузить его до нескольких простых целей для первой итерации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...