Добрый день уважаемые
Проблема такая: сделал я скроллинг области экрана через DirectDraw (DD).
Но есть проблема: иногда по крану едет не нужное мне изображение, а «резина». Т.е. бывает, что едет-едет нормально, потом что-то происходит и в произвольном (?) участке выезжающего из-за края области изображения видна одна строка, растянутая на несколько строк (резина).
После каждой операции блиттинга дождался завершения операции:
DDMySurface.GetBltStatus(DDGBS_ISBLTDONE) = DD_OK
Никакой закономерности появления эффекта я не выявил, не считая того, что на компе с более мощной видюхой эффект появляется заметно реже.
Частота появления эффекта примерно 1 раз на 10000 прокрученным строк.
Алгоритм блиттинга (упрощённо):
1. Создаю в памяти буфер с изображением, которое должно выехать
2. Копирую с первичной поверхности (с экрана) на вторичную со смещением (скроллинг)
2. Копирую строчку из буфера во вторичную поверхность
3. Копирую всю вторичную поверхность на первичную
Что это за грабли?