Mercurial > sdl-ios-xcode
diff docs/html/sdlcreatecursor.html @ 0:74212992fb08
Initial revision
author | Sam Lantinga <slouken@lokigames.com> |
---|---|
date | Thu, 26 Apr 2001 16:45:43 +0000 |
parents | |
children | 55f1f1b3e27d |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docs/html/sdlcreatecursor.html Thu Apr 26 16:45:43 2001 +0000 @@ -0,0 +1,390 @@ +<HTML +><HEAD +><TITLE +>SDL_CreateCursor</TITLE +><META +NAME="GENERATOR" +CONTENT="Modular DocBook HTML Stylesheet Version 1.61 +"><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="AEN1989" +></A +><H2 +>Name</H2 +>SDL_CreateCursor -- Creates a new mouse cursor.</DIV +><DIV +CLASS="REFSYNOPSISDIV" +><A +NAME="AEN1992" +></A +><H2 +>Synopsis</H2 +><DIV +CLASS="FUNCSYNOPSIS" +><A +NAME="AEN1993" +></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="AEN1999" +></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="AEN2005" +></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="AEN2026" +></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="AEN2029" +></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 +> \ No newline at end of file