Black Shark Graphics Engine
Модератор: Модераторы
Очень интересно ! Я тут собираюсь попробовать писать программы для Окулус Квест 2 но для начала нужно научится писать приложения для "простого андроида" .
-
Geomaster123
- незнакомец
- Сообщения: 1
- Зарегистрирован: 16.06.2022 23:34:00
BlackShark, приветствую. Восстановил тут один старый графический 2D-проект, где отрисовка была на GDIи GDI+, а критические участки выполнены на Graphics32. В современных условиях заинтересовал Ваш движок, в качестве альтернативы для достижения быстрого результата и переходу к отображению 2D-примитивов без дополнительных затрат на процесс изучения.
Сразу скажу: пока что, кроме компиляции библиотеки в win64 ничего не делал. Скомпилилось все быстро и просто - тестовый проект работает.
Интересующие моменты:
1.Работа с текстом. Необходимо использовать фиксированную линейку щрифтов, с проведением доп. манипуляций по созданию библиотек символов? Или возможна работа "на лету", с подключением любого шрифта, а остальное выполняет сам Engine?
2.Есть-ли механизмы работы с блоками векторных объектов, где блоки необходимо где-то хранить и рисовать, используя аффинные преобразования?
3.Поддерживается-ли отображение растровых примитивов? Как реализована поддержка текстур, альфа-канал.
Спасибо!
Сразу скажу: пока что, кроме компиляции библиотеки в win64 ничего не делал. Скомпилилось все быстро и просто - тестовый проект работает.
Интересующие моменты:
1.Работа с текстом. Необходимо использовать фиксированную линейку щрифтов, с проведением доп. манипуляций по созданию библиотек символов? Или возможна работа "на лету", с подключением любого шрифта, а остальное выполняет сам Engine?
2.Есть-ли механизмы работы с блоками векторных объектов, где блоки необходимо где-то хранить и рисовать, используя аффинные преобразования?
3.Поддерживается-ли отображение растровых примитивов? Как реализована поддержка текстур, альфа-канал.
Спасибо!
Что-то я завяз на стадии сборки набора кросс-программирования Lazarus for Android ( До "акулы" так и не добрался ).
1 Используя fpcupdeluxe-x86_64-win64.exe поставил Lazarus 2.2.2 32бита и кросс компилятор Android
2 Опять же через fpcupdeluxe добавил поддержку LAMW
3 Накатал сам LAMW (android-ndk-r10e-windows-x86.zip, android-sdk_r24.4.1-windows.zip, apache-ant-1.9.6-bin.zip, jdk-8u181-windows-i586.exe, laz4android (вообще-то это лишний пакет ),lazandroidmodulewizard-master.zip)
4 Распаковал установил и настроил ( для начала только поддержку android 4.2.2 )
попробовал собрать "пустой проект" LAMW ( android GUI ) и тут "котенку пришел капец" ...
( После вопроса путях к LAMW Lazarus выдал табличку
)
Вопрос: что я делаю не так ?
("SDK Manager.exe" --update делал)
1 Используя fpcupdeluxe-x86_64-win64.exe поставил Lazarus 2.2.2 32бита и кросс компилятор Android
2 Опять же через fpcupdeluxe добавил поддержку LAMW
3 Накатал сам LAMW (android-ndk-r10e-windows-x86.zip, android-sdk_r24.4.1-windows.zip, apache-ant-1.9.6-bin.zip, jdk-8u181-windows-i586.exe, laz4android (вообще-то это лишний пакет ),lazandroidmodulewizard-master.zip)
4 Распаковал установил и настроил ( для начала только поддержку android 4.2.2 )
попробовал собрать "пустой проект" LAMW ( android GUI ) и тут "котенку пришел капец" ...
( После вопроса путях к LAMW Lazarus выдал табличку
)Вопрос: что я делаю не так ?
("SDK Manager.exe" --update делал)
- BlackShark
- новенький
- Сообщения: 44
- Зарегистрирован: 20.05.2019 11:52:15
- Контактная информация:
Привет!
LAMW не нужен, а то он там сам начинает баловать с настройками. Заново проект перекачай или посмотри дифы и сбрось их если клонировал репу из гита. Посмотри настройки Custom Options в Lazarus, проверь и поправь там пути на свои, LAMW кажись их портить может. Пиши если что в телеге, быстрее отреагирую, в канале https://t.me/BSharkGE.
Никаких антов и градлов и пр. доустанавливать не нужно. Вообще минимальный набор таков: последняя версия Lazarus, далее с помощью fpcupdeluxe доставляешь кроскомпиляторы для андроид (x86_64, ARM) и Android Studio. Студия сама подтянет нужный сборщик. В Android Studio легко и эмулятор запускается x86_64. Подключив телефон, из студии указав его, так же легко запускаешь на своём телефоне. Естественно заранее нужно скомпилировать проект в ARM, для чего просто в лазарусе выбираешь уже заготовленный для этого профиль в настройках проекта. Ещё небольшой нюанс в настройках градла (файл build.gradle) так же нужно указать платформу меняя значение include 'x86_64' на include 'armeabi' и обратно если опять захотел запускать в эмулятор. Возможно сделать это можно более цивилизованно, но пока я делал так. А target api (это указывается в настройках проекта студии, и LAMW видимо каким то из инструментов туда подсматривает) я специально понижал дабы исключить новейшее API из проекта что бы можно было поддержать древние устройства, и как позже выяснилось - не зря.
LAMW не нужен, а то он там сам начинает баловать с настройками. Заново проект перекачай или посмотри дифы и сбрось их если клонировал репу из гита. Посмотри настройки Custom Options в Lazarus, проверь и поправь там пути на свои, LAMW кажись их портить может. Пиши если что в телеге, быстрее отреагирую, в канале https://t.me/BSharkGE.
Никаких антов и градлов и пр. доустанавливать не нужно. Вообще минимальный набор таков: последняя версия Lazarus, далее с помощью fpcupdeluxe доставляешь кроскомпиляторы для андроид (x86_64, ARM) и Android Studio. Студия сама подтянет нужный сборщик. В Android Studio легко и эмулятор запускается x86_64. Подключив телефон, из студии указав его, так же легко запускаешь на своём телефоне. Естественно заранее нужно скомпилировать проект в ARM, для чего просто в лазарусе выбираешь уже заготовленный для этого профиль в настройках проекта. Ещё небольшой нюанс в настройках градла (файл build.gradle) так же нужно указать платформу меняя значение include 'x86_64' на include 'armeabi' и обратно если опять захотел запускать в эмулятор. Возможно сделать это можно более цивилизованно, но пока я делал так. А target api (это указывается в настройках проекта студии, и LAMW видимо каким то из инструментов туда подсматривает) я специально понижал дабы исключить новейшее API из проекта что бы можно было поддержать древние устройства, и как позже выяснилось - не зря.
Последний раз редактировалось BlackShark 22.06.2022 11:42:33, всего редактировалось 1 раз.
BlackShark писал(а):Никаких антов и градлов и пр доставлять не нужно
BlackShark писал(а): Ещё небольшой нюанс в настройках градла (файл build.gradle)
Весело у тебя однако. ))) Ты видимо хотел сказать, что Gradle идёт со студией в комплекте.
на англоязычном форуме смотри. Разработчик какие-то настройки в LAWM изменял и люди жалуются, что проблемы появились.Alex2013 писал(а):После вопроса путях к LAMW Lazarus выдал табличку
- BlackShark
- новенький
- Сообщения: 44
- Зарегистрирован: 20.05.2019 11:52:15
- Контактная информация:
Так я об этом написал, правда не сразу, а в последующей редакции, возможно ты прочитал до редактирования. А, и написано же "доставлять", разве не ясно что я имел ввиду отдельную установку?Seenkao писал(а):BlackShark писал(а):Никаких антов и градлов и пр доставлять не нужноBlackShark писал(а): Ещё небольшой нюанс в настройках градла (файл build.gradle)![]()
Весело у тебя однако. ))) Ты видимо хотел сказать, что Gradle идёт со студией в комплекте.
И ещё раз. LAMW для движка не нужен.Seenkao писал(а):на англоязычном форуме смотри. Разработчик какие-то настройки в LAWM изменял и люди жалуются, что проблемы появились.Alex2013 писал(а):После вопроса путях к LAMW Lazarus выдал табличку
Последний раз редактировалось BlackShark 22.06.2022 16:06:38, всего редактировалось 1 раз.
Спасибо за содействие. Проблема в том что при установке "чистого кросс-компилятора " через fpcupdeluxe вылезает ошибка на сборке FPC.А установка по копке LAMW хотя-бы доходит до конца без предложений прервать сборку .
Добавлено спустя 6 минут 22 секунды:
Зы
Там кстати очередной грек по темп отжигает .
https://forum.lazarus.freepascal.org/in ... ic=43426.0
Добавлено спустя 6 минут 22 секунды:
Ок ! Посмотрю .Seenkao писал(а):на англоязычном форуме смотри. Разработчик какие-то настройки в LAWM изменял и люди жалуются, что проблемы появились.
Зы
Там кстати очередной грек по темп отжигает .
https://forum.lazarus.freepascal.org/in ... ic=43426.0
- BlackShark
- новенький
- Сообщения: 44
- Зарегистрирован: 20.05.2019 11:52:15
- Контактная информация:
Нарывался на подобное только если всё ставить через fpcupdeluxe. Если вначале поставить последний официальный релиз Lazarus, а потом на него натянуть кроскомпайлеры, то всё проходило без ошибок.Alex2013 писал(а):Проблема в том что при установке "чистого кросс-компилятора " через fpcupdeluxe вылезает ошибка на сборке FPC.А установка по копке LAMW хотя-бы доходит до конца без предложений прервать сборку .
Но если кроскомпайлеры уже встали, попробуй удалить LAMW, иначе он тебе всегда будет Custom options ломать под себя. После открой изначальный проект.
Ладно попробую... (Хотя пока у меня, задача тупо собрать для андроид хоть что-то работающее . А потом уже можно и до акулы добраться )
Хм... Я наивно думал что лучше иметь отдельную сборку где все закачано через fpcupdeluxe (+ там что не очень здорове с выбором папки творится ( вначале пробовал ставить поверх уже установленного лазаруса, но с удивлением обнаружил внутри лазаруса "еще один лазарус " хотя FPC поставился нормально ) )BlackShark писал(а):Нарывался на подобное только если всё ставить через fpcupdeluxe.
- BlackShark
- новенький
- Сообщения: 44
- Зарегистрирован: 20.05.2019 11:52:15
- Контактная информация:
Привет! Извиняюсь, только сейчас пролистывая топик заметил что не ответил на Ваше сообщение.Geomaster123 писал(а):BlackShark, приветствую. Восстановил тут один старый графический 2D-проект, где отрисовка была на GDIи GDI+, а критические участки выполнены на Graphics32. В современных условиях заинтересовал Ваш движок, в качестве альтернативы для достижения быстрого результата и переходу к отображению 2D-примитивов без дополнительных затрат на процесс изучения.
Сразу скажу: пока что, кроме компиляции библиотеки в win64 ничего не делал. Скомпилилось все быстро и просто - тестовый проект работает.
Интересующие моменты:
1.Работа с текстом. Необходимо использовать фиксированную линейку щрифтов, с проведением доп. манипуляций по созданию библиотек символов? Или возможна работа "на лету", с подключением любого шрифта, а остальное выполняет сам Engine?
2.Есть-ли механизмы работы с блоками векторных объектов, где блоки необходимо где-то хранить и рисовать, используя аффинные преобразования?
3.Поддерживается-ли отображение растровых примитивов? Как реализована поддержка текстур, альфа-канал.
Спасибо!
1. Возможна работа на лету, просто указываете имя файла со шрифтом текстовому элементу (bs.canvas.TCanvasText) или на крайний случай менеджеру шрифтов.
2. Если я правильно понял, да. Более конкретно нужно обсуждать на конкретной задаче.
3. Поддерживается, см. объект bs.canvas.TPicture. Загрузка только в bmp и png формате.
У меня почему-то при компиляции проекта Hello World для Лазаруса под Виндовс возникает ошибка.
В messages пишет:
Компиляция проекта, цель: E:\Game_engines\BlackShark\bin\HelloWorld.exe: Код завершения 1, ошибок: 1, подсказок: 1
umain.pas(46,59) Error: Incompatible type for arg no. 1: Got "TFrmMain.AfterCreateContextEvent(TBlackSharkContext);", expected "<procedure variable type of procedure(TObject) of object;Register>"
bs.viewport.pas(852,31) Hint: Found declaration: SetOnAfterCreateContext(TAfterCreateContextEvent);
В messages пишет:
Компиляция проекта, цель: E:\Game_engines\BlackShark\bin\HelloWorld.exe: Код завершения 1, ошибок: 1, подсказок: 1
umain.pas(46,59) Error: Incompatible type for arg no. 1: Got "TFrmMain.AfterCreateContextEvent(TBlackSharkContext);", expected "<procedure variable type of procedure(TObject) of object;Register>"
bs.viewport.pas(852,31) Hint: Found declaration: SetOnAfterCreateContext(TAfterCreateContextEvent);
- BlackShark
- новенький
- Сообщения: 44
- Зарегистрирован: 20.05.2019 11:52:15
- Контактная информация:
Поменяй:
на
Просмотрел, спасибо.
Код: Выделить всё
procedure AfterCreateContextEvent (Sender: TBlackSharkContext);
Код: Выделить всё
procedure AfterCreateContextEvent (Sender: TObject);
