Ресурсы по разработке графической системы?

Может ли кто-нибудь порекомендовать какие-либо хорошие ресурсы для создания графических пользовательских интерфейсов, предпочтительно на C/C++?

В настоящее время мое наибольшее влияние оказывают 3DBuzz.com C++/OpenGL VTM (видео обучающие модули). Хотя они очень хороши, они охватывают большую область графического программирования, поэтому лишь поверхностно изучите GUI-программирование.

Этот вопрос относится к " Как мне сделать графический интерфейс?", Где также есть грубая схема моей текущей структуры.

Любой ответ будет оценен.

Изменить: я только что прочитал некоторые из ответов и заметил, что я пропустил некоторые моменты. Я должен был напечатать вопрос дважды, поскольку я поймал не ту кнопку и потерял ее.

Во-первых, я упустил два важных момента: это будет использоваться кроссплатформенность, в том числе домашняя, на Sony PSP. Второе: я хочу создать систему графического интерфейса, а не использовать существующую.

Редактировать 2: я думаю, что некоторые из вас упускают суть, я не знаю, что использовать существующую систему графического интерфейса, я хочу построить.

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

Тем не менее я решил создать IM-GUI и начал прототипировать код.

9 ответов

Решение

Я бы не использовал OpenGL для GUI, если вы не планируете аппаратное ускорение и / или 3D-эффекты, которые, как вы думаете, вы не получите с более традиционным инструментарием GUI (например, Qt, wxWidgets, GTK и т. Д.). Если вам нужен простой простой графический интерфейс для размещения графики OpenGL, тогда FLTK - хороший выбор. В противном случае, для визуализации графического интерфейса непосредственно в OpenGL это библиотеки, подобные графическому интерфейсу Crazy Eddie, которые делают именно это и предоставляют множество виджетов с поддержкой скинов, которые вам не придется заново изобретать. Окно и контекст OpenGL могут быть предоставлены с помощью переносимой библиотеки, такой как SDL.

РЕДАКТИРОВАТЬ: Теперь, когда я вернулся и посмотрел ваш другой пост, я думаю, что я лучше понимаю, что вы спрашиваете. Для графического интерфейса пользователя во встроенной системе, такой как Nintendo DS, я хотел бы рассмотреть возможность использования графического интерфейса "немедленный режим". У Jari Komppa есть хорошее руководство по ним, но вы можете использовать более объектно-ориентированный подход с C++, чем код C, который он представляет.

Для такой платформы, как PSP, я бы немного беспокоился о производительности решения IM GUI. В традиционном типе решения с сохраненным режимом, когда вы создаете элемент управления, вы также можете создать буфер вершин / список отображения или что вам нужно для его рендеринга. Мне кажется, что при немедленном решении режима вам нужно будет динамически воссоздавать это каждый кадр.

Вы можете не заботиться об этом, если вы делаете только несколько кнопок, или это не будет использоваться в игре (при условии, что вы создаете игру), но, особенно если у вас достаточно текста, стоимость рендеринга может начать болеть, если вы не можете найти способ кешировать списки отображения как-то.

Посмотрите на Qt. Это библиотека с открытым исходным кодом для создания GUI. В отличие от Swing в Java, он предполагает много вещей, поэтому действительно легко создавать функциональные графические интерфейсы. Например, текстовая область предполагает, что вам нужно контекстное меню, когда вы щелкаете по нему правой кнопкой мыши, копируете, вставляете, выбираете все и т. Д. Документация также очень хорошая.

Один из самых быстрых способов - использовать python с привязкой графического интерфейса, например, pyQt, PyFLTK, tkinter, wxPython или даже через pygame, использующий SDL.

Его легко быстро и независимо от платформы. Также управление пакетами непобедимо.

Увидеть:

Для получения дополнительной информации о графическом интерфейсе "немедленного режима" я могу порекомендовать форумы Molly Rocket. Есть хорошая видео презентация мышления за IM-GUI, наряду с большим количеством обсуждений.

Недавно я взломал очень быструю систему IM-GUI, основанную на презентации на странице Яри, и в моем случае, где я действительно просто хотел иметь возможность получить пару кнопок и блоков на экране и более или менее просто жесткий код Реакция на входные данные - это действительно правильное решение, вместо того, чтобы переходить на более полную GUI-архитектуру. (Это было в DirectX-приложении, поэтому количество вариантов было довольно ограниченным).

http://www.fox-toolkit.org/ содержит ссылку на API, если вы ищете, как работать с конкретной платформой. Или вас больше интересовала общая теория или что-то более похожее на то, как делать низкоуровневые вещи самостоятельно?

Я посмотрел видео от Молли Ракетно и просмотрел кэшированные уроки Яри Комппы.

IM-GUI, кажется, лучший путь, я думаю, он будет намного более упорядоченным и намного быстрее, чем система, которую я изначально имел в виду.

Теперь новый вопрос я могу только за исключением одного ответа.:(

Еще раз спасибо Monjardin и Dooz, ура.

thing2k

Я буду вторым Qt. Он кроссплатформенный, и мне было гораздо проще работать со встроенным графическим интерфейсом Visual Studio. Он имеет двойную лицензию, поэтому, если вы не хотите, чтобы ваш код был GPL, вы могли бы вместо этого приобрести лицензию.

Я бы посмотрел на GLAM и GLGooey

Другие вопросы по тегам