view docs/html/sdlsurface.html @ 4170:092c0bc69155 SDL-1.2

Fixed bug #618 Description From Tim Angus 2008-08-30 12:23:56 (-) [reply] As we all know SDL 1.2 doesn't handle dead keys well since one key press potentially equals two (or more) characters. For example, on many layouts, keying <backquote>,<space> results in <no character>,<backquote><space>. Since the unicode member of the SDL_keysym struct only has room for one character, only one can be returned. On Linux, the first character is returned. On Windows however, unless the exact number of characters generated by the keypress is 1, nothing is returned. The following patch addresses this inconsistency. Updated patch which includes a further fix to the handling of the numpad when numlock is on. This further fix is courtesy Amanieu d'Antras.
author Sam Lantinga <slouken@libsdl.org>
date Mon, 13 Apr 2009 08:42:09 +0000
parents 355632dca928
children
line wrap: on
line source

<HTML
><HEAD
><TITLE
>SDL_Surface</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_PixelFormat"
HREF="sdlpixelformat.html"><LINK
REL="NEXT"
TITLE="SDL_VideoInfo"
HREF="sdlvideoinfo.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="sdlpixelformat.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="sdlvideoinfo.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><H1
><A
NAME="SDLSURFACE"
></A
>SDL_Surface</H1
><DIV
CLASS="REFNAMEDIV"
><A
NAME="AEN3263"
></A
><H2
>Name</H2
>SDL_Surface&nbsp;--&nbsp;Graphical Surface Structure</DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN3266"
></A
><H2
>Structure Definition</H2
><PRE
CLASS="PROGRAMLISTING"
>typedef struct SDL_Surface {
        Uint32 flags;                           /* Read-only */
        SDL_PixelFormat *format;                /* Read-only */
        int w, h;                               /* Read-only */
        Uint16 pitch;                           /* Read-only */
        void *pixels;                           /* Read-write */

        /* clipping information */
        SDL_Rect clip_rect;                     /* Read-only */

        /* Reference count -- used when freeing surface */
        int refcount;                           /* Read-mostly */

	/* This structure also contains private fields not shown here */
} SDL_Surface;</PRE
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN3269"
></A
><H2
>Structure Data</H2
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN3271"
></A
><P
></P
><TABLE
BORDER="0"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="STRUCTFIELD"
><I
>flags</I
></TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Surface flags</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="STRUCTFIELD"
><I
>format</I
></TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Pixel <A
HREF="sdlpixelformat.html"
>format</A
></TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="STRUCTFIELD"
><I
>w, h</I
></TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Width and height of the surface</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="STRUCTFIELD"
><I
>pitch</I
></TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Length of a surface scanline in bytes</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="STRUCTFIELD"
><I
>pixels</I
></TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Pointer to the actual pixel data</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="STRUCTFIELD"
><I
>clip_rect</I
></TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>surface clip <A
HREF="sdlrect.html"
>rectangle</A
></TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN3300"
></A
><H2
>Description</H2
><P
><SPAN
CLASS="STRUCTNAME"
>SDL_Surface</SPAN
>'s represent areas of "graphical"
memory, memory that can be drawn to. The video framebuffer is returned
as a <SPAN
CLASS="STRUCTNAME"
>SDL_Surface</SPAN
> by
<A
HREF="sdlsetvideomode.html"
><TT
CLASS="FUNCTION"
>SDL_SetVideoMode</TT
></A
>
and <A
HREF="sdlgetvideosurface.html"
><TT
CLASS="FUNCTION"
>SDL_GetVideoSurface</TT
></A
>.
Most of the fields should be pretty obvious.
<TT
CLASS="STRUCTFIELD"
><I
>w</I
></TT
> and <TT
CLASS="STRUCTFIELD"
><I
>h</I
></TT
> are the
width and height of the surface in pixels.
<TT
CLASS="STRUCTFIELD"
><I
>pixels</I
></TT
> is a pointer to the actual pixel data,
the surface should be <A
HREF="sdllocksurface.html"
>locked</A
>
before accessing this field. The <TT
CLASS="STRUCTFIELD"
><I
>clip_rect</I
></TT
> field
is the clipping rectangle as set by
<A
HREF="sdlsetcliprect.html"
><TT
CLASS="FUNCTION"
>SDL_SetClipRect</TT
></A
>.</P
><P
>The following are supported in the
<TT
CLASS="STRUCTFIELD"
><I
>flags</I
></TT
> field.</P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN3318"
></A
><P
></P
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="LITERAL"
>SDL_SWSURFACE</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Surface is stored in system memory</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="LITERAL"
>SDL_HWSURFACE</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Surface is stored in video memory</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="LITERAL"
>SDL_ASYNCBLIT</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Surface uses asynchronous blits if possible</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="LITERAL"
>SDL_ANYFORMAT</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Allows any pixel-format (Display surface)</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="LITERAL"
>SDL_HWPALETTE</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Surface has exclusive palette</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="LITERAL"
>SDL_DOUBLEBUF</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Surface is double buffered (Display surface)</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="LITERAL"
>SDL_FULLSCREEN</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Surface is full screen (Display Surface)</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="LITERAL"
>SDL_OPENGL</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Surface has an OpenGL context (Display Surface)</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="LITERAL"
>SDL_OPENGLBLIT</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Surface supports OpenGL blitting (Display Surface)</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="LITERAL"
>SDL_RESIZABLE</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Surface is resizable (Display Surface)</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="LITERAL"
>SDL_HWACCEL</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Surface blit uses hardware acceleration</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="LITERAL"
>SDL_SRCCOLORKEY</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Surface use colorkey blitting</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="LITERAL"
>SDL_RLEACCEL</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Colorkey blitting is accelerated with RLE</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="LITERAL"
>SDL_SRCALPHA</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Surface blit uses alpha blending</TD
></TR
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
><TT
CLASS="LITERAL"
>SDL_PREALLOC</TT
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
>Surface uses preallocated memory</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN3381"
></A
><H2
>See Also</H2
><P
><A
HREF="sdlpixelformat.html"
><SPAN
CLASS="STRUCTNAME"
>SDL_PixelFormat</SPAN
></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="sdlpixelformat.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="sdlvideoinfo.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>SDL_PixelFormat</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_VideoInfo</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>