comparison docs/man3/SDL_CreateCursor.3 @ 0:74212992fb08

Initial revision
author Sam Lantinga <slouken@lokigames.com>
date Thu, 26 Apr 2001 16:45:43 +0000
parents
children 55f1f1b3e27d
comparison
equal deleted inserted replaced
-1:000000000000 0:74212992fb08
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