NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.64
REL="HOME"
TITLE="SDL Library Documentation"
REL="UP"
TITLE="Video"
REL="PREVIOUS"
TITLE="SDL_WarpMouse"
HREF="sdlwarpmouse.html"><
LINK
REL="NEXT"
TITLE="SDL_FreeCursor"
HREF="sdlfreecursor.html"><
/HEAD
CLASS="REFENTRY"
BGCOLOR="#FFF8DC"
TEXT="#000000"
LINK="#0000ee"
VLINK="#551a8b"
ALINK="#ff0000"
CLASS="NAVHEADER"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
COLSPAN="3"
ALIGN="center"
>SDL Library Documentation<
/TH
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
HREF="sdlwarpmouse.html"
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
HREF="sdlfreecursor.html"
ALIGN="LEFT"
NAME="SDLCREATECURSOR"
CLASS="REFNAMEDIV"
NAME="AEN2068"
>SDL_CreateCursor -- Creates a new mouse cursor.<
/DIV
CLASS="REFSYNOPSISDIV"
NAME="AEN2071"
CLASS="FUNCSYNOPSIS"
NAME="AEN2072"
CLASS="FUNCSYNOPSISINFO"
CLASS="FUNCDEF"
CLASS="FSFUNC"
>
(Uint8 *
data, Uint8 *mask, int w, int h, int hot_x, int hot_y
);<
/CODE
CLASS="REFSECT1"
NAME="AEN2078"
>Create a cursor using the specified <
TT
CLASS="PARAMETER"
CLASS="PARAMETER"
> (in MSB format).
The cursor
width must be a
multiple of
8 bits.<
/P
>The cursor is created in black and white according to the following:
CLASS="INFORMALTABLE"
NAME="AEN2084"
BORDER="1"
CLASS="CALSTABLE"
ALIGN="LEFT"
VALIGN="TOP"
ALIGN="LEFT"
VALIGN="TOP"
>Resulting pixel on screen<
/TH
ALIGN="LEFT"
VALIGN="TOP"
ALIGN="LEFT"
VALIGN="TOP"
ALIGN="LEFT"
VALIGN="TOP"
ALIGN="LEFT"
VALIGN="TOP"
ALIGN="LEFT"
VALIGN="TOP"
ALIGN="LEFT"
VALIGN="TOP"
ALIGN="LEFT"
VALIGN="TOP"
ALIGN="LEFT"
VALIGN="TOP"
>Inverted
color if possible, black if not.<
/TD
>Cursors created with this function must be freed with
HREF="sdlfreecursor.html"
CLASS="REFSECT1"
NAME="AEN2105"
CLASS="PROGRAMLISTING"
>/* Stolen from the mailing list */
/* Creates a new mouse cursor from an XPM */
/* XPM */
static const char *arrow[] = {
/* width height num_colors chars_per_pixel */
" 32 32 3 1",
/* colors */
"X c #000000",
". c #ffffff",
" c None",
/* pixels */
"X ",
"XX ",
"X.X ",
"X..X ",
"X...X ",
"X....X ",
"X.....X ",
"X......X ",
"X.......X ",
"X........X ",
"X.....XXXXX ",
"X..X..X ",
"X.X X..X ",
"XX X..X ",
"X X..X ",
" X..X ",
" X..X ",
" X..X ",
" XX ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
" ",
"0,0"
};
static SDL_Cursor *init_system_cursor(const char *image[])
{
int i, row, col;
Uint8 data[4*32];
Uint8 mask[4*32];
int hot_x, hot_y;
i = -1;
for ( row=0; row<32; ++row ) {
for ( col=0; col<32; ++col ) {
if ( col % 8 ) {
data[i] <<= 1;
mask[i] <<= 1;
} else {
++i;
data[i] = mask[i] = 0;
}
switch (image[4+row][col]) {
case 'X':
data[i] |= 0x01;
k[i] |= 0x01;
break;
case '.':
mask[i] |= 0x01;
break;
case ' ':
break;
}
}
}
sscanf(image[4+row], "%d,%d", &hot_x, &hot_y);
return SDL_CreateCursor(data, mask, 32, 32, hot_x, hot_y);
CLASS="REFSECT1"
NAME="AEN2108"
HREF="sdlfreecursor.html"
CLASS="FUNCTION"
>,
HREF="sdlsetcursor.html"
CLASS="FUNCTION"
>,
HREF="sdlshowcursor.html"
CLASS="FUNCTION"
CLASS="NAVFOOTER"
ALIGN="LEFT"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
WIDTH="33%"
ALIGN="left"
VALIGN="top"
HREF="sdlwarpmouse.html"
WIDTH="34%"
ALIGN="center"
VALIGN="top"
HREF="index.html"
WIDTH="33%"
ALIGN="right"
VALIGN="top"
HREF="sdlfreecursor.html"
WIDTH="33%"
ALIGN="left"
VALIGN="top"
WIDTH="34%"
ALIGN="center"
VALIGN="top"
HREF="video.html"
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>