home *** CD-ROM | disk | FTP | other *** search
- <HTML
- ><HEAD
- ><TITLE
- >SDL_CreateCursor</TITLE
- ><META
- NAME="GENERATOR"
- CONTENT="Modular DocBook HTML Stylesheet Version 1.64
- "><LINK
- REL="HOME"
- TITLE="SDL Library Documentation"
- HREF="index.html"><LINK
- REL="UP"
- TITLE="Video"
- HREF="video.html"><LINK
- REL="PREVIOUS"
- TITLE="SDL_WarpMouse"
- HREF="sdlwarpmouse.html"><LINK
- REL="NEXT"
- TITLE="SDL_FreeCursor"
- HREF="sdlfreecursor.html"></HEAD
- ><BODY
- CLASS="REFENTRY"
- BGCOLOR="#FFF8DC"
- TEXT="#000000"
- LINK="#0000ee"
- VLINK="#551a8b"
- ALINK="#ff0000"
- ><DIV
- CLASS="NAVHEADER"
- ><TABLE
- WIDTH="100%"
- BORDER="0"
- CELLPADDING="0"
- CELLSPACING="0"
- ><TR
- ><TH
- COLSPAN="3"
- ALIGN="center"
- >SDL Library Documentation</TH
- ></TR
- ><TR
- ><TD
- WIDTH="10%"
- ALIGN="left"
- VALIGN="bottom"
- ><A
- HREF="sdlwarpmouse.html"
- >Prev</A
- ></TD
- ><TD
- WIDTH="80%"
- ALIGN="center"
- VALIGN="bottom"
- ></TD
- ><TD
- WIDTH="10%"
- ALIGN="right"
- VALIGN="bottom"
- ><A
- HREF="sdlfreecursor.html"
- >Next</A
- ></TD
- ></TR
- ></TABLE
- ><HR
- ALIGN="LEFT"
- WIDTH="100%"></DIV
- ><H1
- ><A
- NAME="SDLCREATECURSOR"
- >SDL_CreateCursor</A
- ></H1
- ><DIV
- CLASS="REFNAMEDIV"
- ><A
- NAME="AEN2074"
- ></A
- ><H2
- >Name</H2
- >SDL_CreateCursor -- Creates a new mouse cursor.</DIV
- ><DIV
- CLASS="REFSYNOPSISDIV"
- ><A
- NAME="AEN2077"
- ></A
- ><H2
- >Synopsis</H2
- ><DIV
- CLASS="FUNCSYNOPSIS"
- ><A
- NAME="AEN2078"
- ></A
- ><P
- ></P
- ><PRE
- CLASS="FUNCSYNOPSISINFO"
- >#include "SDL.h"</PRE
- ><P
- ><CODE
- ><CODE
- CLASS="FUNCDEF"
- >SDL_Cursor *<B
- CLASS="FSFUNC"
- >SDL_CreateCursor</B
- ></CODE
- >(Uint8 *data, Uint8 *mask, int w, int h, int hot_x, int hot_y);</CODE
- ></P
- ><P
- ></P
- ></DIV
- ></DIV
- ><DIV
- CLASS="REFSECT1"
- ><A
- NAME="AEN2084"
- ></A
- ><H2
- >Description</H2
- ><P
- >Create a cursor using the specified <TT
- CLASS="PARAMETER"
- ><I
- >data</I
- ></TT
- > and <TT
- CLASS="PARAMETER"
- ><I
- >mask</I
- ></TT
- > (in MSB format).
- The cursor width must be a multiple of 8 bits.</P
- ><P
- >The cursor is created in black and white according to the following:
- <DIV
- CLASS="INFORMALTABLE"
- ><A
- NAME="AEN2090"
- ></A
- ><P
- ></P
- ><TABLE
- BORDER="1"
- CLASS="CALSTABLE"
- ><THEAD
- ><TR
- ><TH
- ALIGN="LEFT"
- VALIGN="TOP"
- >Data / Mask</TH
- ><TH
- ALIGN="LEFT"
- VALIGN="TOP"
- >Resulting pixel on screen</TH
- ></TR
- ></THEAD
- ><TBODY
- ><TR
- ><TD
- ALIGN="LEFT"
- VALIGN="TOP"
- >0 / 1</TD
- ><TD
- ALIGN="LEFT"
- VALIGN="TOP"
- >White</TD
- ></TR
- ><TR
- ><TD
- ALIGN="LEFT"
- VALIGN="TOP"
- >1 / 1</TD
- ><TD
- ALIGN="LEFT"
- VALIGN="TOP"
- >Black</TD
- ></TR
- ><TR
- ><TD
- ALIGN="LEFT"
- VALIGN="TOP"
- >0 / 0</TD
- ><TD
- ALIGN="LEFT"
- VALIGN="TOP"
- >Transparent</TD
- ></TR
- ><TR
- ><TD
- ALIGN="LEFT"
- VALIGN="TOP"
- >1 / 0</TD
- ><TD
- ALIGN="LEFT"
- VALIGN="TOP"
- >Inverted color if possible, black if not.</TD
- ></TR
- ></TBODY
- ></TABLE
- ><P
- ></P
- ></DIV
- ></P
- ><P
- >Cursors created with this function must be freed with
- <A
- HREF="sdlfreecursor.html"
- >SDL_FreeCursor</A
- >.</P
- ></DIV
- ><DIV
- CLASS="REFSECT1"
- ><A
- NAME="AEN2111"
- ></A
- ><H2
- >Example</H2
- ><PRE
- CLASS="PROGRAMLISTING"
- >/* 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
- ></DIV
- ><DIV
- CLASS="REFSECT1"
- ><A
- NAME="AEN2114"
- ></A
- ><H2
- >See Also</H2
- ><P
- ><A
- HREF="sdlfreecursor.html"
- ><TT
- CLASS="FUNCTION"
- >SDL_FreeCursor</TT
- ></A
- >,
- <A
- HREF="sdlsetcursor.html"
- ><TT
- CLASS="FUNCTION"
- >SDL_SetCursor</TT
- ></A
- >,
- <A
- HREF="sdlshowcursor.html"
- ><TT
- CLASS="FUNCTION"
- >SDL_ShowCursor</TT
- ></A
- ></P
- ></DIV
- ><DIV
- CLASS="NAVFOOTER"
- ><HR
- ALIGN="LEFT"
- WIDTH="100%"><TABLE
- WIDTH="100%"
- BORDER="0"
- CELLPADDING="0"
- CELLSPACING="0"
- ><TR
- ><TD
- WIDTH="33%"
- ALIGN="left"
- VALIGN="top"
- ><A
- HREF="sdlwarpmouse.html"
- >Prev</A
- ></TD
- ><TD
- WIDTH="34%"
- ALIGN="center"
- VALIGN="top"
- ><A
- HREF="index.html"
- >Home</A
- ></TD
- ><TD
- WIDTH="33%"
- ALIGN="right"
- VALIGN="top"
- ><A
- HREF="sdlfreecursor.html"
- >Next</A
- ></TD
- ></TR
- ><TR
- ><TD
- WIDTH="33%"
- ALIGN="left"
- VALIGN="top"
- >SDL_WarpMouse</TD
- ><TD
- WIDTH="34%"
- ALIGN="center"
- VALIGN="top"
- ><A
- HREF="video.html"
- >Up</A
- ></TD
- ><TD
- WIDTH="33%"
- ALIGN="right"
- VALIGN="top"
- >SDL_FreeCursor</TD
- ></TR
- ></TABLE
- ></DIV
- ></BODY
- ></HTML
- >