Initial bulk commit for "Git on MSys"
[msysgit/historical-msysgit.git] / mingw / man / man3 / SDL_CreateCursor.3
blobd212cd6771df8c0afbf1ceaebd5b786b8e2170f0
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 */
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"
82 static SDL_Cursor *init_system_cursor(const char *image[])
84   int i, row, col;
85   Uint8 data[4*32];
86   Uint8 mask[4*32];
87   int hot_x, hot_y;
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
117 .SH "SEE ALSO"
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