Difference between revisions of "SysFn15/ru"

From KolibriOS wiki
Jump to navigation Jump to search
(Created page with ''''Функция 15''' - ---- === Подфункция 1 - установить размер фонового изображения. === Параметры: * eax = 15 - н...')
 
m
Line 1: Line 1:
'''Функция 15''' -  
+
'''Функция 15''' - работа с фоновой графикой
  
 
----
 
----
Line 19: Line 19:
  
 
Параметры:
 
Параметры:
  * eax = 15 - номер функции
+
* eax = 15 - номер функции
  * ebx = 2 - номер подфункции
+
* ebx = 2 - номер подфункции
  * ecx = смещение
+
* ecx = смещение
  * edx = цвет точки 0xRRGGBB
+
* edx = цвет точки 0xRRGGBB
 
Возвращаемое значение:
 
Возвращаемое значение:
  * функция не возвращает значения
+
* функция не возвращает значения
 
Замечания:
 
Замечания:
  * Смещение для точки с координатами (x,y) вычисляется как
+
* Смещение для точки с координатами (x,y) вычисляется как (x+y*Xsize)*3.
    (x+y*xsize)*3.
+
* Если указанное смещение превышает установленный подфункцией 1 размер, вызов игнорируется.
  * Если указанное смещение превышает установленный подфункцией 1
+
* Для обновления экрана (после завершения серии команд, работающих с фоном) вызывайте подфункцию 3 перерисовки фона.
    размер, вызов игнорируется.
+
* Есть парная функция получения точки с фонового изображения - подфункция 2 функции 39.
  * Для обновления экрана (после завершения серии команд, работающих с
 
    фоном) вызывайте подфункцию 3 перерисовки фона.
 
  * Есть парная функция получения точки с фонового изображения -
 
    подфункция 2 функции 39.
 
 
 
  
 
=== Подфункция 3 - перерисовать фон. ===
 
=== Подфункция 3 - перерисовать фон. ===
  
 
Параметры:
 
Параметры:
  * eax = 15 - номер функции
+
* eax = 15 - номер функции
  * ebx = 3 - номер подфункции
+
* ebx = 3 - номер подфункции
 +
 
 
Возвращаемое значение:
 
Возвращаемое значение:
  * функция не возвращает значения
+
* функция не возвращает значения
 
 
  
 
=== Подфункция 4 - установить режим отрисовки фона. ===
 
=== Подфункция 4 - установить режим отрисовки фона. ===
  
 
Параметры:
 
Параметры:
  * eax = 15 - номер функции
+
* eax = 15 - номер функции
  * ebx = 4 - номер подфункции
+
* ebx = 4 - номер подфункции
  * ecx = режим отрисовки:
+
* ecx = режим отрисовки:
    * 1 = замостить
+
** 1 = замостить
    * 2 = растянуть
+
** 2 = растянуть
 
Возвращаемое значение:
 
Возвращаемое значение:
  * функция не возвращает значения
+
* функция не возвращает значения
 
Замечания:
 
Замечания:
  * Для обновления экрана (после завершения серии команд, работающих с
+
* Для обновления экрана (после завершения серии команд, работающих с фоном) вызывайте подфункцию 3 перерисовки фона.
    фоном) вызывайте подфункцию 3 перерисовки фона.
+
* Есть парная команда получения режима отрисовки фона - подфункция 4 функции 39.
  * Есть парная команда получения режима отрисовки фона -
 
    подфункция 4 функции 39.
 
 
 
  
 
=== Подфункция 5 - поместить блок пикселей на фон. ===
 
=== Подфункция 5 - поместить блок пикселей на фон. ===
  
 
Параметры:
 
Параметры:
  * eax = 15 - номер функции
+
* eax = 15 - номер функции
  * ebx = 5 - номер подфункции
+
* ebx = 5 - номер подфункции
  * ecx = указатель на данные в формате BBGGRRBBGGRR...
+
* ecx = указатель на данные в формате BBGGRRBBGGRR...
  * edx = смещение в данных фонового изображения
+
* edx = смещение в данных фонового изображения
  * esi = размер данных в байтах = 3 * число пикселей
+
* esi = размер данных в байтах = 3 * число пикселей
 +
 
 
Возвращаемое значение:
 
Возвращаемое значение:
  * функция не возвращает значения
+
* функция не возвращает значения
 +
 
 
Замечания:
 
Замечания:
  * Проверки корректности смещения и размера не производится.
+
* Проверки корректности смещения и размера не производится.
  * Цвет каждого пикселя хранится как 3-байтная величина BBGGRR.
+
* Цвет каждого пикселя хранится как 3-байтная величина BBGGRR.
  * Пиксели фонового изображения записываются последовательно
+
* Пиксели фонового изображения записываются последовательно слева направо, сверху вниз.
    слева направо, сверху вниз.
+
* Смещение пикселя с координатами (x,y) есть (x+y*Xsize)*3.
  * Смещение пикселя с координатами (x,y) есть (x+y*xsize)*3.
+
* Для обновления экрана (после завершения серии команд, работающих с фоном) вызывайте подфункцию 3 перерисовки фона.
  * Для обновления экрана (после завершения серии команд, работающих с
 
    фоном) вызывайте подфункцию 3 перерисовки фона.
 
 
 
  
 
=== Подфункция 6 - спроецировать данные фона на адресное пространство процесса.===
 
=== Подфункция 6 - спроецировать данные фона на адресное пространство процесса.===
  
 
Параметры:
 
Параметры:
  * eax = 15 - номер функции
+
* eax = 15 - номер функции
  * ebx = 6 - номер подфункции
+
* ebx = 6 - номер подфункции
 +
 
 
Возвращаемое значение:
 
Возвращаемое значение:
  * eax = указатель на данные фона, 0 при ошибке
+
* eax = указатель на данные фона, 0 при ошибке
 +
 
 
Замечания:
 
Замечания:
  * Спроецированные данные доступны на чтение и запись.
+
* Спроецированные данные доступны на чтение и запись.
  * Размер данных фона равен 3*xsize*ysize. Изменение размеров фона
+
* Размер данных фона равен 3*xsize*ysize. Изменение размеров фона блокируется на время работы с спроецированными данными.
    блокируется на время работы с спроецированными данными.
+
* Цвет каждого пикселя хранится как 3-байтовая величина BBGGRR.
  * Цвет каждого пикселя хранится как 3-байтовая величина BBGGRR.
+
* Пиксели фонового изображения записываются последовательно слева направо, сверху вниз.
  * Пиксели фонового изображения записываются последовательно
 
    слева направо, сверху вниз.
 
 
 
  
 
=== Подфункция 7 - закрыть проекцию данных фона на адресное пространство процесса. ===
 
=== Подфункция 7 - закрыть проекцию данных фона на адресное пространство процесса. ===
  
 
Параметры:
 
Параметры:
  * eax = 15 - номер функции
+
* eax = 15 - номер функции
  * ebx = 7 - номер подфункции
+
* ebx = 7 - номер подфункции
  * ecx = указатель на данные фона
+
* ecx = указатель на данные фона
 +
 
 
Возвращаемое значение:
 
Возвращаемое значение:
  * eax = 1 при успехе, 0 при ошибке
+
* eax = 1 при успехе, 0 при ошибке

Revision as of 15:51, 2 April 2010

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


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

Параметры:

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

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

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

Замечания:

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

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

Параметры:

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

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

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

Замечания:

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

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

Параметры:

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

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

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

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

Параметры:

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

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

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

Замечания:

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

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

Параметры:

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

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

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

Замечания:

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

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

Параметры:

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

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

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

Замечания:

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

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

Параметры:

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

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

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