Войти
РаботаФорумРазовая работа

[Закрыто] ZenGL - Android - (pascal) отрыв основного потока от графического.

Страницы: 1 2 Следующая »
#0
7:07, 15 янв. 2017

Стоимость: 300 usd (кому рубли/гривны - по курсу на момент оплаты) (способ оплаты, PayPal, Western Union, банковский перевод, что удобнее)

В текущей (последней...3-4х годичной давности версии) ZenGL для андроид исполняет очередь сообщений в графическом (OpenGL) потоке.
При этом, весь ввод, обрабатывается из основного потока.
Такая схема идёт в разрез с другими системами, под которые ZenGL компилируется.

Требуется: поменять ZenGL реализацию под андроид, чтобы очередь сообщений исполнялась в основном потоке.
поток OpenGL сигнализировал основному потоку о том, что он готов отрисовыватся, и ожидал конца отрисовки из основного потока.
Загрузка/освобождение текстур тоже должна производится из основного потока.
(Например - с помощью расшаренных контекстов, отрисовка производится в текстуру, а по окончанию отрисовки сигнализируется графическому потоку, и тот просто выводит её на экран)

Желательно сохранить совместимость с Android 4.0.

Срок: к 15 февраля 2017 года.

Связь: в личку сюда, или на freepascal.ru (ник: скалогрыз), на мыло: skalogryz.lists_at_gmail_точка_влом.

P.S: Аванс (например 50%) могу предоставить, только либо людям которых я знаю, либо кто себя хорошо зарекомендовал (н.р. здесь!) и кому репутация дороже.
P.P.S: нужно для бомбера. я сам слишком погряз в сетевой версии.

+ пожелания к процессу создания кода и контроля версии

#1
5:29, 19 янв. 2017

Если, кто думает, что .apk с FPC собирается с трудом, то здесь инструкции.

#2
13:19, 19 янв. 2017
Любопытно, для чего это требуется? Какие технические трудности вызывает?
#3
16:21, 19 янв. 2017

Vitorio
> Любопытно, для чего это требуется? Какие технические трудности вызывает?

Да - вызывает. Основной код написан исходя из логики, что и отрисовка, и обработка ввода работает из основного потока.
А это как минимум, какой либо синхронизации, скажем при загрузке ресурсвов.
Обработчики событый (например OnMouse, OnPaint) вызываются из одного потока.

ZenGL для Android, превращает дополнительный графический поток, в основной поток, а основной поток, превращает в дополнительный (потому что любое, событие в основном потоке вынуждено ожидать графический поток). Что ещё хуже, обработичики событый вызываются из разных потокохв (OnMouse - из основного, OnPaint - из дополнительного). Как результат в некоторых местах всё начинает разваливатся, ибо нет синхронизации.

Я приделал к текущей системе костыли, которые позволяют избежать те месте, которые требуют синхронизацию. (Например: загрузка ресурсов при навигации. Т.е. вместо того, чтобы подгружать по необходимости, я загружаю всё и сразу {$ifdef Android}. Хех... приложение, грузится всё-равно быстрее, чем что-нибудь написанное на Unity, но нет предела совершенству).
Дальнейшее тестирование, показало, что одной затычки недостаточно. Так, например, при изменении размеров окна (что может случится на Андроид устройстве, с виртуальной клавиатурой), размеры так же будут менятся в основном потоке. И это тоже должно быть синхронизировано с отрисовкой.

А на данный момент ZenGL такие вещи тоже отвлавиает, и нужно писать либо костыли с наружи, либо править его изнутри.
Я выбираю второе:
- кросс-платофрманная библиотека, должна работать одинаково на любой платформе
- open-source же

+ почему ZenGL
+ на будуще...
#4
23:55, 20 янв. 2017

skalogryz
> Стоимость: 300 usd
лучше переводи на мой счет :) навряд ли тебе тут кто-то поможет : ты сам разбираешься в этом уже лучше
чем кто-либо кого ты хочешь найти которых нет скорее всего вообще ..

skalogryz
система очень близка к ИОС распределенной системе когда доп.поток исполняется в третьем состоянии процессора АРМ
вообщем тебе остается использовать этот плюс в своей выгоде и занять нишу ИОСа в 20% юзеров и всего делов
..остальное перемутить можно только на моменте Базововй СИСтемы на которой запускается приложение
допустим , если это Виндуза значит тебе нужно использовать реальное win-API для переключения потоков мэйн-не_мэйн
возможно компилить для этого отдельную ддл -ку которая грузиться в СИСтем и так далее ..хочешь знать больше !?! :)

#5
0:07, 21 янв. 2017

Morphia
> навряд ли тебе тут кто-то поможет : ты сам разбираешься в этом уже лучше
> чем кто-либо кого ты хочешь найти которых нет скорее всего вообще
а это я считаю, проблема.
По двум причинам:
1) я уверен, что я не единственный кто может в этом разобраться.
2) ... получается мне теперь всё писать самостоятельно до конца жизни? человек-оркестр? нее... я верю в разделение труда.
Просто я знаю, что для людей, которые могли БЫ, 300 usd может показаться маловато.
(например, я бы сам взялся за такую сумму,).

Так что я как бы предлагаю желающим разобраться профинансировать своё любопытство.

Morphia
> система очень близка к ИОС распределенной системе когда доп.поток исполняется в
> третьем состоянии процессора АРМ
ИОС? ты имеешь в виду iOS?
не совсем понимаю о чём ты. Обработчик отрисовки iOS вызывается как раз в основном потоке, и никаких проблем не вызывает.

Morphia
> вообщем тебе остается использовать этот плюс в своей выгоде и занять нишу ИОСа
> в 20% юзеров и всего делов
не получается пока xD осталась последняя надежда на докручивание сети + агрессивная реклама.

Morphia
> остальное перемутить можно только на моменте Базововй СИСтемы на которой
> запускается приложение
> допустим , если это Виндуза значит тебе нужно использовать реальное win-API для
> переключения потоков мэйн-не_мэйн
> возможно компилить для этого отдельную ддл -ку которая грузиться в СИСтем и так
> далее ..хочешь знать больше !?!
я не понимаю что ты пишешь, но у меня такое чувство, что ты предлагаешь мне переписать код, который использует ZenGL, чтобы он изначально был готов к отрисовке в дополнительном потоке. (А то и ещё хуже, чтобы ZenGL сам создавал этот поток!)
Да, это можно сделать, но не факт что это займёт времени меньше, чем доработка Андроида. А она так или иначе нужно.

Но если ещё сильнее присмотреться, то может забить на ZenGL, а взять что-нить более готовое... вроде Unity. Религия только запрещает xD
На самом деле, если с ZenGL слазить, то скорее на SDL2. Хотя я хз что там, но от SDL1 одни почти хорошие воспоминания.

+ P.S.

#6
0:32, 21 янв. 2017

skalogryz
> если ещё сильнее присмотреться, то может забить на ZenGL, а взять что-нить
> более готовое... вроде Unity
ну так бери : можешь клепать мой-космо проект на рскачку - и о_О у тебя уже почти есть бюджет для присоединения
все по-чесноку 50на50 и еще и код по-сути ты пилишь : да си-шарп сродни паске (я же сам суперил на Дельфи давно)
разберешься - есть арты и прочее - даффай ты сможешь - главное для кодер-адепта организовать безопасность проекта

+ Показать

skalogryz
по IOS еще раз : собственная выдержка из раздела арбайтен

+ Показать

#7
0:39, 21 янв. 2017

Morphia
> ну так бери : можешь клепать мой-космо проект на рскачку
Спасибо за предложение, но не могу бросать, то что ещё не закончено. 
Вот когда иссякнет всяческое желание и идеи, тогда присоединюсь. (срок... ещё год, как минимум... глядишь к тому времени и совсем новое Unity появится)

Morphia
> по IOS еще раз : собственная выдержка из раздела арбайтен
по-моему ты не понимаешь, что такое objc :) (но метафизика вроде исполнять javascript в 3м состоянии, доставляет)
хотя это всё выдернуто из контекста, а где сама тема, чтобы целиком прочитать?

#8
15:26, 21 янв. 2017

skalogryz
> когда иссякнет всяческое желание и идеи, тогда присоединюсь. (срок... ещё год,
> как минимум... глядишь к тому времени и совсем новое Unity появится
да ты за зря пытаешься вкинуть усилия туда куда-то : тем более если ты читал концепт ,то за присоединение есть цена
но это если вообщем-то некто сторонний ,а кто с гд.ру и шарит тому уже скидки и прочее - в коммерсе нужен
свой контент и куча работы - на год хватит - чем не вариант если ты и так готов 300 $ кинуть на ветер пусть 500$ мне
и поехали - все туторы и прочее вроде видео-уроков по Юнити все есть на Ютубе - с некоторыми моментам по 2Д помогу
ибо 2Д там никак не 3Д - в реале оно немного сложнее со своими нюансами ,но дает преимущество в мобильной разработке
в том что можно практически управлять количеством 2Д Объектов вкупе с их меньшими размерами - а значит меньше
нагруз и торможение на все (шины - проц) - быстрее и легче приложение -а там всякие ИИ еще ж должны Ходы свои давать
.. по деньгам просто что рассчет на покупные ассеты и прочее и сетевика привлечь : то есть это будет с тебя
- а не понадобиться ну так съэкномим , ибо еще кучу контента доделывать - основной размер 800на400 (экран так думается)
и всякие прибамбасы вроде прикупить ассетов по планетам нашего же foxes -а с гд.ру : плата типа электронной подписи
- сделал он ассет и выставил на продажу .. можно попутно свои будет выставлять - чем свой полный релиз ждать
вариантов куча , так висеть мало смысла - с партнером веселее и быстрее делать и есть с кем посоветоваться
и еще когда один делаешь - если приостановился - то  все работа стала - даже капелька не прибавляется - ведь факт

skalogryz
по ИОС там разбираться долго нужно - зачем он сдался на этом этапе - Андроид имеет 80% пользователей что еще нужно
тем более Андроид и без джава скрипта покатит ,а вот ИОС это навряд ли

#9
15:42, 21 янв. 2017

Morphia
> чем не вариант если ты и так готов 300 $ кинуть на ветер пусть 500$ мне и поехали
там вливаний чуть больше чем, 300 долларов. (основные траты - контент и реклама)
я же не один участвую в разработке, людей подводить не хорошо ;)

Morphia
> по ИОС там разбираться долго нужно - зачем он сдался на этом этапе - Андроид
> имеет 80% пользователей что еще нужно
> тем более Андроид и без джава скрипта покатит ,а вот ИОС это навряд ли
не переживай за iOS, там релиз состоялся уже полгода назад
без ява скрипта кстати! если нужны подробности как там и что, то в эту тему.

#10
20:41, 21 янв. 2017

skalogryz
> Morphia
> там вливаний чуть больше чем, 300 долларов
> (основные траты - контент и реклама)
> я же не один участвую в разработке, людей подводить не хорошо ;)
так ты про кота -постояльца создаешь и дальше , тот же проект по-ходу пытаешься расширить
но у вас же вроде как почти восьмибитная графика и я говорю именно восьмибитная ибо она так выглядит
хотя для мобо это не критично ,но явно не хватает контрастности это уж точно
у меня же уровень шестнадцати бит тут скажут о да как уже тридцатьдва чуть ли не в шестьдесятчетыре не перешло
уже давно , но вот для мобо более однотонность в 2Д для микро-размеров это очень важный аспект ,и повышать разрядность
с бухты барахты как бы точно не комильфо ибо в 3Д там может быть некий смысл в проекте если заранее все рассчитать
здесь же пикча уменьшается в своем размере и это уже пусть не полный но уже частичный фильтр от скливов


skalogryz
проще контент перенести на Юнити и вперед - это будет точно гораздо быстрее чем ты ждешь маны зачем-то
причем если в 3Д нужен рендеринг ,то в 2Д там вроде также как и в Дельфи драуселл и канва - это отдельный режим Ю2д
я бы тебе помог бы перепрыгнуть как на гипер-прыжке на Юнити если ты присоединишься ,ну и тогда я б плотнее
занялся бы контентом космо-проекта и всюшками пока ты свой бы переводил на ньюкс рельсы - заодно это б был
гандикап во времени пока ты вкуришь в космо ибо это не настолько быстро - и так было бы выгодно всем ,ты б
прокачнулся бы на своем проекте в плане Юнити и был бы готов в некой мере к космо : с моей стороны готовность уже

#11
21:08, 21 янв. 2017

Не переживай. Я твоё предложение понял. На данный момент - не интересует.

#12
1:40, 22 янв. 2017

skalogryz
> Я твоё предложение понял. На данный момент
мня, так и видимо не очень ,да и под все ли ты спойлеры заглядывал :)

+ Показать

хотел разве что добавить вот ты говоришь про потоки , но сам же ничего не конкретизировал вовсе
ты же уверяешь что пасечник - тогда тебе следовало бы знать что там можно в потоки загнать все что угодно
начиная от файловых-потоков и вообщем-то на них же лучше и заканчивать в смысле оно ж как поток-файл
..распредели в потоки что тебе необходимо - допустим другие потоки ,и управляй ими если уж так припекло

#13
1:51, 22 янв. 2017

Morphia разговор с тобой, а так же более менее успешная попытка добавить sdl2 как "backend", побуждают меня к тому чтобы сэкономить эти деньги..., и скорее потратить их на графику или звуки; а zengl подправить самостоятельно :)

Зы: я немного проигнорировал твоё последнее утверждение. Тк оно похоже сделано не понимая контекста Андроид системы

Morphia
> мня, так и видимо не очень ,да и под все ли ты спойлеры заглядывал :)
Вроде под все заглядывал. И там твой проект, которые нуждается в дополнительных руках.
Всё отлично, я желаю тебе успехов. Но я не хочу в него инвестировать (ни деньгами, ни временем), я инвестировать буду в свои проекты.

#14
13:19, 22 янв. 2017

skalogryz
> Зы: я немного проигнорировал твоё последнее утверждение. Тк оно похоже сделано
> не понимая контекста Андроид системы
так ты теперь сам перекрутил : в начале я тебе предложил использовать возможности СИСтемы , вот же
http://www.gamedev.ru/job/forum/?id=222389#m4
но тебя этот вариант как вроде не устроил , теперь же ты говоришь про контекст Андроид СИСтемы
тем более  что "похоже" это не вариант - это возможности самого языка , на котором ты как вроде кодишь
и задача не стоит 300 $ она стоит все 30000$ : все это издержки ржавой геймдев индустрии с привратным пониманием
программирования которое основано на архитектуре языка как возможностей и самой системы : допустим тот же WIN-регистр
дает кучу всего вместе с доступом к API через dll -ки , но чтобы его расшарить нужно изучить один-два тома по реестрам
но при этом еще не известно даст ли это реально факт решения - потратить всегда можно

skalogryz
> более менее успешная попытка добавить sdl2 как "backend", побуждают меня к тому
> чтобы сэкономить эти деньги...
ну вот и экономь капельку как лучшее решение : хотя возможно есть еще одно по OpenGL
- это не превышение длины пакета команд которые отсылаются за один раз на видео-карточку
но по ОпенГЛ занимался Neptune "Космический Движек" прошарь может его тему вдруг что найдешь
..ладно даффай , желаю тебе успехов отличных

Страницы: 1 2 Следующая »
РаботаФорумРазовая работа

Тема в архиве.

Тема закрыта.