SDL-1.2.14
[sdl_omap.git] / docs / man3 / SDL_CreateCursor.3
CommitLineData
e14743d1 1.TH "SDL_CreateCursor" "3" "Tue 11 Sep 2001, 23:01" "SDL" "SDL API Reference"
2.SH "NAME"
3SDL_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
11Create 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
13The 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
180 / 1
19White
20.TP 20
211 / 1
22Black
23.TP 20
240 / 0
25Transparent
26.TP 20
271 / 0
28Inverted color if possible, black if not\&.
29.PP
30Cursors 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 */
39static 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
82static 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