Функция 50 - установка формы окна.
Обычные окна представляют собой прямоугольники. С помощью этой функции
окну можно придать произвольную форму. Форма задаётся набором точек
внутри обрамляющего прямоугольника, принадлежащих окну. Положение и
размеры обрамляющего прямоугольника задаются функцией 0 и изменяются
функцией 67.
Установка данных с информацией о форме
Параметры:
- eax = 50 - номер функции
- ebx = 0 - номер подфункции
- ecx = указатель на данные формы (массив байт 0/1)
Возвращаемое значение:
- функция не возвращает значения
Установка масштаба данных формы
Параметры:
- eax = 50 - номер функции
- ebx = 1 - номер подфункции
- ecx задаёт масштаб: каждый байт данных определяет
(2^scale)*(2^scale) пикселей
Возвращаемое значение:
- функция не возвращает значения
Замечания:
- Масштаб по умолчанию равен 0 (масштабирующий множитель 1). Если в
данных формы один байт соответствует одному пикселю, то масштаб
можно не устанавливать.
- Обозначим xsize = ширина окна (в пикселях), ysize = высота;
обратите внимание, что они на единицу больше, чем устанавливаемые
функциями 0, 67.
- По определению масштаба xsize и ysize должны делиться на 2^scale.
- Байт данных по смещению a должен быть 0/1 и
определяет принадлежность окну квадрата со стороной 2^scale
(при scale=0 получаем пиксель) и координатами левого верхнего угла
(a mod (xsize shr scale), a div (xsize shr scale))
- Размер данных: (xsize shr scale)*(ysize shr scale).
- Данные должны присутствовать в памяти и не меняться
после установки формы.
- Система просматривает данные о форме при каждой перерисовке окна
функцией 0.
- Вызов подфункции 0 с нулевым указателем приводит к возврату
к прямоугольной форме.