Кроссплатформенный фреймворк для разработки приложений на С++
Исходные требования
v1
Фреймворк для создания Android приложений в Visual Studio с использованием OpenGL ES v1.
Отрисовка GUI, созданного в формате html//css.
Отрисовка GUI поверх отрисованного кадра OpenGL.
Отрисовка GUI после обработки события.
Отрисовка GUI непрерывно.
Создание программы в виде набора слоев, где каждый слой представляет собой отдельное окно программы с возможностью возврата к предыдущему слою нажатием Android кнопки BACK.
Подписка на системные/оконные события, а также события ввода пользователя (в том числе ввод текста) и выбора элементов управления.
Вызов клавиатуры при выборе текстовых полей ввода.
Локализация программы для выбранного языка.
v2
Создание приложения с единственным окном, которое строится из набора классов окон:
Окно операционной системы, параметры которого при его создании извлекаются из настроек приложения (кроссплатформенная реализация).
Окно графического API, которое инкапсулирует в себе весь код графического API. Отдельные реализации для каждого типа API с запретом компиляции для не подходящей платформы.
Окно рендеринга 3D сцены с возможностью манипуляции объектами как наборами компонентов/рендеров.
Окно GUI (реализация отображения графического интерфейса пользователя и взаимодействие с элементами управления). Кроссплатформенная реализация.
Возможность комбинировать объекты классов окон с учетом необходимости (в том числе встраивать вызов стороннего кода между отрисовкой окна графического API и окна GUI).
Фреймворк ориентирован на построение приложения в формате MVC.
Кроссплатформенный фреймворк с возможностью указания в настройках используемого графического API:
Windows (OpenGL v4.5).
Windows (DirectX 10/11).
Windows (DirectX 12).
Windows (Vulkan).
Android (OpenGL ES3).
Android (Vulkan).
Автоматический выбор наиболее подходящей реализации для платформы, на которой запускается приложение.
Компонентная система рендеринга, позволяющая коду, использующему фреймворк, создавать и оперировать объектами 3D сцены.
Одновременное отображение нескольких независимых панелей GUI.