
Комментарии 9
Симпатишно, но неясно чем вам тут Rust помог. Этот код и на Си будет выглядеть примерно так же :) Даже на ассемблере, пожалуй, особенно куски вроде "главная функция инициализации gl-функций" :) Ну да не важно, графическая/семантическая составляющая заслуживает одобрения, плюсую.
но неясно чем вам тут Rust помог
Как чем? Кликбейтным заголовком, это же очевидно! Вы же вот перешли почитать. Предлагаю кстати еще идею автору, создать статью типа "Пишем 3D игру на bash", где 90% кода будет на юнити, и 10% обычный start.sh который делает проверки окружения, скачивает плеер (при его отсутствии в системе) и запускает игру.
Раст сейфовее Си, проще менеджмент строк поидее ( хотябы строк, когда на С надо нуль-термнатором отбивать строки )
недавно читал что если в программе выделена память под системное что-то, то после закрытия приложения может не очиститься память(например при ошибке), поэтому надо чистить память, вот интересно Раст очистит такую память(известно что в расте подсчет ссылок, но допустим выделена память которая под системное что-то, и тут же например краш) ), так и получается там где надо у Раста ансейф наверно так чтоли, тоесть вот интересно очистит Раст такую память или там требование ансейф как раз
если не использовать раст как язык для шейдеров, то сейфовости там особо не будет, учитывая, что большая часть winapi и gl вызовов обёрнуты в unsafe. Да и проверки границ он тоже спиливает, вызывая unchecked варианты.
известно что в расте подсчет ссылок
чтобы иметь подсчёт ссылок, сначала нужно его использовать. время жизни там немного отслеживается, но оно максимум от дедлоков спасёт - демо без тредов, так что спасать особо нечего в этом плане. Винапи честно почистится по идее, а для gl по-хорошему надо свой drop писать, но простоты и размера можно просто запаниковать и абортнуться из программы, что видимо автор и делает.
Здесь мне больше всего помог cargo, от Rust мне и вправду мало, что нужно было. Я просто помню проблемы сборки проектов на C/C++ c CMake/Make, а я хотел показать, что можно довольно просто собрать такое интро, особенно, если больше знаком с Rust, чем с С
впервые вижу граф приложение на расте, хорошо у вас получилось
Сарказм/Душнизм:
Пардонь-те, ну зачем Вам аудитория, которая пишет на чистом Си (не на Rust-е)? Окучить всех по максимуму? Может лучше просто написать "котики"? И вдруг сразу все ломанутся читать?
---
По сути:
Чистый Си вот зачем?
Системное программирование - каким боком оно здесь?
Про OpenGL можно было бы указать. Или про shader-ы.
---
Ещё немного в терминологию: открываем известный поисковик с ответами и получаем:
Интро — это начальный элемент видеоролика. Само слово образовалось от английского «introduction», «вступление».
Вы точно создаёте "начальный элемент видеоролика"?
Может сразу написать "демосцена"? Тот же поисковик:
Демосцена (англ. demoscene) — направление компьютерного искусства, ориентированное на создание аудиовизуальных представлений — «демок». Особенность — выстраивание сюжетного видеоряда, создаваемого в реальном времени компьютером, по принципу работы компьютерных игр.
По-моему, это уже ближе!
---
Сарказм завершён.
---
Понедельник. Первый день осени.
И вообще: С Днём Знаний!
под приложение на граффику надо настраивать клиент и ноуклиент чтобы получать сообщения событий и обрабатывать - системное, потомучто уже есть интерес на этом этапе у некоторых разработчиков не используя библиотеку настроить окно и прочее, а это винапи
это обыкновенная загрузка как елемент в библиотеках, просто выполненная на шейдере, её можно кинуть в компонент и вызывать когда загрузка )
Создание интро в 2кб на Rust за вечер