| 1 | .TH "SDL_CreateCursor" "3" "Tue 11 Sep 2001, 23:01" "SDL" "SDL API Reference" |
| 2 | .SH "NAME" |
| 3 | SDL_CreateCursor \- Creates a new mouse cursor\&. |
| 4 | .SH "SYNOPSIS" |
| 5 | .PP |
| 6 | \fB#include "SDL\&.h" |
| 7 | .sp |
| 8 | \fBSDL_Cursor *\fBSDL_CreateCursor\fP\fR(\fBUint8 *data, Uint8 *mask, int w, int h, int hot_x, int hot_y\fR); |
| 9 | .SH "DESCRIPTION" |
| 10 | .PP |
| 11 | Create a cursor using the specified \fBdata\fR and \fBmask\fR (in MSB format)\&. The cursor width must be a multiple of 8 bits\&. |
| 12 | .PP |
| 13 | The cursor is created in black and white according to the following: |
| 14 | .TP 20 |
| 15 | \fBData / Mask\fR |
| 16 | \fBResulting pixel on screen\fR |
| 17 | .TP 20 |
| 18 | 0 / 1 |
| 19 | White |
| 20 | .TP 20 |
| 21 | 1 / 1 |
| 22 | Black |
| 23 | .TP 20 |
| 24 | 0 / 0 |
| 25 | Transparent |
| 26 | .TP 20 |
| 27 | 1 / 0 |
| 28 | Inverted color if possible, black if not\&. |
| 29 | .PP |
| 30 | Cursors created with this function must be freed with \fISDL_FreeCursor\fR\&. |
| 31 | .SH "EXAMPLE" |
| 32 | .PP |
| 33 | .nf |
| 34 | \f(CW/* Stolen from the mailing list */ |
| 35 | /* Creates a new mouse cursor from an XPM */ |
| 36 | |
| 37 | |
| 38 | /* XPM */ |
| 39 | static const char *arrow[] = { |
| 40 | /* width height num_colors chars_per_pixel */ |
| 41 | " 32 32 3 1", |
| 42 | /* colors */ |
| 43 | "X c #000000", |
| 44 | "\&. c #ffffff", |
| 45 | " c None", |
| 46 | /* pixels */ |
| 47 | "X ", |
| 48 | "XX ", |
| 49 | "X\&.X ", |
| 50 | "X\&.\&.X ", |
| 51 | "X\&.\&.\&.X ", |
| 52 | "X\&.\&.\&.\&.X ", |
| 53 | "X\&.\&.\&.\&.\&.X ", |
| 54 | "X\&.\&.\&.\&.\&.\&.X ", |
| 55 | "X\&.\&.\&.\&.\&.\&.\&.X ", |
| 56 | "X\&.\&.\&.\&.\&.\&.\&.\&.X ", |
| 57 | "X\&.\&.\&.\&.\&.XXXXX ", |
| 58 | "X\&.\&.X\&.\&.X ", |
| 59 | "X\&.X X\&.\&.X ", |
| 60 | "XX X\&.\&.X ", |
| 61 | "X X\&.\&.X ", |
| 62 | " X\&.\&.X ", |
| 63 | " X\&.\&.X ", |
| 64 | " X\&.\&.X ", |
| 65 | " XX ", |
| 66 | " ", |
| 67 | " ", |
| 68 | " ", |
| 69 | " ", |
| 70 | " ", |
| 71 | " ", |
| 72 | " ", |
| 73 | " ", |
| 74 | " ", |
| 75 | " ", |
| 76 | " ", |
| 77 | " ", |
| 78 | " ", |
| 79 | "0,0" |
| 80 | }; |
| 81 | |
| 82 | static SDL_Cursor *init_system_cursor(const char *image[]) |
| 83 | { |
| 84 | int i, row, col; |
| 85 | Uint8 data[4*32]; |
| 86 | Uint8 mask[4*32]; |
| 87 | int hot_x, hot_y; |
| 88 | |
| 89 | i = -1; |
| 90 | for ( row=0; row<32; ++row ) { |
| 91 | for ( col=0; col<32; ++col ) { |
| 92 | if ( col % 8 ) { |
| 93 | data[i] <<= 1; |
| 94 | mask[i] <<= 1; |
| 95 | } else { |
| 96 | ++i; |
| 97 | data[i] = mask[i] = 0; |
| 98 | } |
| 99 | switch (image[4+row][col]) { |
| 100 | case \&'X\&': |
| 101 | data[i] |= 0x01; |
| 102 | k[i] |= 0x01; |
| 103 | break; |
| 104 | case \&'\&.\&': |
| 105 | mask[i] |= 0x01; |
| 106 | break; |
| 107 | case \&' \&': |
| 108 | break; |
| 109 | } |
| 110 | } |
| 111 | } |
| 112 | sscanf(image[4+row], "%d,%d", &hot_x, &hot_y); |
| 113 | return SDL_CreateCursor(data, mask, 32, 32, hot_x, hot_y); |
| 114 | }\fR |
| 115 | .fi |
| 116 | .PP |
| 117 | .SH "SEE ALSO" |
| 118 | .PP |
| 119 | \fI\fBSDL_FreeCursor\fP\fR, \fI\fBSDL_SetCursor\fP\fR, \fI\fBSDL_ShowCursor\fP\fR |
| 120 | .\" created by instant / docbook-to-man, Tue 11 Sep 2001, 23:01 |