Освой компьютер
В
системе Intuition бордюры используются для выделения окон и экранов, а
также для обозначения поля ввода для строковых gadget\'ов.
Нарисовать бордюр очень несложно: достаточно воспользоваться функцией
DrawBorder (смещение -108 в intuition.library), которая вызывается с тремя
параметрами: в A0 - адрес порта RastPort.
в A1 - адрес блока данных, задающего бордюр. Формат этого блока будет
рассмотрен ниже.
в D0 - X - координата начальной точки (относительно левого верхнего угла
экрана).
в D1 - Y - координата начальной точки. Использовать функцию DrawBorder можно, например, так: DrawBorder = -108
...
borderdraw: ;* нарисовать бордюр
move.l intbase(PC),A6 ;база intuition.library
move.l windowhd(PC),A2 ;идентификатор окна
move.l 50(A0),A0 ;адрес порта RastPort
jsr DrawBorder(A6) ;вызываем DrawBorder
rts ;все
Теперь рассмотрим формат блока данных, описывающего отрезки бордюра.
Первые два слова определяют смещение относительно начальной точки бордюра.
Чтобы обеспечить попадание всех отрезков внутрь экрана, поместим сюда нули: dc.w 0 ;X - смещение
dc.w 0 ;Y - смещение Следующие два байта определяют цвета бордюра и фона: dc.b 3 ;цвет бордюра (красный)
dc.b 0 ;цвет фона
Отрезки бордюра могут выводится в одном из двух режимов: JAM1 и XOR. В
режиме JAM1 отрезки рисуются заданным цветом, \"затирая\" прежнее содержимое
окна, а в режиме XOR пикселы, через которые проходят отрезки бордюра,
инвертируются (при этом цвета, заданные в предыдущих байтах, игнорируются).
Режим рисования бордюра задается в следующем байте блока данных бордюра: dc.b 0 ;режим JAM1 (для XOR - 2) При этом режим JAM1 задается кодом 0, а режим XOR - кодом 2.
Следующее поле определяет количество точек (вершин) ломаной, составляющей
бордюр.
AMIGA: ПРОГРАММИРОВАНИЕ НА АССЕМБЛЕРЕ.
|