Mercurial > sdl-ios-xcode
view docs/html/sdlcreatecursor.html @ 4135:cd98d1dc385c SDL-1.2
Damien Carbery fixed bug #542
In SDL 1.2.13 sdl.m4 the AM_PATH_SDL function looks for sdl-config.
It sets the PATH:
PATH="$prefix/bin:$prefix/usr/bin:$PATH"
but does not save the current PATH or restore the current PATH at the end.
This breaks the build on Solaris because we have GNU tools in another dir
(listed at the top of PATH) but non-GNU tools with the same names in
$prefix/bin. Later configure tests finds the non-GNU tools and quits in error
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Thu, 24 Jan 2008 15:50:20 +0000 |
parents | 355632dca928 |
children |
line wrap: on
line source
<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 >