Difference between revisions of "SysFn15/ru"
Jump to navigation
Jump to search
m |
|||
(2 intermediate revisions by one other user not shown) | |||
Line 5: | Line 5: | ||
Параметры: | Параметры: | ||
− | * eax = 15 - номер функции | + | :* eax = 15 - номер функции |
− | * ebx = 1 - номер подфункции | + | :* ebx = 1 - номер подфункции |
− | * ecx = ширина изображения | + | :* ecx = ширина изображения |
− | * edx = высота изображения | + | :* edx = высота изображения |
Возвращаемое значение: | Возвращаемое значение: | ||
− | * функция не возвращает значения | + | :* функция не возвращает значения |
Замечания: | Замечания: | ||
− | * Вызов функции обязателен перед вызовом подфункций 2 и 5. | + | :* Вызов функции обязателен перед вызовом подфункций 2 и 5. |
− | * Для обновления экрана (после завершения серии команд, работающих | + | :* Для обновления экрана (после завершения серии команд, работающих с |
− | * Есть парная функция получения размеров фонового изображения - подфункция 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* | + | :* Смещение для точки с координатами (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 = замостить | |
− | + | ::* 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) | |
− | + | ::ebx - SSF_IMAGE_BG (5) | |
− | |||
− | |||
− | |||
=== Подфункция 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 = | + | :* 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 - номер функции | + | :* eax = 15 - номер функции |
− | * ebx = | + | :* ebx = 9 - номер подфункции |
− | * ecx = | + | :* ecx = [left]*65536 + [right] |
− | + | :* edx = [top]*65536 + [bottom] | |
Возвращаемое значение: | Возвращаемое значение: | ||
− | * | + | :* функция не возвращает значения |
+ | Замечания: | ||
+ | :* (left,top) - координаты левого верхнего угла, | ||
+ | ::(right,bottom) - координаты правого нижнего. | ||
+ | :* Если параметры установлены некорректно - фон не перерисовывается. | ||
+ | '''Константы для регистров:''' | ||
+ | ::eax - SF_BACKGROUND_SET (15) | ||
+ | ::ebx - SSF_REDRAW_RECT (9) | ||
{{System_functions}} | {{System_functions}} | ||
[[Category: SysCalls]] | [[Category: SysCalls]] |
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)
|