Back to main

 

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)