Страница 1 из 5
Графика 3М (GUI на базе OpenGL)
Добавлено: 30.11.2017 00:21:42
olegy123
Пишу библиотеку "графического пользовательского интерфейса" на базе
OpenGL(OpenGLES/Vulkan).
Код полностью родной(native) Lazarus/FPC.
Многопоточный и безопасный. (thread-safety).
Предполагается поддержка много экранов (multidispaly/multihead).

- v0000000.png (51.86 КБ) 43434 просмотра
Re: Графика 3М (GUI на базе OpenGL)
Добавлено: 30.11.2017 00:44:24
serbod
Молодец, будет альтернатива Firemonkey. Исходники будут открытыми?
Re: Графика 3М (GUI на базе OpenGL)
Добавлено: 30.11.2017 09:27:30
Лекс Айрин
А фигурные компоненты будут?
Re: Графика 3М (GUI на базе OpenGL)
Добавлено: 30.11.2017 10:03:06
olegy123
Да, когда базовые элементы добавлю и приведу код к нормальному виду с описанием, пока это черновик, не совсем понятный даже мне.
Большая часть классов нужно уже переименовывать.
Сейчас я борюсь за "кликабельность" и легкость управления. Если в Window-ым этим занимается система, то тут нужно это все создавать.
2D пока канва эмулируется с помощью TFPImage.
По поводу кода, пишу это потому, что планирую использовать в коммерческом приложение.
Код будет открыт, но пока это в виде экспериментальной вещи, и думаю что мало кому это нужно.. когда сама структура для меня будет понятной - код опубликую с описанием.
Добавлено спустя 12 минут 17 секунд:Лекс Айрин писал(а):А фигурные компоненты будут?
В TFPImage можно скрулить. Углы в c альфой=0 нарисовать.
Но поиск под мышкой объекта пока реализован через индекс цвета. Углы будут видны.
Тут либо кнопку нужно формировать через полигон, что нужно указывать указывать текстурные координаты для полигона. Либо химичить с glStencil буфером и смотреть на альфу тест. Пока до этого руки не дошли.
Либо выводить форму квадрата с полной тестурой при поиске полигона на экране под мышкой.
Нужно подумать над режимами вывода примитива.
Re: Графика 3М (GUI на базе OpenGL)
Добавлено: 30.11.2017 10:03:08
alexs
Это будет штатный виджетсет лазаря? или своя иерархия?
Re: Графика 3М (GUI на базе OpenGL)
Добавлено: 30.11.2017 10:20:48
olegy123
Ого, пока проще своя иерархия.
Просто я не понимаю как штатный виджет прикрутить в мир OpenGL.
Или битмапы тянуть из мира OpenGL и рисовать на 2D канве виджита?
Давайте так, я пока иду в нужном мне направлении, далее видно будет.
Re: Графика 3М (GUI на базе OpenGL)
Добавлено: 30.11.2017 10:24:19
alexs
olegy123 писал(а):Или битмапы тянуть из мира OpenGL и рисовать на 2D канве виджита?
Так там как раз наоборот - виджеты лазаря основаны на прослойке, которая уже непосредственно решает, как, кто и где будет рисовать контролы.
Re: Графика 3М (GUI на базе OpenGL)
Добавлено: 30.11.2017 10:45:21
olegy123
У меня TFreeTypeFont по русски писать не умеет. Подскажите как выйти из этого положения?
TOpenGLControl может при старте инициализировать базовые элементы в
OpenGL окне. Шейдеры?
Или нужно это делать OnPaint c флагом первого запуска?
Добавлено спустя 14 минут 35 секунд:alexs писал(а):Так там как раз наоборот - виджеты лазаря основаны на прослойке, которая уже непосредственно решает, как, кто и где будет рисовать контролы.
Теперь понял, аналог Firemonkey.
теоретически можно, но практически.. я глубоко не знаю LCL. Не плавал в тех морях.
Re: Графика 3М (GUI на базе OpenGL)
Добавлено: 30.11.2017 10:47:46
Лекс Айрин
olegy123 писал(а): и думаю что мало кому это нужно..
Это ты зря. В свете распространения расширенной реальности вписывание компонент/окон в окружение будет очень актуальной.
Re: Графика 3М (GUI на базе OpenGL)
Добавлено: 30.11.2017 10:53:35
olegy123
Мне бы сейчас успеть реализовать базовые элементы (Button,Caption,Edit,CheckBox,Image)
Добавлено спустя 1 минуту 8 секунд:Лекс Айрин писал(а):olegy123 писал(а): и думаю что мало кому это нужно..
Это ты зря. В свете распространения расширенной реальности вписывание компонент/окон в окружение будет очень актуальной.
Да, под это делается задел.
Re: Графика 3М (GUI на базе OpenGL)
Добавлено: 30.11.2017 10:59:23
Лекс Айрин
Плюс, красивый и необычный вид компонента никогда не помешает.
Re: Графика 3М (GUI на базе OpenGL)
Добавлено: 30.11.2017 15:12:46
zub
Имхо. Подобное интересно только в виде бакенда к лцл. В отдельном виде уже есть mse и fpgui. Ну и написание качественных контролов дело хлопотное. Я бы в качестве теста сразу сбацал форму с миллионом кнопок и тмемо с всеми томами войны и мир)))
Re: Графика 3М (GUI на базе OpenGL)
Добавлено: 30.11.2017 16:21:42
olegy123
zub писал(а):Имхо. Подобное интересно только в виде бакенда к лцл. В отдельном виде уже есть mse и fpgui.
(mse or fpgui) <>
OpenGL. В OpenglES им путь заказан. а в VR разве будете вкручивать LCL?
По поводу миллион кнопок.. так Windows GUI ограничено кол-вом элементов на экране, вроде как <32000.
Zub лучше подскажи как расколдовать TFreeTypeFont
чтобы по нашему стал писать.
Добавлено спустя 13 минут 3 секунды:Лекс Айрин писал(а):Плюс, красивый и необычный вид компонента никогда не помешает.
Вы мою фантазию еще не знаете.
Квадратики - это обкатка. черновик.
потом распишем интрефейс под хохлому..

- o2.gif (242.63 КБ) 43316 просмотров
Re: Графика 3М (GUI на базе OpenGL)
Добавлено: 30.11.2017 17:59:51
Лекс Айрин
olegy123 писал(а):Вы мою фантазию еще не знаете.
Зачем, когда есть Талисман?
http://oformi.net/uploads/posts/2014-09 ... y-road.jpg
Re: Графика 3М (GUI на базе OpenGL)
Добавлено: 01.12.2017 13:23:06
zub
Непомню проблем с кодировкой ттф. Дай демку проблемы