DirectDraw — проблема с блиттингом
От: Leninax Беларусь  
Дата: 30.07.09 11:16
Оценка:
Добрый день уважаемые

Проблема такая: сделал я скроллинг области экрана через DirectDraw (DD).
Но есть проблема: иногда по крану едет не нужное мне изображение, а «резина». Т.е. бывает, что едет-едет нормально, потом что-то происходит и в произвольном (?) участке выезжающего из-за края области изображения видна одна строка, растянутая на несколько строк (резина).

После каждой операции блиттинга дождался завершения операции:
DDMySurface.GetBltStatus(DDGBS_ISBLTDONE) = DD_OK


Никакой закономерности появления эффекта я не выявил, не считая того, что на компе с более мощной видюхой эффект появляется заметно реже.
Частота появления эффекта примерно 1 раз на 10000 прокрученным строк.

Алгоритм блиттинга (упрощённо):
1. Создаю в памяти буфер с изображением, которое должно выехать
2. Копирую с первичной поверхности (с экрана) на вторичную со смещением (скроллинг)
2. Копирую строчку из буфера во вторичную поверхность
3. Копирую всю вторичную поверхность на первичную


Что это за грабли?
Enjoy your body!
Re: DirectDraw — проблема с блиттингом
От: Leninax Беларусь  
Дата: 31.07.09 10:56
Оценка:
L>Что это за грабли?

Up
Enjoy your body!
Re[2]: DirectDraw — проблема с блиттингом
От: pick_catcher  
Дата: 04.08.09 10:17
Оценка:
Здравствуйте, Leninax, Вы писали:

L>>Что это за грабли?


Что-то прям до боли знакомое.
А видюха часом не старенькая до х2000 ATI?

У нас была подобная проблема и мы решили, что это из-за глюков либо в железе!!! либо в дровах видюхи.
Заменили на новую (нового поколения) — заработало.

Мощность здесь значения не имеет, скорее всего имеет значение поколение видеокарты. (что за карта?)

Для себя мы решили использовать для работы с DirectDraw карты NVidia и ни в коем случае не работать с ATI x100 — x1000.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.