home *** CD-ROM | disk | FTP | other *** search
- <!-- manual page source format generated by PolyglotMan v3.0.8+X.Org, -->
- <!-- available at http://polyglotman.sourceforge.net/ -->
-
- <html>
- <head>
- <title>"SDL_CreateCursor"("3") manual page</title>
- </head>
- <body bgcolor='#efefef' text='black' link='blue' vlink='#551A8B' alink='red'>
- <a href='#toc'>Table of Contents</a><p>
-
- <h2><a name='sect0' href='#toc0'>Name</a></h2>
- SDL_CreateCursor- Creates a new mouse cursor.
- <h2><a name='sect1' href='#toc1'>Synopsis</a></h2>
- <p>
- <b>#include "SDL.h"
- <p>
- </b><b>SDL_Cursor *<b>SDL_CreateCursor</b></b>(<b>Uint8 *data, Uint8 *mask, int w, int h, int
- hot_x, int hot_y</b>);
- <h2><a name='sect2' href='#toc2'>Description</a></h2>
- <p>
- Create a cursor using the specified <b>data</b>
- and <b>mask</b> (in MSB format). The cursor width must be a multiple of 8 bits.
- <p>
- The cursor is created in black and white according to the following:
- <dl>
-
- <dt><b>Data
- / Mask</b> </dt>
- <dd><b>Resulting pixel on screen</b> </dd>
-
- <dt>0 / 1 </dt>
- <dd>White </dd>
-
- <dt>1 / 1 </dt>
- <dd>Black </dd>
-
- <dt>0 / 0 </dt>
- <dd>Transparent
- </dd>
-
- <dt>1 / 0 </dt>
- <dd>Inverted color if possible, black if not. </dd>
- </dl>
- <p>
- Cursors created with this
- function must be freed with <i>SDL_FreeCursor</i>.
- <h2><a name='sect3' href='#toc3'>Example</a></h2>
- <p>
- <br>
- <pre>CW/* Stolen from the mailing list */
- /* Creates a new mouse cursor from an XPM */
- /* XPM */
- static const char *arrow[] = {
- /* width height num_colors chars_per_pixel */
- " 32 32 3 1",
- /* colors */
- "X c #000000",
- ". c #ffffff",
- " c None",
- /* pixels */
- "X ",
- "XX ",
- "X.X ",
- "X..X ",
- "X...X ",
- "X....X ",
- "X.....X ",
- "X......X ",
- "X.......X ",
- "X........X ",
- "X.....XXXXX ",
- "X..X..X ",
- "X.X X..X ",
- "XX X..X ",
- "X X..X ",
- " X..X ",
- " X..X ",
- " X..X ",
- " XX ",
- " ",
- " ",
- " ",
- " ",
- " ",
- " ",
- " ",
- " ",
- " ",
- " ",
- " ",
- " ",
- " ",
- "0,0"
- };
- static SDL_Cursor *init_system_cursor(const char *image[])
- {
- int i, row, col;
- Uint8 data[4*32];
- Uint8 mask[4*32];
- int hot_x, hot_y;
- i = -1;
- for ( row=0; row<32; ++row ) {
- for ( col=0; col<32; ++col ) {
- if ( col % 8 ) {
- data[i] <<= 1;
- mask[i] <<= 1;
- } else {
- ++i;
- data[i] = mask[i] = 0;
- }
- switch (image[4+row][col]) {
- case 'X':
- data[i] |= 0x01;
- k[i] |= 0x01;
- break;
- case '.':
- mask[i] |= 0x01;
- break;
- case ' ':
- break;
- }
- }
- }
- sscanf(image[4+row], "%d,%d", &hot_x, &hot_y);
- return SDL_CreateCursor(data, mask, 32, 32, hot_x, hot_y);
- }
- </pre><p>
-
- <h2><a name='sect4' href='#toc4'>See Also</a></h2>
- <p>
- <i><b>SDL_FreeCursor</b></i>, <i><b>SDL_SetCursor</b></i>, <i><b>SDL_ShowCursor</b></i>
- <!--
-
- <p>
-
- <hr><p>
- <a name='toc'><b>Table of Contents</b></a><p>
- <ul>
- <li><a name='toc0' href='#sect0'>Name</a></li>
- <li><a name='toc1' href='#sect1'>Synopsis</a></li>
- <li><a name='toc2' href='#sect2'>Description</a></li>
- <li><a name='toc3' href='#sect3'>Example</a></li>
- <li><a name='toc4' href='#sect4'>See Also</a></li>
- </ul>
- </body>
- </html>
-