SysFn15/ru

From KolibriOS wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Функция 15 - работа с фоновой графикой


Подфункция 1 - установить размер фонового изображения.

Параметры:

  • eax = 15 - номер функции
  • ebx = 1 - номер подфункции
  • ecx = ширина изображения
  • edx = высота изображения

Возвращаемое значение:

  • функция не возвращает значения

Замечания:

  • Вызов функции обязателен перед вызовом подфункций 2 и 5.
  • Для обновления экрана (после завершения серии команд, работающих с
фоном) вызывайте подфункцию 3 перерисовки фона.
  • Есть парная функция получения размеров фонового изображения -
подфункция 1 функции 39.

Константы для регистров:

eax - SF_BACKGROUND_SET (15)
ebx - SSF_SIZE_BG (1)

Подфункция 2 - поставить точку на фоновом изображении.

Параметры:

  • eax = 15 - номер функции
  • ebx = 2 - номер подфункции
  • ecx = смещение
  • edx = цвет точки 0xRRGGBB

Возвращаемое значение:

  • функция не возвращает значения

Замечания:

  • Смещение для точки с координатами (x,y) вычисляется как
(x+y*xsize)*3.
  • Если указанное смещение превышает установленный подфункцией 1
размер, вызов игнорируется.
  • Для обновления экрана (после завершения серии команд, работающих с
фоном) вызывайте подфункцию 3 перерисовки фона.
  • Есть парная функция получения точки с фонового изображения -
подфункция 2 функции 39.

Константы для регистров:

eax - SF_BACKGROUND_SET (15)
ebx - SSF_PIXEL_BG (2)

Подфункция 3 - перерисовать фон.

Параметры:

  • eax = 15 - номер функции
  • ebx = 3 - номер подфункции

Возвращаемое значение:

  • функция не возвращает значения

Константы для регистров:

eax - SF_BACKGROUND_SET (15)
ebx - SSF_REDRAW_BG (3)

Подфункция 4 - установить режим отрисовки фона.

Параметры:

  • eax = 15 - номер функции
  • ebx = 4 - номер подфункции
  • ecx = режим отрисовки:
  • 1 = замостить
  • 2 = растянуть

Возвращаемое значение:

  • функция не возвращает значения

Замечания:

  • Для обновления экрана (после завершения серии команд, работающих с
фоном) вызывайте подфункцию 3 перерисовки фона.
  • Есть парная команда получения режима отрисовки фона -
подфункция 4 функции 39.

Константы для регистров:

eax - SF_BACKGROUND_SET (15)
ebx - SSF_MODE_BG (4)

Подфункция 5 - поместить блок пикселей на фон.

Параметры:

  • eax = 15 - номер функции
  • ebx = 5 - номер подфункции
  • ecx = указатель на данные в формате BBGGRRBBGGRR...
  • edx = смещение в данных фонового изображения
  • esi = размер данных в байтах = 3 * число пикселей

Возвращаемое значение:

  • функция не возвращает значения

Замечания:

  • Проверки корректности смещения и размера не производится.
  • Цвет каждого пикселя хранится как 3-байтная величина BBGGRR.
  • Пиксели фонового изображения записываются последовательно
слева направо, сверху вниз.
  • Смещение пикселя с координатами (x,y) есть (x+y*xsize)*3.
  • Для обновления экрана (после завершения серии команд, работающих с
фоном) вызывайте подфункцию 3 перерисовки фона.

Константы для регистров:

eax - SF_BACKGROUND_SET (15)
ebx - SSF_IMAGE_BG (5)

Подфункция 6 - спроецировать данные фона на адресное пространство процесса.

Параметры:

  • eax = 15 - номер функции
  • ebx = 6 - номер подфункции

Возвращаемое значение:

  • eax = указатель на данные фона, 0 при ошибке

Замечания:

  • Спроецированные данные доступны на чтение и запись.
  • Размер данных фона равен 3*xsize*ysize. Изменение размеров фона
блокируется на время работы с спроецированными данными.
  • Цвет каждого пикселя хранится как 3-байтовая величина BBGGRR.
  • Пиксели фонового изображения записываются последовательно
слева направо, сверху вниз.

Константы для регистров:

eax - SF_BACKGROUND_SET (15)
ebx - SSF_MAP_BG (6)

Подфункция 7 - закрыть проекцию данных фона на адресное пространство процесса.

Параметры:

  • eax = 15 - номер функции
  • ebx = 7 - номер подфункции
  • ecx = указатель на данные фона

Возвращаемое значение:

  • eax = 1 при успехе, 0 при ошибке

Константы для регистров:

eax - SF_BACKGROUND_SET (15)
ebx - SSF_UNMAP_BG (7)

Подфункция 8 - получить координаты последней отрисовки фона.

Параметры:

  • eax = 15 - номер функции
  • ebx = 8 - номер подфункции

Возвращаемое значение:

  • eax = [left]*65536 + [right]
  • ebx = [top]*65536 + [bottom]

Замечания:

  • (left,top) - координаты левого верхнего угла,
(right,bottom) - координаты правого нижнего.
  • Для получения более достоверных сведений, необходимо вызвать
функцию сразу после получения события:
5 = завершилась перерисовка фона рабочего стола

Константы для регистров:

eax - SF_BACKGROUND_SET (15)
ebx - SSF_LAST_DRAW (8)

Подфункция 9 - перерисовать прямоугольную часть фона.

Параметры:

  • eax = 15 - номер функции
  • ebx = 9 - номер подфункции
  • ecx = [left]*65536 + [right]
  • edx = [top]*65536 + [bottom]

Возвращаемое значение:

  • функция не возвращает значения

Замечания:

  • (left,top) - координаты левого верхнего угла,
(right,bottom) - координаты правого нижнего.
  • Если параметры установлены некорректно - фон не перерисовывается.

Константы для регистров:

eax - SF_BACKGROUND_SET (15)
ebx - SSF_REDRAW_RECT (9)