170 похожих чатов

Есть wpf приложение, в котором на канвасе рисуются графики полилайном.

В полилайне довольно много точек, где то раз в 3 пикселя по горзонтали точка. Если канвас отскейлить на весь экран в 2к+ разрешении и если график покрывает значительную часть экрана фпс стремится к нулю. Если график покрывает условно говоря полэкрана все отлично. Попрофайлил и смотрю что большую часть времени мы сидим в wpfgfx_cor3.dll!CHwRasterizer.RasterizeEdges. Что может с этим сделать навскидку чтоб как-то ехало, кроме того чтоб выкинуть канвас и рендерить руками картинку?

7 ответов

35 просмотров

WriteableBitmap используйте, рисуйте трапециями, а не одним полигоном.

Aleksei Kuznetsov Kuznetsov
очень не хочется :(

Вообще раньше, когда на WinAPI программировали, была такая фигня, называлась Invalidate Rectangle, и оконо рисовало только тот квадратег, который нужно перерисовать, и все могло работать на IBM AT 386 на 33 мегагерцах. Теперь компы в 1000 раз быстрее, и никто не парится такими мелочами, как нарисовать заново десяток миллионов пикселей. Но, как видно, FPS дерганый и по сей день у многих получается, почему-то.

Aleksei Kuznetsov-Kuznetsov Автор вопроса
George Polevoy
Вообще раньше, когда на WinAPI программировали, бы...

Ну местами это разумный трейдофф. Иногда дороже посчитать что именно нужно перерисовать чем просто перерисовать.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта