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