Для UI намного больше, чем графики.
Как один пример шрифтов. Предоставление китайского, японского, корейского, арабского, тайского языков в правильных направлениях с ударами записи и т. Д. Это ТОН работы. Целые команды, посвященные этой теме в Microsoft, Google, Apple, Adobe и других компаниях. Если вы пойдете прямо в GL, вам придется решить эту проблему самостоятельно.
Другой пример, нативный элемент управления. Пользователи iOS ожидают, что определенные элементы управления будут работать определенным образом. Пользователи Android ожидают чего-то другого. Для игры, которая обычно не является проблемой, игры обычно имеют уникальный интерфейс. С другой стороны, приложения, как правило, должны придерживаться конвенций их целевой платформы. Обычно пользователи расстраиваются, когда элементы управления не соответствуют их собственной платформе. Использование GL для вашего пользовательского интерфейса означает, что вы не получите собственные элементы управления.
Точно так же текстовое редактирование является очень специфичной для платформы. Перетаскивается ли он, чтобы выбрать, щелкните правой кнопкой мыши, чтобы выбрать, удерживать, чтобы выбрать? Какие ключи идут, как они работают? Это Ctrl-V или ⌘-V. Все это зависит от платформы. Вы можете использовать собственные средства редактирования текста и решить проблему, или вы можете использовать GL и должны воспроизводить не только весь код для редактирования текста, но и попытаться заставить его работать правильно на каждой платформе в каждой конфигурации. Ваш текстовый редактор GL обрабатывает японские клавиатуры? Немецкие клавиатуры? Он обрабатывает Редакторы метода ввода для CJK и других?
Итак, это скорее вопрос правильного инструмента для правильной работы. На платформе GL есть целые платформы пользовательского интерфейса. До того, как Metal OSX, вероятно, был одним из них (или до сих пор?), Но если вы пропустите это и создадите свой интерфейс непосредственно на GL, вам придется реализовать все эти промежуточные фрагменты.
Конечно, GL может быть правильным способом для определенных приложений, не связанных с игрой. Paper приходит на ум в качестве приложения, которое может составлять 98% GL и, следовательно, приобретает пропускную способность. С другой стороны, Evernote, вероятно, находится на другой стороне. Он должен обрабатывать каждый язык, разные шрифты, вводить данные для пользователей с ограниченными возможностями и т. Д. Все это встроено в ОС, а не в GL.
«Второй способ делает код более гибким и портативным». вид компромисса с использованием существующих колес и изобретательство колеса – starrify
Но вы не можете поставить велосипедное колесо на автомобиле. Аналогичным образом, вы не можете использовать готовый Apple для использования пользовательского интерфейса с программным обеспечением для ПК; но вы можете использовать пользовательский интерфейс, созданный в OpenGL на обеих платформах. – DARKMATTER
@ DARKMATTER: Вот почему существуют платформы для кросс-платформенных приложений с инструментами. Qt, например. – datenwolf