Войти
ПрограммированиеФорумОбщее

rg3d - движок на Rust'e (3 стр)

Страницы: 1 2 3 4 5 6 7 Следующая »
#30
11:23, 3 ноя. 2019

mr.DIMAS
> Полная сборка с нуля со всеми зависимостями около 50 сек. Общий объем кода
> движка 22к строк.
этоже медленней чем с++? страсти какие


#31
11:29, 3 ноя. 2019

innuendo
> так а раньше почему падало ?
Потому что говно ваш С++, вот почему :)

#32
14:18, 3 ноя. 2019

BingoBongo
> > так а раньше почему падало ?
> Потому что говно ваш С++, вот почему :)

дело было не в бобине

#33
(Правка: 14:59) 14:58, 3 ноя. 2019

> Общий объем кода движка 22к строк.
Нормально, как пет-проект. Код либо нормальный, либо превращается в гад-блесс-говномесс. Примерно с таких метрик.

#34
19:37, 3 ноя. 2019

В написании гуя у меня какая-то вундервафля получается, решил посмотреть как у тебя.
Ты написал свой рендеринг шрифтов? о_О
Почему не взял freetype/rusttype/что-либо ещё?

#35
(Правка: 21:11) 21:10, 3 ноя. 2019

Джек Аллигатор
> Ты написал свой рендеринг шрифтов? о_О
> Почему не взял freetype/rusttype/что-либо ещё?
У меня был свой загрузчик\рендерер\упаковщик шрифтов для сишного движка и я просто его портировал за день ¯\_(ツ)_/¯

Вообще я планирую перейти на freetype потому что у меня довольно слабенькая поддержка шрифтов.

#36
21:41, 3 ноя. 2019

не могу не потроллеть
>Почему раст?
>Надежность, скорость и безопасная многопоточность. C++ обеспечивает разве что скорость, ни о какой надежности и безопасной многопоточности там и речи нет.
>...раст же следит за тем что в программе нет гонок за данные (в то же время взаимную блокировку потоков можно получить на раз-два)...
как в голове могут быть взаимоисключающие вещи? - два полушария, ага

#37
21:43, 3 ноя. 2019

clc
Изображение

#38
10:43, 5 ноя. 2019

я движками не занимаюсь, но объясните мне как это читать, если надо найти что-то?

https://github.com/mrDIMAS/rg3d/blob/master/src/renderer/gl.rs

у меня рука забилась пока я скролил это и пытался вникнуть что там происходит.

#39
10:48, 5 ноя. 2019

Pigloo, вот так: http://docs.gl/
Эти исходники не для чтения.

#40
10:54, 5 ноя. 2019

Pigloo
Это сгенерированные биндинги для опенгл.

#41
(Правка: 22:07) 22:03, 6 ноя. 2019

mr.DIMAS
> Утечка не UB, поэтому раст допускает возможность ее создания (через кривые
> руки)

Часто ли у тебя возникала ситуация, когда данные не укладывались в парадигму владения/заимствования и приходилось использовать RC и подобное?

Да, и возникали ли ситуации, когда сначала было сделано на владении/заимстовании, а потом требовался глубокий рефакторинг на RC?

#42
22:54, 6 ноя. 2019

Dmitry_Milk
Было один раз всего и то на начальном этапе - ресурсы (модельки, текстуры, буферы звуков, и т.д.) изначально все лежали в пулах и я просто хранил хэндл ресурса там где требовалось, а потом если надо что-то из него прочитать я передавал в метод пул и хэндл нужного ресурса. Это оказалось жутко неудобно по одной простой причине - ресурс может быть разделяемым между многими объектами и должен быть удален если им никто не пользуется. Тут и пригодился Arc<Mutex<SomeResource>>, Arc - обычный shared_ptr из плюсов, а сам ресурс защищен мьютексом. Это единственное место в движке где активно используется Arc. В остальных места все объекты живут в пулах и "ссылки" на них это просто хэндлы.

#43
0:06, 7 ноя. 2019

mr.DIMAS
> объекты живут в пулах

borrow_N_mut не получилось без unsafe. Почему? mut доступ к одному элементу вектора блокирует весь вектор?

#44
0:17, 7 ноя. 2019

mr.DIMAS
> ресурс может быть разделяемым между многими объектами и должен быть удален если
> им никто не пользуется. Тут и пригодился Arc<Mutex<SomeResource>>, Arc -
> обычный shared_ptr из плюсов
В целом концепция "удалить сразу же как только никто не использует" - говно. Легко попасть в ситуацию: удалили / тут же загрузили обратно / удалили / тут же загрузили обратно. В идеале нужно прикручивать более "умный" менеджмент, который не будет сразу удалять объект при потере на него ссылок.

Страницы: 1 2 3 4 5 6 7 Следующая »
ПрограммированиеФорумОбщее