Igor
Ренлдерилку её переписал на SDL
Igor
20 строк кода весь рендер, если особо не раскидываться
Luсky
гит?
Igor
https://github.com/igor725/VoxelSpaceSDL
Luсky
мерси
Igor
Проектом аналогичным вдохновился, который на бг-мерзком жсе
Igor
Захотелось нативочку сделать
Igor
Еще чуть-чуть эмскриптена поверх накинул, чтобы демку браузерную сделать
Igor
В последний раз в году так 2009 играл в команш
Luсky
осталось на луа и пиксели переписать, чтоб был софт-рендер
Igor
На love2d делал, но вышло больно медленно, не стал на гит кидать
Igor
Только в корзину кинул))
Luсky
кидай
Igor
Может потом перепишу с быстродействующими функциями
Luсky
на инстед хочу 3д двиг
Igor
Мне не нравится, что в love2d нет прямого доступа к текстуре
Igor
Точнее как, есть, но не к той, которая рисуется
Luсky
чтоб иллюстрации и параллакс шевелёнки мастерить
Igor
Это существенно всё замедляет
Luсky
обмазывать всё дитерингом
Igor
Вроде делал с использованием ffi во многих местах, а вышло один фиг ужасно медленно, расстроился и на Си написал
Luсky
и прочими тун-фильтрами
Igor
Помню еще войсчат на love2d делал, он уже сносно работал, имел бекенды enet и luasocket, но думаю он уже безвозвратно утерян. Ибо писал примерно 10 переустановок винды назад)
Luсky
войсчаты - зло
Snusmumriken
Мне не нравится, что в love2d нет прямого доступа к текстуре
А это основной прикол работы с видяхой. Image — это то что находится на видеокарте (у цпу только указатель на id буфера на видяхе). У цпу в принципе нет к ней доступа — оно на видеокарте. ImageData — это то что в оперативной памяти. Всякие штуки типа "myimage:blit(otherimage, x, y, srcx, srcy, srcw, srch)" — это при отсутствии opengl-рендера и использования видяхи, прямое копирование из буфера оперативки в другой буфер.
Igor
Ну это очевидно, да. Но обидно, что нет чего-то, что могло бы помочь ускорить процесс.
Snusmumriken
ImageData и Image:replacePixels(imgdata).
Snusmumriken
Первое имеет доступ к картинке из цпу, второе — прямая переливка данных с цпу в видяху без лишних копирований (созданий новой image и удалений старой image).
Snusmumriken
Snusmumriken
Вот тут — steamworks присылает мне указатель на буфер экрана браузера, я его через ffi запихиваю в imagedata, а потом через replacePixels пересылаю в видяху.
Snusmumriken
Igor
ImageData и Image:replacePixels(imgdata).
Ого, либо я слепой, либо в доках этого не было
Snusmumriken
Скорость космическая, и ffi тут нужен только для прямого копирования приходящего буфера в imagedata.
Igor
Это как раз помогло бы скорость поднять
Snusmumriken
Лишняя память тоже не размечается. Вообще. Отредактировал imagedata => переслал. Отредактировал и снова переслал.
Snusmumriken
Ого, либо я слепой, либо в доках этого не было
До 11 называлось image:refresh(imgdata), появилось в 10 в 2015 году.
Igor
Кажется я знаю, чем сегодня займусь
Snusmumriken
Хыхыхы
Igor
Оке
Igor
Домой вернусь и напилю, думаю
Igor
Грибобас был бы рад...
Igor
ЛДПР предложила сделать из Москвы полигон для сбора грибов
Igor
До 11 называлось image:refresh(imgdata), появилось в 10 в 2015 году.
На счёт replacePixels, кстати, сколько я в неё ни смотрел, всегда видел только то, что она аргументом функцию принимает
Igor
А это очень и очень медленно было бы, даже если б функция просто значения возвращала от ImageData
Igor
Надо бы зрение проверить сходить)
Snusmumriken
Я где-то делал game of life на mapPixel, но кто-то (не исключено что ты) показывал пример на ffi с созданием ffi-структуры а ля imagedata, редактировании её и копировании её в imagedata, что было в несколько (десятков?) раз быстрее.
Snusmumriken
А, не ты )
Snusmumriken
https://gist.github.com/pevzi/a55cca69dd925b449d728d5de11930b1
Igor
Интересная штука
Snusmumriken
А, ля, тут ваще хак с преобразованием поинтера ImageData в указатель на 2д-массив color_t, и прямое задание там пикселей без лишних вызовов функций.
Igor
Блин, а я ведь теперь и отображалку потока пикселей по сети смогу нормально написать
Snusmumriken
Особенно если сожмёшь
Snusmumriken
Да, тут много приколясов со всем этим счастьем, лапки развязываются
Igor
А то у меня читались пиксели из сокета, писались в имейдждату по поинтеру ffi
Igor
И каждый раз новый Image создавался
Igor
А это медленно прям капец
Snusmumriken
Вот проблема в этом, да. Это было первое что приходило в голову, и на fullhd-картинке графики памяти ловки начинают напоминать пилу с пиками с 700 до 1800мб, непрерывно размечаясь и удаляясь.
Igor
Ну а потоком пикселей было изображение с вебкамеры, которая к малинке подключена
Luсky
мне пожалуйста видеорегистратор на мобилку
Luсky
на ловке
Igor
Хехе
Luсky
чтоб можно было задать период фотосъёмки и разрешение фото
Igor
Нифига замахнулся
Luсky
нашпионить хочу
Luсky
нуачоа, должна же быть какая - то польза от ловки на мобиле
Snusmumriken
Вот эти задачи мне кажутся проще делать вебом, браузеры поддерживают потоковую фигню. Ну и управление/директории всякими аяксами.
Luсky
а жрут батарец сколько?
Snusmumriken
Протоколы оптимизированы, выбор качества и вся фигня.
Luсky
мне бы простое шпионство без веба
Luсky
поставил мобилу, нашпионил, забрал мобилу
Luсky
посмотрел фотки на ней
Luсky
чисто для домашнего использования
Luсky
с вебом морока
Luсky
сервер, утечка нашпионенного
Luсky
дисконнект, трафик
Igor
Ловка не умеет вроде как данные с камеры устройства получать, к сожалению