Помогите с DirectDraw!
Имеется форма, к которой прикреплена главная поверхность. На эту поверхность выводится графика из разных файлов, фрагменты этой графики пересекаются. Для анимации поверхность обновляется по таймеру со скоростью несколько раз в секунду, при этом возникают разные "мерцающие эффекты", тоесть части объектов, которые пересекаются начинают мигать. Как от этого избавиться? Используется VB6 и DirectX7.
Цитата:
Originally posted by artlav
Проблемма такая:
Имеется форма, к которой прикреплена главная поверхность. На эту поверхность выводится графика из разных файлов, фрагменты этой графики пересекаются. Для анимации поверхность обновляется по таймеру со скоростью несколько раз в секунду, при этом возникают разные "мерцающие эффекты", тоесть части объектов, которые пересекаются начинают мигать. Как от этого избавиться? Используется VB6 и DirectX7.
Проблемма такая:
Имеется форма, к которой прикреплена главная поверхность. На эту поверхность выводится графика из разных файлов, фрагменты этой графики пересекаются. Для анимации поверхность обновляется по таймеру со скоростью несколько раз в секунду, при этом возникают разные "мерцающие эффекты", тоесть части объектов, которые пересекаются начинают мигать. Как от этого избавиться? Используется VB6 и DirectX7.
По-видимому ты выводишь поверхность из разных мест программы. Советую рисовать не от таймера (неэффективно), а создать для этого новый поток и использовать CRITICAL_SECTION при копировании на поверхность - мерцания не будет.
Цитата:
Originally posted by Zmei
По-видимому ты выводишь поверхность из разных мест программы. Советую рисовать не от таймера (неэффективно), а создать для этого новый поток и использовать CRITICAL_SECTION при копировании на поверхность - мерцания не будет.
По-видимому ты выводишь поверхность из разных мест программы. Советую рисовать не от таймера (неэффективно), а создать для этого новый поток и использовать CRITICAL_SECTION при копировании на поверхность - мерцания не будет.
Можно поподробнее, а то я в этом не очень - то разбираюсь...
Цитата:
Originally posted by artlav
Можно поподробнее, а то я в этом не очень - то разбираюсь...
Можно поподробнее, а то я в этом не очень - то разбираюсь...
На самом деле от моргания "некриво" избавиться очень сложно в оконном (не полноэкранном режиме), поскольку нет ровных подстановок буферов и их переворачивания. Четно говоря, надо в таком случае стараться не делать лишних обновлений... Если интерессно, то в OpenGL таких морганий нет нигде!