Pull to refresh

Comments 9

Вообще удивлён, что никаких окошек в стандартную библиотеку не завезли. jai вроде решал эту проблему едва ли не одной из первых.

А как сделать универсальный GUI API для любой системы, в которой доступен компилятор?

Примерно также как делают этой rayon, sdl и imgui - написать слой совместимости под общим API.

А на системах с голой консолью или в эмбеддеде как оно будет работать?

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

И что же делать разработчикам стандартной библиотеки, которые заранее не знают, в консоли, в иксах, вейланде или условном фрейбуфере будет запускаться приложение? Кроме того, в системах может быть ещё и разнообразие устройств и интерфейсов ввода, это тоже заранее нельзя учесть.

В стандартной библиотеке даже поддержки сети нет, а это унифицировать значительно проще.

Ровно то же самое что делают и сейчас - иметь некоторые тиры поддержки платформ. Условные триады (x86|arm)-(linux|windows)-blabla. Унифицировать бэкэнд для этих основных платформ не настолько большая проблема - gtk или qt как-то смогли же работать и под винды и под линукса и даже вроде под андроиды. Остальным остаётся брать графический контекст и рисовать компоненты и ввод самостоятельно - путь условного imgui/raylib.

в иксах, вейланде или условном фрейбуфере

бэкэнды обычно переключаются фичефлагами

разнообразие устройств и интерфейсов ввода

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

В стандартной библиотеке даже поддержки сети нет

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

В описании не нашёл, что реализовали нажатие двумя кнопками одновременно, а это существенно ускоряет игру. Без этого она очень тягомотная.

Язык Rust напоминает. Кстати, на Rust-е есть кроссплатформенные графические библиотеки.

Sign up to leave a comment.