SDL2/docs/man3/SDL_CreateCursor.3
Sam Lantinga 8dd601989f Updated from the SDL Documentation Project
--HG--
extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%40182
2001-09-14 02:41:09 +00:00

121 lines
3.3 KiB
Groff

.TH "SDL_CreateCursor" "3" "Tue 11 Sep 2001, 23:01" "SDL" "SDL API Reference"
.SH "NAME"
SDL_CreateCursor\- Creates a new mouse cursor\&.
.SH "SYNOPSIS"
.PP
\fB#include "SDL\&.h"
.sp
\fBSDL_Cursor *\fBSDL_CreateCursor\fP\fR(\fBUint8 *data, Uint8 *mask, int w, int h, int hot_x, int hot_y\fR);
.SH "DESCRIPTION"
.PP
Create a cursor using the specified \fBdata\fR and \fBmask\fR (in MSB format)\&. The cursor width must be a multiple of 8 bits\&.
.PP
The cursor is created in black and white according to the following:
.TP 20
\fBData / Mask\fR
\fBResulting pixel on screen\fR
.TP 20
0 / 1
White
.TP 20
1 / 1
Black
.TP 20
0 / 0
Transparent
.TP 20
1 / 0
Inverted color if possible, black if not\&.
.PP
Cursors created with this function must be freed with \fISDL_FreeCursor\fR\&.
.SH "EXAMPLE"
.PP
.nf
\f(CW/* 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);
}\fR
.fi
.PP
.SH "SEE ALSO"
.PP
\fI\fBSDL_FreeCursor\fP\fR, \fI\fBSDL_SetCursor\fP\fR, \fI\fBSDL_ShowCursor\fP\fR
...\" created by instant / docbook-to-man, Tue 11 Sep 2001, 23:01