Size: a a a

2020 May 16

AZ

Alex Zhukovsky in rust_offtopic
Stanislav Popov
а потом оказывается что гпу не умеет рисовать линии
у меня от таких разговоров все время такое ощущение что у вас проблемы в уровнях абстракции
источник

AZ

Alex Zhukovsky in rust_offtopic
ну то есть задача сделать игру и отрисовать линии это блин пропасть слоёв логики
источник

AZ

Alex Zhukovsky in rust_offtopic
у тебя есть fn draw_line(), а будет она на гпу или нет будешь решать потом, но сейчас ты эту функцию можешь использовать как будто она работает
источник

AZ

Alex Zhukovsky in rust_offtopic
очень редко бывает когда функцию в итоге написать невозможно никакими средствами
источник

SP

Stanislav Popov in rust_offtopic
Alex Zhukovsky
у тебя есть fn draw_line(), а будет она на гпу или нет будешь решать потом, но сейчас ты эту функцию можешь использовать как будто она работает
а потом сюрприз - у тебя нету императивного draw_line, либо он очень медленный и тебе нужно подготовить батч полигонов для отрисовки, а лучше юзать существующий и изменять шейдером
источник

SP

Stanislav Popov in rust_offtopic
ну это крайности конечно но подобное происходит постоянно
источник

SP

Stanislav Popov in rust_offtopic
а да, чуть не забыл
источник

SP

Stanislav Popov in rust_offtopic
допустим ты рисуешь линии. а потом ну просто так получилось что есть хотелка менять этой линии толщину. а потом линия оказывается настолько толстой что уже заметно что это полигон, и тебе на месте склейки линий уже нужно не draw_line(start, end) а moveto(start), drawTo(mid), drawTo(mid),drawTo(mid), stroke()
источник

SP

Stanislav Popov in rust_offtopic
а потом тебе нужен алтиалиасинг ну и заверте
источник

AZ

Alex Zhukovsky in rust_offtopic
Stanislav Popov
допустим ты рисуешь линии. а потом ну просто так получилось что есть хотелка менять этой линии толщину. а потом линия оказывается настолько толстой что уже заметно что это полигон, и тебе на месте склейки линий уже нужно не draw_line(start, end) а moveto(start), drawTo(mid), drawTo(mid),drawTo(mid), stroke()
это всё деталями реализации draw_line становится
источник

AZ

Alex Zhukovsky in rust_offtopic
снаружи у меня как было draw_line так и остается
источник

SP

Stanislav Popov in rust_offtopic
да но ты выносишь все места где у тебя были drawline и организуешь из них drawPolyLine
источник

AZ

Alex Zhukovsky in rust_offtopic
Stanislav Popov
да но ты выносишь все места где у тебя были drawline и организуешь из них drawPolyLine
да не выношу
источник

SP

Stanislav Popov in rust_offtopic
это примерно как из общей милдвари вынести авторизацию потому что сраный фреймворк не умеет её байпасить для некоторых запросов
источник

AZ

Alex Zhukovsky in rust_offtopic
вот у меня есть

fn draw_line(start, end) ... 

становится

fn draw_line(start, end) {
 move_to(start);
 let mid = calc_mid(start, end);
 drawTo(start, mid);
 drawTo(mid, end);
 stroke();
}
источник

SP

Stanislav Popov in rust_offtopic
или например у тебя фронтенд фреймворк не умеет скачать данные до того как поменял урл и тебе надо весь уютный флоу поставить с ног на голову
источник

AZ

Alex Zhukovsky in rust_offtopic
Stanislav Popov
это примерно как из общей милдвари вынести авторизацию потому что сраный фреймворк не умеет её байпасить для некоторых запросов
ну, у меня вчера такое было, неприятно, но я как-то без переписывания всего обошелся
источник

AZ

Alex Zhukovsky in rust_offtopic
только пришлось одну хелпер-функцию написать
источник

SP

Stanislav Popov in rust_offtopic
Alex Zhukovsky
вот у меня есть

fn draw_line(start, end) ... 

становится

fn draw_line(start, end) {
 move_to(start);
 let mid = calc_mid(start, end);
 drawTo(start, mid);
 drawTo(mid, end);
 stroke();
}
да не.  у тебя например было бы много разного кода который делал из разных мест drawline. ты этот код разбил по логике, но придется разбивать его уже по пути следования линий, чтобы были джоины красивые
источник

AZ

Alex Zhukovsky in rust_offtopic
Изи решение изи проблемы)
источник