Графика 3М (GUI на базе OpenGL)
Модератор: Модераторы
Графика 3М (GUI на базе OpenGL)
Пишу библиотеку "графического пользовательского интерфейса" на базе OpenGL(OpenGLES/Vulkan).
Код полностью родной(native) Lazarus/FPC.
Многопоточный и безопасный. (thread-safety).
Предполагается поддержка много экранов (multidispaly/multihead).
Код полностью родной(native) Lazarus/FPC.
Многопоточный и безопасный. (thread-safety).
Предполагается поддержка много экранов (multidispaly/multihead).
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
А фигурные компоненты будут?
Да, когда базовые элементы добавлю и приведу код к нормальному виду с описанием, пока это черновик, не совсем понятный даже мне.
Большая часть классов нужно уже переименовывать.
Сейчас я борюсь за "кликабельность" и легкость управления. Если в Window-ым этим занимается система, то тут нужно это все создавать.
2D пока канва эмулируется с помощью TFPImage.
По поводу кода, пишу это потому, что планирую использовать в коммерческом приложение.
Код будет открыт, но пока это в виде экспериментальной вещи, и думаю что мало кому это нужно.. когда сама структура для меня будет понятной - код опубликую с описанием.
Добавлено спустя 12 минут 17 секунд:
В TFPImage можно скрулить. Углы в c альфой=0 нарисовать.
Но поиск под мышкой объекта пока реализован через индекс цвета. Углы будут видны.
Тут либо кнопку нужно формировать через полигон, что нужно указывать указывать текстурные координаты для полигона. Либо химичить с glStencil буфером и смотреть на альфу тест. Пока до этого руки не дошли.
Либо выводить форму квадрата с полной тестурой при поиске полигона на экране под мышкой.
Нужно подумать над режимами вывода примитива.
Большая часть классов нужно уже переименовывать.
Сейчас я борюсь за "кликабельность" и легкость управления. Если в Window-ым этим занимается система, то тут нужно это все создавать.
2D пока канва эмулируется с помощью TFPImage.
По поводу кода, пишу это потому, что планирую использовать в коммерческом приложение.
Код будет открыт, но пока это в виде экспериментальной вещи, и думаю что мало кому это нужно.. когда сама структура для меня будет понятной - код опубликую с описанием.
Добавлено спустя 12 минут 17 секунд:
Лекс Айрин писал(а):А фигурные компоненты будут?
В TFPImage можно скрулить. Углы в c альфой=0 нарисовать.
Но поиск под мышкой объекта пока реализован через индекс цвета. Углы будут видны.
Тут либо кнопку нужно формировать через полигон, что нужно указывать указывать текстурные координаты для полигона. Либо химичить с glStencil буфером и смотреть на альфу тест. Пока до этого руки не дошли.
Либо выводить форму квадрата с полной тестурой при поиске полигона на экране под мышкой.
Нужно подумать над режимами вывода примитива.
Ого, пока проще своя иерархия.
Просто я не понимаю как штатный виджет прикрутить в мир OpenGL.
Или битмапы тянуть из мира OpenGL и рисовать на 2D канве виджита?
Давайте так, я пока иду в нужном мне направлении, далее видно будет.
Просто я не понимаю как штатный виджет прикрутить в мир OpenGL.
Или битмапы тянуть из мира OpenGL и рисовать на 2D канве виджита?
Давайте так, я пока иду в нужном мне направлении, далее видно будет.
- alexs
- долгожитель
- Сообщения: 4066
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
olegy123 писал(а):Или битмапы тянуть из мира OpenGL и рисовать на 2D канве виджита?
Так там как раз наоборот - виджеты лазаря основаны на прослойке, которая уже непосредственно решает, как, кто и где будет рисовать контролы.
У меня TFreeTypeFont по русски писать не умеет. Подскажите как выйти из этого положения?
TOpenGLControl может при старте инициализировать базовые элементы в OpenGL окне. Шейдеры?
Или нужно это делать OnPaint c флагом первого запуска?
Добавлено спустя 14 минут 35 секунд:
Теперь понял, аналог Firemonkey.
теоретически можно, но практически.. я глубоко не знаю LCL. Не плавал в тех морях.
TOpenGLControl может при старте инициализировать базовые элементы в OpenGL окне. Шейдеры?
Или нужно это делать OnPaint c флагом первого запуска?
Добавлено спустя 14 минут 35 секунд:
alexs писал(а):Так там как раз наоборот - виджеты лазаря основаны на прослойке, которая уже непосредственно решает, как, кто и где будет рисовать контролы.
Теперь понял, аналог Firemonkey.
теоретически можно, но практически.. я глубоко не знаю LCL. Не плавал в тех морях.
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
olegy123 писал(а): и думаю что мало кому это нужно..
Это ты зря. В свете распространения расширенной реальности вписывание компонент/окон в окружение будет очень актуальной.
Мне бы сейчас успеть реализовать базовые элементы (Button,Caption,Edit,CheckBox,Image)
Добавлено спустя 1 минуту 8 секунд:
Да, под это делается задел.
Добавлено спустя 1 минуту 8 секунд:
Лекс Айрин писал(а):olegy123 писал(а): и думаю что мало кому это нужно..
Это ты зря. В свете распространения расширенной реальности вписывание компонент/окон в окружение будет очень актуальной.
Да, под это делается задел.
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
Плюс, красивый и необычный вид компонента никогда не помешает.
Имхо. Подобное интересно только в виде бакенда к лцл. В отдельном виде уже есть mse и fpgui. Ну и написание качественных контролов дело хлопотное. Я бы в качестве теста сразу сбацал форму с миллионом кнопок и тмемо с всеми томами войны и мир)))
zub писал(а):Имхо. Подобное интересно только в виде бакенда к лцл. В отдельном виде уже есть mse и fpgui.
(mse or fpgui) <> OpenGL. В OpenglES им путь заказан. а в VR разве будете вкручивать LCL?
По поводу миллион кнопок.. так Windows GUI ограничено кол-вом элементов на экране, вроде как <32000.
Zub лучше подскажи как расколдовать TFreeTypeFont
чтобы по нашему стал писать.
Добавлено спустя 13 минут 3 секунды:
Лекс Айрин писал(а):Плюс, красивый и необычный вид компонента никогда не помешает.
Вы мою фантазию еще не знаете.
Квадратики - это обкатка. черновик.
потом распишем интрефейс под хохлому..
- Лекс Айрин
- долгожитель
- Сообщения: 5723
- Зарегистрирован: 19.02.2013 16:54:51
- Откуда: Волгоград
- Контактная информация:
olegy123 писал(а):Вы мою фантазию еще не знаете.
Зачем, когда есть Талисман?
http://oformi.net/uploads/posts/2014-09 ... y-road.jpg
Непомню проблем с кодировкой ттф. Дай демку проблемы
