Size: a a a

RU Rust GameDev — русскоговорящее сообщество

2020 April 02

AN

Alex Naraito in RU Rust GameDev — русскоговорящее сообщество
Я если и собираюсь их писать в проекте, то начинаю сразу
источник

AN

Alex Naraito in RU Rust GameDev — русскоговорящее сообщество
А там где не хотел их писать их просто нет (проекты такие маленькие)
источник

L

Lain-dono in RU Rust GameDev — русскоговорящее сообщество
Mikola Summer Duck
(а вот это как раз для рнд неважно)
Но когда я в итоге буду это всё выкладывать, то там оно останется. Все эти бесконечные коммиты fix, it works, add something, wtf и так далее. Впрочем всем пофиг, если оно после релиза будет нормально
источник

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
Вот вот
источник

L

Lain-dono in RU Rust GameDev — русскоговорящее сообщество
Кстати уменьшение количества RenderPass ещё и на производительности сказывается. При том достаточно сильно для некоторых случаев. Например если я пытаюсь рендерить 6 шадоумапов по 8196x8196 и чтоб всё это в 4к, то демка уже начинает тормозить.
источник

L

Lain-dono in RU Rust GameDev — русскоговорящее сообщество
источник

L

Lain-dono in RU Rust GameDev — русскоговорящее сообщество
А на счёт говнокода тут есть и более весёлые штуки. Это я в ближайшее время уберу, но пока так
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Pro Tip:
fn re<'a, 'b, T>(v: &'a T) -> &'b T {
 unsafe { &*(v as *const T) }
}
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Так сильно лучше
источник

L

Lain-dono in RU Rust GameDev — русскоговорящее сообщество
Roman
Так сильно лучше
Да, ты прав. Но вообще эта штука - временный костыль, который есть тут из-за того, что разные части кода находятся на разном этапе рефакторинга. Добавлю нормальный (в пределах этой демки) менеджер ресурсов - так сразу лучше станет.
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Вообще std::mem::transmute почти никогда не нужен. Лучше обойтись указателями с кровью
источник

L

Lain-dono in RU Rust GameDev — русскоговорящее сообщество
Roman
Вообще std::mem::transmute почти никогда не нужен. Лучше обойтись указателями с кровью
А когда без него прям ну совсем совсем никак?
источник

AN

Alex Naraito in RU Rust GameDev — русскоговорящее сообщество
В общем делаем вывод, что рефакторинг нужен всегда
источник

p

polunin.ai in RU Rust GameDev — русскоговорящее сообщество
Roman
Вообще std::mem::transmute почти никогда не нужен. Лучше обойтись указателями с кровью
Я трансмьютил лайфтаймы ним
источник

p

polunin.ai in RU Rust GameDev — русскоговорящее сообщество
Lain-dono
А на счёт говнокода тут есть и более весёлые штуки. Это я в ближайшее время уберу, но пока так
На всякий случай: трансмьют из меньшего лайфтайма в бОльший - УБ если данные живут меньше чем бОльший лайфтайм
источник

L

Lain-dono in RU Rust GameDev — русскоговорящее сообщество
polunin.ai
На всякий случай: трансмьют из меньшего лайфтайма в бОльший - УБ если данные живут меньше чем бОльший лайфтайм
Я знаю. Но в данном конкретном случае у той штуки, к которой я применяю, на самом деле гораздо больший реальный лайфтайм. А с учётом того, что это демка, то этот лайфтайм вообще можно считать статическим. С другой стороны там всё равно удобнее сделать отдельную сущность, которая хранит эти штуки.
источник

p

polunin.ai in RU Rust GameDev — русскоговорящее сообщество
Lain-dono
Я знаю. Но в данном конкретном случае у той штуки, к которой я применяю, на самом деле гораздо больший реальный лайфтайм. А с учётом того, что это демка, то этот лайфтайм вообще можно считать статическим. С другой стороны там всё равно удобнее сделать отдельную сущность, которая хранит эти штуки.
Данные живут столько сколько ссылка или меньше?
источник

p

polunin.ai in RU Rust GameDev — русскоговорящее сообщество
Если меньше - УБ
источник

L

Lain-dono in RU Rust GameDev — русскоговорящее сообщество
polunin.ai
Данные живут столько сколько ссылка или меньше?
В данном конкретном случае данные живут столько же, сколько и программа. Но вообще я просто не доделал там кое-что. Доделаю и хак полностью исчезнет.
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
На самом деле нет. Можно иметь ссылку с большим лайтаймом чем живут данные
источник