Графические устройства

         

Недостатки немаскируемого курсора



Недостатки немаскируемого курсора

чевидными преимуществами работы с немаскируемым курсором являются следующие:

  • для построения и удаления курсора нужна одна подпрограмма;
  • подпрограмма выполняется сравнительно быстро;
  • в оперативной памяти хранится только образ рисунка.

Однако такой способ построения имеет один существенный недостаток, сводящий на нет перечисленные преимущества.

Идея использования немаскируемого курсора основана на том, что при определенных значениях операнда-источника команда хог инвертирует код операнда-приемника или не изменяет его (см. раздел). В описанной подпрограмме источником являются точки заготовки рисунка, а приемником — точки видеопамяти. Образ рисунка черно-белый, коды его точек имеют значения либо 00, либо 0FFh. Поэтому при построении рисунка цвета точек экрана, расположенных под стрелкой, инвертируются, а окружающих стрелку не изменяются. Таким образом, цвет рисунка немаскируемого курсора на экране зависит от исходного цвета точек в том месте экрана, на котором он создается.

Вспомним табл. 4.1 из главы 4. При ее описании говорилось, что два цвета являются дополнительными, если при их наложении получается белый цвет. В частности, дополнением к черному цвету является белый, к синему — желтый, к красному — циан, к зеленому — мажента. Исходя из этого, можно представить, как изменяется цвет курсора в зависимости от исходного цвета точек экрана. Если же на экране находится какая-то картинка, т. е. цвет экрана не однороден, то и изображение курсора будет неоднородным. На пестром фоне оно может "потеряться" — стать трудно различимым для глаза.

При работе в режимах PPG описанная подпрограмма инвертирует не код цвета, а номер регистра видеокарты. Полученный при инверсии цвет будет зависеть от установленной (системной) палитры. Эта особенность успешно использовалась, например, в ранних версиях Windows — системная палитра подбиралась так, чтобы можно было использовать немаскируемый курсор.

В заключение заметим, что после описания маскируемого курсора в разделе 6.1.5 мы продолжим обсуждение некоторых вопросов, связанных с построением изображения курсора.

 



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