Графика для Windows средствами DirectDraw


Обновление курсора - часть 2


  • Стереть старый курсор на вспомогательной поверхности.

  • Сохранить фоновое изображение, занятое новой областью курсора.

  • Нарисовать новый курсор на вспомогательной поверхности.

  • Скопировать содержимое вспомогательной поверхности на первичную поверхность.
  • Используя оба алгоритма (из трех и пяти этапов), мы всегда сможем обновить курсор без мерцания и разрушения основного изображения.

    Для реализации двух алгоритмов потребуются три внеэкранные поверхности: поверхность с курсором, поверхность для хранения фонового изображения и вспомогательный буфер для перекрывающихся курсорных областей. Размеры первой и второй поверхностей совпадают с размерами курсора. Однако вспомогательный буфер должен быть вдвое выше и вдвое шире поверхности курсора, чтобы в нем могли разместиться области при минимальном перекрытии (на самом деле при таком размере буфер получается на один пиксель выше и шире, чем необходимо, но это непринципиально).




    Начало  Назад  Вперед



    Книжный магазин