0
|
1 .TH "SDL_CreateCursor" "3" "Mon 12 Mar 2001, 01:04" "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, Mon 12 Mar 2001, 01:04
|