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