Рома
Хотя может быть лишняя рука это и плюс в программировании😂
Lunatic
Богатеи-привереды
Lunatic
Мне больше достанется пальмового масла и полезных пластмасс
Snusmumriken
Snusmumriken
Snusmumriken
Щяс ещё спрайтбатчи и моделбатчи будут, ага.
Snusmumriken
Хммм, нормальный бинд до клавиш пока не сделан.
Snusmumriken
Самое ужасное — к этому барахлу с пачкой аддонов относительно самого раулиба потом ещё доку пилить.
А я тут посокращал ещё всякое, чтобы блин удобно было, и camelCase вместо PascalCase, и дефолтные значения, и микро-графическое состояние чтобы не указывать цвета-шрифты по сто тыщ раз.
Snusmumriken
А вот ето даже забавно.
Ну тип, счётчик нажатых клавиш из списка.
Vlad
Батчинг там кстати из коробки в 2д и 3д
Vlad
Ну, да.
Но все дровколлы с одной и той же текстурой, идущие подряд, батчатся
Vlad
То же самое с моделями и материалами
Vlad
Если текстура/материал/шейдер не меняются, то всё летит в один дровколл
Nya
Vlad
Я буквально в рендердоке смотрел на это дело
Vlad
Предатель
Я на LÖVE уже несколько лет не сижу, о чём вы? 🙃
Snusmumriken
Если текстура/материал/шейдер не меняются, то всё летит в один дровколл
Хмм, вроде и правда.
С моделями правда как правило хуже, потому что они зачастую рисуются из разных мешей с разными текстурами, разными шейдерами и прочей разной фигнёй.
А drawInstanced чот не хочет фурычить у raylib-lua, я переводил примеры 1 к 1 и результаты странные.
Snusmumriken
Скокто трыдэ подцепил
Snusmumriken
Вообще мемно
Snusmumriken
Snusmumriken
Или тебе внутрь залезть?
StiMOR
А откуда в нем функция drawExt
StiMOR
Snusmumriken
StiMOR
А понел
StiMOR
Мне просто интересно как ты это рисуешь
Snusmumriken
Тут я пользуюсь райлибом, он сам грузит модельки. Это стандартный функционал.
StiMOR
А в ловке
StiMOR
Ты раньше в ней это показывал тоже
Snusmumriken
А в ловке, я ручками парсю модель, ручками подгружаю каждую текстурку, ручками генерирую пачку мешей из вершинок и материалов (потому что моделька состоит не из одной а из нескольких), ручками пропихиваю его в ручками написанный шейдер.
Snusmumriken
А в раулибе — мои интерфейсики до местных мешей через raylib-lua, вопще прикольна.
Ещё прикона что провешены ффи-типы, вокруг которых не нужно оборачивать таблички — ништяк.
Snusmumriken
Остались два самых важных вопроса.
где моё певко и когда я наконец усну
《 tan( gay π ); gay = true or 1; 》
https://nelua.io/
《 tan( gay π ); gay = true or 1; 》
смотрите что нашел
Snusmumriken
Класека
《 tan( gay π ); gay = true or 1; 》
что вы об этом думаете, народ
《 tan( gay π ); gay = true or 1; 》
мне кажется как иницатива язык хорош
《 tan( gay π ); gay = true or 1; 》
но он совсем свежий
Snusmumriken
Ну как бы с одной стороны прикона.
С другой — это ещё один транслятор в сишку.
Snusmumriken
С третьей — это ещё один транслятор в сишку.
《 tan( gay π ); gay = true or 1; 》
оно ж умеет еще под луашкой с C кодом работать
《 tan( gay π ); gay = true or 1; 》
как это есть в FFI
Snusmumriken
Это не луа.
Snusmumriken
Это си.
Snusmumriken
Тут от луа только запах. Это просто си.
《 tan( gay π ); gay = true or 1; 》
оно же позиоционирует ся как отдельный язык
Snusmumriken
Ну потому что код на этом языке не соответствует стандартам ни луа ни си.
Но транслируется в си. Си — как промежуточный язык.
Это си. С другим запахом.
《 tan( gay π ); gay = true or 1; 》
Snusmumriken
Фигня с луа в том, что луа — подразумевает в той или иной форме интерпретатор.
Тут нет интерпретатора. И компилятора кстати тоже нет — они пользуются "чужим" компилятором.
《 tan( gay π ); gay = true or 1; 》
ну эт логично
все же языки как иначе от C производные
《 tan( gay π ); gay = true or 1; 》
вроде как
Snusmumriken
Нет.
Snusmumriken
Во-первых, семейство сишки не такое широкое как кажется.
Во-вторых, тут дело не в том что "произошло или нет".
Это просто си. Обычная сишка. Буквально она. Ничего другого, кроме запаха.
《 tan( gay π ); gay = true or 1; 》
Snusmumriken
Внезапно потому что это си!
《 tan( gay π ); gay = true or 1; 》
теперь то ясно
《 tan( gay π ); gay = true or 1; 》
я это чудо случайно откопал, когда искал инфу о диалектах с строгой типизацией
Snusmumriken
Фигня в том, что в "норме" — языки не переводятся один в другой.
Жаваскрипт — не переводится в си, чтобы запуститься на машине. Он запускается в программе-интерпретаторе.
Сиплюсплюс не переводится в си. Он сразу гонится в машинный.
Сама сишка — тоже гонится в машинный.
Го — не переводится в си, сразу гонится в машинный.
Всё компилируемое — как правило гонится в машинный, или сначала переводится в "байткод", который уже переводится в машинный.
C#, VBasic и Jave — это интерпретируемые языки, которым нужна "программа-виртуальная машина" которая их будет запускать. Проигрыватель для кода. "Компилируются" в байткод.
cemochkin
А какой с в luajit?
《 tan( gay π ); gay = true or 1; 》
Snusmumriken
А какой с в luajit?
В интерпретатор luajit встроен компилятор сишки tcc (очень маленький), а сама виртуальная машина луажыта такая смотрит часто употребляемые последовательности луёвых команд (трассы), и когда те переваливают за определённое число вызовов — генерирует строчки исходника из сишки и немножко асма, который делает то же самое но на сишке вместо луашки, компилирует его и вызывает каждый раз, когда мы приходим на данную последовательность команд (трассу). А так — байткод.
Да, луажытом нельзя "принудительно компилировать отдельные функции", функций для него не существует. Только последовательности команд.
《 tan( gay π ); gay = true or 1; 》
《 tan( gay π ); gay = true or 1; 》
подобное есть и в Android
Snusmumriken
Snusmumriken
подобное есть и в Android
Фигня в том, что luajit был одним из самых первых "не академических" образцов подобной фигни, которой нашлось прям практическое применение, и оно выстрелило. Интересно почему.
А остальные натырили ))
В жаваскриптовом движке v8 вон теперь (с ~2010 года) тоже есть JIT. И в пхп есть JIT. И в Java есть JIT. Во всё скриптовое подряд повстраивали JIT, потому что модно молодёжно быренька красивенька.
usernameak
《 tan( gay π ); gay = true or 1; 》
Snusmumriken
в тоже время оно имеет свои плюсы и работает быстрее чем нативное решение
JIT как правило не работает быстрее чем "нативное решение".
Сам JIT — сборка в "нативный" машинный код под данную платформу.
Но сборка производится очень маленьким и быстрым компилятором — чтобы программа даже не заметила что тут что-то компилировалось.
Из-за этого, скипаются (отсутствуют в компиляторе) этапы оптимизации и ещё много что.
Поэтому "скомпилированный житом" код обычно немного медленнее нативной сишки — пропущена оптимизация. Плюс оно всё ещё вызывает луёвые команды, а там может быть довольно много лишних шагов чем "если бы то же самое было написано предельно оптимизированно для сишки".
Но. Конкретно у луажыта настолько забавная технология мапинга сишных функций, что вызов сишных функций иногда бывает быстрее из луажыта чем напрямую из сишки (скипая шаги преобразований виртуальных указателей до функций). Но тут в зависимости от компиляторов и их настроек, которые собирали сишку.
cemochkin
Капец
Laimadoo
Laimadoo
Кстати, возможно потому, что я использовал много сишных функций в json.lua у меня м выходило быстрее в одних случаях и медленнее в других. В rxi идёт посимвольный проход, а у меня используется find, что бы пропустить лишнее
cemochkin
Я так и не прочитал что быстрее: посимвольный или find
Snusmumriken
《 tan( gay π ); gay = true or 1; 》
Snusmumriken
Он.