5edf7c19

Отсекаемые списки


Отсекаемые списки,  управляются DirectDraw с использованием объекта DirectDrawClipper. DirectDrawClipper должен быть присоединен к любой поверхности. Программа обработки окна должна также быть присоединена к DirectDrawClipper, так как, когда DirectDraw модифицирует отсекаемый список DirectDrawClipper изменяется и отсекающий список окна.

Хотя отсекающийся список видим из DirectDraw HAL, DirectDraw вызовет HAL только для блиттинга с прямоугольниками, которые в списке. Например, если верхний правый прямоугольник поверхности отсекался, и прикладная программа делает DirectDraw блиттинг поверхности на основную поверхность, DirectDraw заставит HAL делать два блиттинга. Первый - этоверхний левый угол поверхности, и второй - нижняя часть половины поверхности.

HAL рассматривает отсекающийся список для оверлеев только если оверлейные аппаратные средства могут поддерживать отсечение и если не активен color key адресата. Совместное использование ограничителей

В DirectX 2, ограничители могут быть разделены между поверхностями. Например, тот же самый ограничитель может быть установлен, и на передней и на обратной стороне буфера. Когда ограничитель присоединен к поверхности,  используя метод IDirectDrawSurface:: SetClipper, поверхность увеличивает счет ссылки того ограничителя. Когда счет ссылки поверхности достигает 0, это будет декремент счет ссылки присоединенного ограничителя. Кроме того, если ограничитель отсоединяется из поверхности,  вызывая DirectDrawSurface::SetClipper с указателем интерфейса ограничителя NULL, счет ссылки ограничителя поверхности будет десрементирован.



Содержание раздела