docs/man3/SDL_CreateCursor.3
author Aaron Wishnick <schnarf@gmail.com>
Wed, 18 Jun 2008 04:51:10 +0000
branchgsoc2008_audio_resampling
changeset 2655 b8e736c8a5a8
parent 2283 546f7c1eb755
child 4311 1238da4a7112
permissions -rw-r--r--
Added beginnings of resampling code.
     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