| <HTML |
| ><HEAD |
| ><TITLE |
| >SDL_CreateCursor</TITLE |
| ><META |
| NAME="GENERATOR" |
| CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+ |
| "><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 |
| SUMMARY="Header navigation 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" |
| ACCESSKEY="P" |
| >Prev</A |
| ></TD |
| ><TD |
| WIDTH="80%" |
| ALIGN="center" |
| VALIGN="bottom" |
| ></TD |
| ><TD |
| WIDTH="10%" |
| ALIGN="right" |
| VALIGN="bottom" |
| ><A |
| HREF="sdlfreecursor.html" |
| ACCESSKEY="N" |
| >Next</A |
| ></TD |
| ></TR |
| ></TABLE |
| ><HR |
| ALIGN="LEFT" |
| WIDTH="100%"></DIV |
| ><H1 |
| ><A |
| NAME="SDLCREATECURSOR" |
| ></A |
| >SDL_CreateCursor</H1 |
| ><DIV |
| CLASS="REFNAMEDIV" |
| ><A |
| NAME="AEN2487" |
| ></A |
| ><H2 |
| >Name</H2 |
| >SDL_CreateCursor -- Creates a new mouse cursor.</DIV |
| ><DIV |
| CLASS="REFSYNOPSISDIV" |
| ><A |
| NAME="AEN2490" |
| ></A |
| ><H2 |
| >Synopsis</H2 |
| ><DIV |
| CLASS="FUNCSYNOPSIS" |
| ><A |
| NAME="AEN2491" |
| ></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="AEN2497" |
| ></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="AEN2503" |
| ></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="AEN2524" |
| ></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; |
| mask[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="AEN2527" |
| ></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 |
| SUMMARY="Footer navigation table" |
| WIDTH="100%" |
| BORDER="0" |
| CELLPADDING="0" |
| CELLSPACING="0" |
| ><TR |
| ><TD |
| WIDTH="33%" |
| ALIGN="left" |
| VALIGN="top" |
| ><A |
| HREF="sdlwarpmouse.html" |
| ACCESSKEY="P" |
| >Prev</A |
| ></TD |
| ><TD |
| WIDTH="34%" |
| ALIGN="center" |
| VALIGN="top" |
| ><A |
| HREF="index.html" |
| ACCESSKEY="H" |
| >Home</A |
| ></TD |
| ><TD |
| WIDTH="33%" |
| ALIGN="right" |
| VALIGN="top" |
| ><A |
| HREF="sdlfreecursor.html" |
| ACCESSKEY="N" |
| >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" |
| ACCESSKEY="U" |
| >Up</A |
| ></TD |
| ><TD |
| WIDTH="33%" |
| ALIGN="right" |
| VALIGN="top" |
| >SDL_FreeCursor</TD |
| ></TR |
| ></TABLE |
| ></DIV |
| ></BODY |
| ></HTML |
| > |