Function 15
and its sub-functions (1-9)
Subfunction 1 - set the size of the background image
Options:
* eax =
15 - function number
* ebx = 1
- number of subfunction
* ecx =
image width
* edx =
image height
Return value:
* function does not return value
Remarks:
* A function call is required before calling subfunctions 2 and 5.
* To update the screen (after completing a series of
commands working with the background), call the subfunction
3 background redrawing.
* There is a pair function to get the size of the background
image - subfunction 1
function 39
Constants for registers:
eax -
SF_BACKGROUND_SET (15)
ebx -
SSF_SIZE_BG (1)
Subfunction 2 - put a dot on the background image
Options:
* eax =
15 - function number
* ebx = 2
- subfunction number
* ecx =
offset
* edx =
point color 0xRRGGBB
Return value:
* function does not return value
Remarks:
* The offset for a point with coordinates (x, y) is
calculated as (x + y * xsize) * 3.
* If the specified offset exceeds the size set by subfunction 1, the call is ignored.
* To update the screen (after completing a series of
commands working with the background), call the subfunction
3 background redrawing.
* There is a pair function of receiving a point from the
background image - subfunction 2 of function 39.
Constants for registers:
eax -
SF_BACKGROUND_SET (15)
ebx -
SSF_PIXEL_BG (2)
Subfunction 3 - redraw the background
Options:
* eax =
15 - function number
* ebx = 3
- subfunction number
Return value:
* function does not return value
Constants for registers:
eax -
SF_BACKGROUND_SET (15)
ebx -
SSF_REDRAW_BG (3)
Subfunction 4 - set the background drawing mode
Options:
* eax =
15 - function number
* ebx = 4
- subfunction number
* ecx =
draw mode:
* 1 = tile
* 2 = stretch
Return value:
* function does not return value
Remarks:
* To update the screen (after completing a series of
commands working with the background), call the subfunction
3 background redrawing.
* There is a pair command to get the background rendering
mode - subfunction 4 functions 39.
Constants for registers:
eax -
SF_BACKGROUND_SET (15)
ebx -
SSF_MODE_BG (4)
Subfunction 5 - place a block of pixels on the background
Options:
* eax =
15 - function number
* ebx = 5
- subfunction number
* ecx =
pointer to BBGGRRBBGGRR data ...
* edx =
offset in the background image data
* esi =
data size in bytes = 3 * number of pixels
Return value:
* function does not return value
Remarks:
* Check the correctness of the offset and size is not
performed.
* The color of each pixel is stored as a 3-byte BBGGRR
value.
* Pixels of the background image are recorded sequentially
from left to right, top to bottom.
* Pixel offset with coordinates (x, y) is (x + y * xsize) * 3.
* To update the screen (after completing a series of
commands working with the background), call the subfunction
3 background redrawing.
Constants for registers:
eax -
SF_BACKGROUND_SET (15)
ebx -
SSF_IMAGE_BG (5)
Subfunction 6 - project the background data onto the process address space
Options:
* eax =
15 - function number
* ebx = 6
- subfunction number
Return value:
* eax =
pointer to background data, 0 on error
Remarks:
* The projected data is readable and writeable.
* The size of the background data is 3 * xsize
* ysize. Changing the size of the background is
blocked while working with the projected data.
* The color of each pixel is stored as a 3-byte BBGGRR
value.
* Pixels of the background image are recorded sequentially
from left to right, top to bottom.
Constants for registers:
eax -
SF_BACKGROUND_SET (15)
ebx -
SSF_MAP_BG (6)
Subfunction 7 - close the projection of the background data on the process address
space
Options:
* eax =
15 - function number
* ebx = 7
- subfunction number
* ecx =
pointer to background data
Return value:
* eax = 1
on success, 0 on error
Constants for registers:
eax -
SF_BACKGROUND_SET (15)
ebx -
SSF_UNMAP_BG (7)
Subfunction 8 - get the coordinates of the last background drawing
Options:
* eax =
15 - function number
* ebx = 8
- number of subfunction
Return value:
* eax =
[left] * 65536 + [right]
* ebx =
[top] * 65536 + [bottom]
Remarks:
* (left, top) - coordinates of the upper left corner,
(right, bottom) - coordinates of the lower right.
* To get more reliable information, you must call the
function immediately after receiving the event: 5 = desktop background
redrawing has completed
Constants for registers:
eax -
SF_BACKGROUND_SET (15)
ebx -
SSF_LAST_DRAW (8)
Subfunction 9 - redraw the rectangular part of the background
Options:
* eax =
15 - function number
* ebx = 9
- subfunction number
* ecx =
[left] * 65536 + [right]
* edx =
[top] * 65536 + [bottom]
Return value:
* function does not return value
Remarks:
* (left, top) - coordinates of the upper left corner,
(right, bottom) - coordinates of the lower right.
* If the parameters are set incorrectly - the background
does not redraw.
Constants for registers:
eax - SF_BACK
GROUND_SET (15)
ebx - SSF_REDRAW_RECT (9)