Re[12]: GDI+ быстрый вывод
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 20.12.10 12:23
Оценка:
Здравствуйте, Silver_S, Вы писали:

I>>Не удаляй, мне фиолетово чего у тебя в коде творится.

S_S>Я привел пример когда вариант без Update может быть хуже.

Ты хорошо русский язык понимаешь ?

Ты хорошо понимаешь, что для разных приложений оптимальной будут разные схемы отрисовки ?

S_S>Можешь привести пример когда с Update будет хуже? Я пока такого не видел.


Ты много чего не видел вероятно. Если у тебя Invalidate вызывается исключительно в OnMouseMove и рисовать нужно мелочевку, то и ежу понятно, что в этом случае без разницы, как будет вызываться отрисовка — принудительно или нет. Дворкин привел хорший пример с отрисовкой четырех линий.

Своим Update ты только увеличиваешь частоту отрисовок, это в первую очередь ест перформанс. При этом нет никакой гарантии что твои кадры не будут пропадать.

Пример — надо отрисовывать чтото серьезное и Invalidate вызывается не только в OnMouseMove(бекграунд подгружается в фоне и тд). Получается не сильно приятная картина — от твоих Update никакого толку нет, т.к. все равно тоже самое надо отобразить обычным способм.

Второй пример — ты наводишь мышом на объект и он меняет стиль с Regular на Hovered. Убираешь мышь — стиль меняется на старый. Какой ректангл надо перерисовать ? Если ты можешь локализовать изменения, то только один объект. Если нет — перерисовывай всю сцену. Итого — Gdi+ сожрет все 100% ядра при движении мыша, потоу что аппаратного ускорения в Gdi+ почти что нет,

Спрошу еще раз, на всякий — ты хорошо русский язык понимаешь ?

Ты хорошо понимаешь, что для разных приложений оптимальной будут разные схемы отрисовки ?
Re[13]: GDI+ быстрый вывод
От: Silver_S Ниоткуда  
Дата: 20.12.10 13:36
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Ты хорошо русский язык понимаешь ?

Намекаешь, что пытался на русском написать?

I>... Убираешь мышь — стиль меняется на старый. Какой ректангл надо перерисовать ? Если ты можешь локализовать изменения, то только один объект. Если нет — перерисовывай всю сцену.

Не понимаю как ректангл связан с отложенной перерисовкой.

I>... что для разных приложений оптимальной будут разные схемы отрисовки ?

Я про разные не спрашивал, а только про тот где не стоит Update вызывать.

Ладно. Все ясно.
Re[14]: GDI+ быстрый вывод
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 20.12.10 13:43
Оценка:
Здравствуйте, Silver_S, Вы писали:

I>>... Убираешь мышь — стиль меняется на старый. Какой ректангл надо перерисовать ? Если ты можешь локализовать изменения, то только один объект. Если нет — перерисовывай всю сцену.

S_S> Не понимаю как ректангл связан с отложенной перерисовкой.

Не понимаешь, зато советуешь именно этот способ. Неудивительно.
Re: GDI+ быстрый вывод
От: Undying Россия  
Дата: 21.12.10 09:59
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Появилась задача сделать выделение областей мышкой на форме. пробовал множество способов — у всех (кроме 1) при каждом движении курсора всё (или только линии выделения) безбожно мигает.


Вот такая панелька точно работает без мигания при отрисовке в обработчиках события OnPaint.

  public class VirtualPanel : Panel
  {
    public VirtualPanel() :
      base()
    {
      base.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint |
        ControlStyles.UserPaint, true);
    }
  }
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.