| .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 |