Dreamfinity / gext

The powerful and flexible OpenGL GUI extension

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GExt v1.5.1.0-SNAPSHOT

Гибкий и мощный инструмент для создания и управления интерфейсами на базе OpenGL. Создавайте, группируйте, перемещайте интерфейсы с лёгкостью, без единой строчки GL-кода!

  • Для укорачивания синтаксиса создания компонентов создан класс Graphics
  • Базовый интерфейс IGraphicsComponent - всё, что нужно реализовать для встраивания вашего компонента в систему
  • Для создания элемента-контейнера необходима реализация IGraphicsLayout
  • Корневые контейнеры обязаны реализовывать IRootLayout
  • Отслеживайте обновление любого компонента с помощью IListener
  • Нет реализации для вашей платформы? Не беда. Всё, что нужно сделать - реализовать API из пакета com.github.stannismod.gext.api.adapter

Библиотека доступна в Maven:

repositories {
    maven {
        url = "https://oss.sonatype.org/content/repositories/snapshots/"
    }
}

implementation group: 'com.github.stannismod.gext', name: <имя_адаптера>, version: '1.5.1.0-SNAPSHOT'

Нет нужного компонента?

Напишите его сами! Для обычного компонента подойдёт реализация IGraphicsComponent. Если не нужно что-то особенное - присмотритесь к встроенному классу GBasic. Он предоставляет базовую реализацию возможностей библиотеки, оставляя максимум пространства для творчества. Не хватает инструмента вёрстки? Тогда IGraphicsLayout - ваш выбор. У него тоже есть базовая реализация BasicLayout. Задумали пойти ещё дальше, и сделать компонент без родителя, так называемый корневой? Вам не обойтись без IRootLayout!

Добавление прокрутки

Для добавления полос прокрутки в свой компонент реализуйте интерфейс IScrollable. Теперь в качестве обработчика прокрутки можно использовать любую реализацию IGraphicsComponentScroll

Хотите обновлять контент по нажатию кнопки?

Любой компонент может реализовать IListener<T>, и слушать изменения целевого компонента. Теперь можно управлять своим состоянием в зависимости от состояния другого компонента! И наоборот тоже :)

Сборка

Проект может быть собран запуском задачи build из модуля реализации адаптеров

About

The powerful and flexible OpenGL GUI extension

License:Apache License 2.0


Languages

Language:Java 100.0%Language:GLSL 0.0%