Difference between revisions of "SysFn15/ru"

From KolibriOS wiki
Jump to navigation Jump to search
m (table added)
 
(3 intermediate revisions by 2 users not shown)
Line 5: Line 5:
  
 
Параметры:
 
Параметры:
* eax = 15 - номер функции
+
:* eax = 15 - номер функции
* ebx = 1 - номер подфункции
+
:* ebx = 1 - номер подфункции
* ecx = ширина изображения
+
:* ecx = ширина изображения
* edx = высота изображения
+
:* edx = высота изображения
 
Возвращаемое значение:
 
Возвращаемое значение:
* функция не возвращает значения
+
:* функция не возвращает значения
 
Замечания:
 
Замечания:
* Вызов функции обязателен перед вызовом подфункций 2 и 5.
+
:* Вызов функции обязателен перед вызовом подфункций 2 и 5.
* Для обновления экрана (после завершения серии команд, работающих c фоном) вызывайте подфункцию 3 перерисовки фона.
+
:* Для обновления экрана (после завершения серии команд, работающих с
* Есть парная функция получения размеров фонового изображения - подфункция 1 функции 39.
+
::фоном) вызывайте подфункцию 3 перерисовки фона.
 +
:* Есть парная функция получения размеров фонового изображения -
 +
::подфункция 1 [[SysFn39/ru|функции 39]].
 +
 
 +
'''Константы для регистров:'''
 +
::eax - SF_BACKGROUND_SET (15)
 +
::ebx - SSF_SIZE_BG (1)
  
 
=== Подфункция 2 - поставить точку на фоновом изображении. ===
 
=== Подфункция 2 - поставить точку на фоновом изображении. ===
 
 
Параметры:
 
Параметры:
* eax = 15 - номер функции
+
:* eax = 15 - номер функции
* ebx = 2 - номер подфункции
+
:* ebx = 2 - номер подфункции
* ecx = смещение
+
:* ecx = смещение
* edx = цвет точки 0xRRGGBB
+
:* edx = цвет точки 0xRRGGBB
 
Возвращаемое значение:
 
Возвращаемое значение:
* функция не возвращает значения
+
:* функция не возвращает значения
 
Замечания:
 
Замечания:
* Смещение для точки с координатами (x,y) вычисляется как (x+y*Xsize)*3.
+
:* Смещение для точки с координатами (x,y) вычисляется как
* Если указанное смещение превышает установленный подфункцией 1 размер, вызов игнорируется.
+
::(x+y*xsize)*3.
* Для обновления экрана (после завершения серии команд, работающих с фоном) вызывайте подфункцию 3 перерисовки фона.
+
:* Если указанное смещение превышает установленный подфункцией 1
* Есть парная функция получения точки с фонового изображения - подфункция 2 функции 39.
+
::размер, вызов игнорируется.
 +
:* Для обновления экрана (после завершения серии команд, работающих с
 +
::фоном) вызывайте подфункцию 3 перерисовки фона.
 +
:* Есть парная функция получения точки с фонового изображения -
 +
::подфункция 2 [[SysFn39/ru|функции 39]].
 +
 
 +
'''Константы для регистров:'''
 +
::eax - SF_BACKGROUND_SET (15)
 +
::ebx - SSF_PIXEL_BG (2)
  
 
=== Подфункция 3 - перерисовать фон. ===
 
=== Подфункция 3 - перерисовать фон. ===
 
 
Параметры:
 
Параметры:
* eax = 15 - номер функции
+
:* eax = 15 - номер функции
* ebx = 3 - номер подфункции
+
:* ebx = 3 - номер подфункции
 +
Возвращаемое значение:
 +
:* функция не возвращает значения
  
Возвращаемое значение:
+
'''Константы для регистров:'''
* функция не возвращает значения
+
::eax - SF_BACKGROUND_SET (15)
 +
::ebx - SSF_REDRAW_BG (3)
  
 
=== Подфункция 4 - установить режим отрисовки фона. ===
 
=== Подфункция 4 - установить режим отрисовки фона. ===
  
 
Параметры:
 
Параметры:
* eax = 15 - номер функции
+
:* eax = 15 - номер функции
* ebx = 4 - номер подфункции
+
:* ebx = 4 - номер подфункции
* ecx = режим отрисовки:
+
:* ecx = режим отрисовки:
** 1 = замостить
+
::* 1 = замостить
** 2 = растянуть
+
::* 2 = растянуть
 
Возвращаемое значение:
 
Возвращаемое значение:
* функция не возвращает значения
+
:* функция не возвращает значения
 
Замечания:
 
Замечания:
* Для обновления экрана (после завершения серии команд, работающих с фоном) вызывайте подфункцию 3 перерисовки фона.
+
:* Для обновления экрана (после завершения серии команд, работающих с
* Есть парная команда получения режима отрисовки фона - подфункция 4 функции 39.
+
::фоном) вызывайте подфункцию 3 перерисовки фона.
 +
:* Есть парная команда получения режима отрисовки фона -
 +
::подфункция 4 [[SysFn39/ru|функции 39]].
 +
'''Константы для регистров:'''
 +
::eax - SF_BACKGROUND_SET (15)
 +
::ebx - SSF_MODE_BG (4)
  
 
=== Подфункция 5 - поместить блок пикселей на фон. ===
 
=== Подфункция 5 - поместить блок пикселей на фон. ===
  
 
Параметры:
 
Параметры:
* eax = 15 - номер функции
+
:* eax = 15 - номер функции
* ebx = 5 - номер подфункции
+
:* ebx = 5 - номер подфункции
* ecx = указатель на данные в формате BBGGRRBBGGRR...
+
:* ecx = указатель на данные в формате BBGGRRBBGGRR...
* edx = смещение в данных фонового изображения
+
:* edx = смещение в данных фонового изображения
* esi = размер данных в байтах = 3 * число пикселей
+
:* esi = размер данных в байтах = 3 * число пикселей
 
 
 
Возвращаемое значение:
 
Возвращаемое значение:
* функция не возвращает значения
+
:* функция не возвращает значения
 +
Замечания:
 +
:* Проверки корректности смещения и размера не производится.
 +
:* Цвет каждого пикселя хранится как 3-байтная величина BBGGRR.
 +
:* Пиксели фонового изображения записываются последовательно
 +
::слева направо, сверху вниз.
 +
:* Смещение пикселя с координатами (x,y) есть (x+y*xsize)*3.
 +
:* Для обновления экрана (после завершения серии команд, работающих с
 +
::фоном) вызывайте подфункцию 3 перерисовки фона.
  
Замечания:
+
'''Константы для регистров:'''
* Проверки корректности смещения и размера не производится.
+
::eax - SF_BACKGROUND_SET (15)
* Цвет каждого пикселя хранится как 3-байтная величина BBGGRR.
+
::ebx - SSF_IMAGE_BG (5)
* Пиксели фонового изображения записываются последовательно слева направо, сверху вниз.
 
* Смещение пикселя с координатами (x,y) есть (x+y*Xsize)*3.
 
* Для обновления экрана (после завершения серии команд, работающих с фоном) вызывайте подфункцию 3 перерисовки фона.
 
  
 
=== Подфункция 6 - спроецировать данные фона на адресное пространство процесса.===
 
=== Подфункция 6 - спроецировать данные фона на адресное пространство процесса.===
  
 
Параметры:
 
Параметры:
* eax = 15 - номер функции
+
:* eax = 15 - номер функции
* ebx = 6 - номер подфункции
+
:* 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 = указатель на данные фона, 0 при ошибке
+
:* 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) - координаты левого верхнего угла,
* Размер данных фона равен 3*xsize*ysize. Изменение размеров фона блокируется на время работы с спроецированными данными.
+
::(right,bottom) - координаты правого нижнего.
* Цвет каждого пикселя хранится как 3-байтовая величина BBGGRR.
+
:* Для получения более достоверных сведений, необходимо вызвать
* Пиксели фонового изображения записываются последовательно слева направо, сверху вниз.
+
::функцию сразу после получения события:
 +
:::::: 5 = завершилась перерисовка фона рабочего стола
 +
 
 +
'''Константы для регистров:'''
 +
::eax - SF_BACKGROUND_SET (15)
 +
::ebx - SSF_LAST_DRAW (8)
  
=== Подфункция 7 - закрыть проекцию данных фона на адресное пространство процесса. ===
+
=== Подфункция 9 - перерисовать прямоугольную часть фона. ===
  
 
Параметры:
 
Параметры:
* eax = 15 - номер функции
+
:* eax = 15 - номер функции
* ebx = 7 - номер подфункции
+
:* ebx = 9 - номер подфункции
* ecx = указатель на данные фона
+
:* ecx = [left]*65536 + [right]
 
+
:* edx = [top]*65536 + [bottom]
 
Возвращаемое значение:
 
Возвращаемое значение:
* eax = 1 при успехе, 0 при ошибке
+
:* функция не возвращает значения
 +
Замечания:
 +
:* (left,top) - координаты левого верхнего угла,
 +
::(right,bottom) - координаты правого нижнего.
 +
:* Если параметры установлены некорректно - фон не перерисовывается.
  
 +
'''Константы для регистров:'''
 +
::eax - SF_BACKGROUND_SET (15)
 +
::ebx - SSF_REDRAW_RECT (9)
  
 +
{{System_functions}}
 
[[Category: SysCalls]]
 
[[Category: SysCalls]]
{{System_functions}}
 

Latest revision as of 17:55, 12 January 2016

Функция 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)