Random Rust Dev
366 subscribers
73 photos
41 videos
1 file
28 links
Разработка на языке Rust.
Пишу простыни со своими мыслями о Rust и проектах на нем.
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Получился вот такой вот проводок.
Ваши мысли?
👍7
This media is not supported in your browser
VIEW IN TELEGRAM
После небольшого отдыха я продолжил работать над движком.
Обновил зависимости и порефакторил.
После чего занялся той самой задачей, от которой выгорел в прошлый раз - gpu work graph.
И вот оно работает.
🔥11👏2👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Опять я отвлекаюсь от графики.

Недавно я сделал библиотеку egui-probe для генерации UI редактирования значения любых типов с помощью EguiProbe трейта, который можно задерайвить.

Но это редактирование конкретного типа. А что если типа нет?
Совсем без схемы делать ну такое.
Хоче рантаймовую опциональную схему и генерировать UI для неё.

Поэтому сегодня я сделал новую библиотеку.

Она предоставляет тип Value который может принимать несколько классических вариантов данных.

А так же тип Desc, который описыает схему.
Сам он при этом может редактироваться с помощью EguiProbe.

А объединяя Value и Desc можно получить ValueProbe, который может быть использован для редактирования значения согласно схеме.

Самое замечательное, что почти не пришлось писать UI кода в этот раз.
Всю тяжелую UI работу делает egui-probe

На видео показан demo example.
🔥7
This media is not supported in your browser
VIEW IN TELEGRAM
И конечно можно указать Desc на любом уровне, где его нет.
This media is not supported in your browser
VIEW IN TELEGRAM
"Почему бы не добавить конфигурацию рендерджобам прямо в граф?" подумал я пару дней назад
🥰4
This media is not supported in your browser
VIEW IN TELEGRAM
Пора бы уже соединять чуть более сложный граф, чем draw -> present.

Конечно же нашлось чуть более чем ноль багов.
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Добавил хуки к рендерграфу и научил эдитор показывать каждый выход если это Image2D.
👍1
Ну все, я официально умею в нейронки теперь.
Закончил писать обучение и предсказание на HLSL.
Оно еще и быстрее местами работает, чем из фреймворка.

Добавил бы в движок, но в движке до сих пор нету 3д.
Видимо пора :)
👍6🐳5
Возможно многие как и я ждут эту фичу.
Она должны быть в следующием релизе на stable.
Она позволяет исправить следующий код что бы тот компилился.


fn get_iter<'a, T>(q: Option<&'a VecDeque<T>>) -> std::collections::vec_deque::Iter<'a, T> {
q.unwrap_or(&VecDeque::new()).iter()
}


Что же это за фича?
🤔4
Правильный ответ - inline const
https://doc.rust-lang.org/unstable-book/language-features/inline-const.html

Фикс

fn get_iter<'a, T>(q: Option<&'a VecDeque<T>>) -> std::collections::vec_deque::Iter<'a, T> {
q.unwrap_or(const { &VecDeque::new() }).iter()
}


Q: Почему это работает?
A: Создаваемая ссылка становится &'static.
Q: Почему нужен блок?
A: Потому что иначе rustc берет ссылку уже в runtime контексте и она на temporary значение.
🔥9👍1
Визуальное программирование!

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

Ноды создаются из самых обычных функций.
Плагин просто перечисляет их.
🔥4
🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
Макрос для экспорта всего и вся из плагина стал слишком большим и неудобным.

Что ж, долой его, теперь все экспортируется из плагина прямо на месте.

#[arcana::system]
#[arcana::filter]
#[arcana::job]
#[arcana::init]

и прочие атрибуты добавленные к айтемам экспортируют их из плагина.
А заодно добавляют туда расположение в коде, так что теперь можно из редактора прыгнуть на код системы или ренерджобы по кнопке
🔥7👍1
Пришло время, как мне показалось, стабилизировать edict
Потратив несколько бессоных часов я обновил документацию, сделал краткий список фич и поправил баги сборки в разных конфигурациях.

И вот представляю вам, релиз кандидат номер 2

https://crates.io/crates/edict/1.0.0-rc2
🔥9🎉2
Вы когда-нибудь уходили в отпуск, что бы работать над пет-проектом?

Я снова так сделал, но на этот раз пет это стол для настолок.

Я не делал мебель со школы. Пожелайте мне удачи
🔥22👍2😁1💯1
Когда надоело говорить "боровить", говори "реквизировать"
😁13👍2
Традиционное освещение VS рейтрейсинг
😁7
Если кому-то очень скучно. Посмотрите документацию тут.
Незамыленным глазом, понятно вообще че-там написано или туфта какая-то.
https://docs.rs/edict/1.0.0-rc4/edict/index.html
4👀1