Mercurial > sdl-ios-xcode
view include/SDL_compat.h @ 5071:55ff76cdbbb8
HAVE_GCC_ATOMICS covers the test and set
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Fri, 21 Jan 2011 21:45:55 -0800 |
parents | e8916fe9cfc8 |
children | 25d4feb7c127 |
line wrap: on
line source
/* SDL - Simple DirectMedia Layer Copyright (C) 1997-2010 Sam Lantinga This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Sam Lantinga slouken@libsdl.org */ /** * \defgroup Compatibility SDL 1.2 Compatibility API */ /*@{*/ /** * \file SDL_compat.h * * This file contains functions for backwards compatibility with SDL 1.2. */ /** * \def SDL_NO_COMPAT * * #define SDL_NO_COMPAT to prevent SDL_compat.h from being included. * SDL_NO_COMPAT is intended to make it easier to covert SDL 1.2 code to * SDL 1.3/2.0. */ /*@}*/ #ifdef SDL_NO_COMPAT #define _SDL_compat_h #endif #ifndef _SDL_compat_h #define _SDL_compat_h #include "SDL_video.h" #include "SDL_version.h" #include "begin_code.h" /* Set up for C function definitions, even when using C++ */ #ifdef __cplusplus /* *INDENT-OFF* */ extern "C" { /* *INDENT-ON* */ #endif /** * \addtogroup Compatibility */ /*@{*/ /* Platform */ #ifdef __WINDOWS__ #undef __WIN32__ #define __WIN32__ 1 #endif /** * \name Surface flags */ /*@{*/ #define SDL_SWSURFACE 0x00000000 /**< \note Not used */ #define SDL_SRCALPHA 0x00010000 #define SDL_SRCCOLORKEY 0x00020000 #define SDL_ANYFORMAT 0x00100000 #define SDL_HWPALETTE 0x00200000 #define SDL_DOUBLEBUF 0x00400000 #define SDL_FULLSCREEN 0x00800000 #define SDL_RESIZABLE 0x01000000 #define SDL_NOFRAME 0x02000000 #define SDL_OPENGL 0x04000000 #define SDL_HWSURFACE 0x08000001 /**< \note Not used */ #define SDL_ASYNCBLIT 0x08000000 /**< \note Not used */ #define SDL_RLEACCELOK 0x08000000 /**< \note Not used */ #define SDL_HWACCEL 0x08000000 /**< \note Not used */ /*@}*//*Surface flags*/ #define SDL_APPMOUSEFOCUS 0x01 #define SDL_APPINPUTFOCUS 0x02 #define SDL_APPACTIVE 0x04 #define SDL_LOGPAL 0x01 #define SDL_PHYSPAL 0x02 #define SDL_ACTIVEEVENT SDL_EVENT_COMPAT1 #define SDL_VIDEORESIZE SDL_EVENT_COMPAT2 #define SDL_VIDEOEXPOSE SDL_EVENT_COMPAT3 #define SDL_ACTIVEEVENTMASK SDL_ACTIVEEVENT, SDL_ACTIVEEVENT #define SDL_VIDEORESIZEMASK SDL_VIDEORESIZE, SDL_VIDEORESIZE #define SDL_VIDEOEXPOSEMASK SDL_VIDEOEXPOSE, SDL_VIDEOEXPOSE #define SDL_WINDOWEVENTMASK SDL_WINDOWEVENT, SDL_WINDOWEVENT #define SDL_KEYDOWNMASK SDL_KEYDOWN, SDL_KEYDOWN #define SDL_KEYUPMASK SDL_KEYUP, SDL_KEYUP #define SDL_KEYEVENTMASK SDL_KEYDOWN, SDL_KEYUP #define SDL_TEXTEDITINGMASK SDL_TEXTEDITING, SDL_TEXTEDITING #define SDL_TEXTINPUTMASK SDL_TEXTINPUT, SDL_TEXTINPUT #define SDL_MOUSEMOTIONMASK SDL_MOUSEMOTION, SDL_MOUSEMOTION #define SDL_MOUSEBUTTONDOWNMASK SDL_MOUSEBUTTONDOWN, SDL_MOUSEBUTTONDOWN #define SDL_MOUSEBUTTONUPMASK SDL_MOUSEBUTTONUP, SDL_MOUSEBUTTONUP #define SDL_MOUSEWHEELMASK SDL_MOUSEWHEEL, SDL_MOUSEWHEEL #define SDL_MOUSEEVENTMASK SDL_MOUSEMOTION, SDL_MOUSEBUTTONUP #define SDL_JOYAXISMOTIONMASK SDL_JOYAXISMOTION, SDL_JOYAXISMOTION #define SDL_JOYBALLMOTIONMASK SDL_JOYBALLMOTION, SDL_JOYBALLMOTION #define SDL_JOYHATMOTIONMASK SDL_JOYHATMOTION, SDL_JOYHATMOTION #define SDL_JOYBUTTONDOWNMASK SDL_JOYBUTTONDOWN, SDL_JOYBUTTONDOWN #define SDL_JOYBUTTONUPMASK SDL_JOYBUTTONUP, SDL_JOYBUTTONUP #define SDL_JOYEVENTMASK SDL_JOYAXISMOTION, SDL_JOYBUTTONUP #define SDL_QUITMASK SDL_QUIT, SDL_QUIT #define SDL_SYSWMEVENTMASK SDL_SYSWMEVENT, SDL_SYSWMEVENT #define SDL_PROXIMITYINMASK SDL_PROXIMITYIN, SDL_PROXIMITYIN #define SDL_PROXIMITYOUTMASK SDL_PROXIMITYOUT, SDL_PROXIMITYOUT #define SDL_ALLEVENTS SDL_FIRSTEVENT, SDL_LASTEVENT #define SDL_BUTTON_WHEELUP 4 #define SDL_BUTTON_WHEELDOWN 5 #define SDL_DEFAULT_REPEAT_DELAY 500 #define SDL_DEFAULT_REPEAT_INTERVAL 30 typedef struct SDL_VideoInfo { Uint32 hw_available:1; Uint32 wm_available:1; Uint32 UnusedBits1:6; Uint32 UnusedBits2:1; Uint32 blit_hw:1; Uint32 blit_hw_CC:1; Uint32 blit_hw_A:1; Uint32 blit_sw:1; Uint32 blit_sw_CC:1; Uint32 blit_sw_A:1; Uint32 blit_fill:1; Uint32 UnusedBits3:16; Uint32 video_mem; SDL_PixelFormat *vfmt; int current_w; int current_h; } SDL_VideoInfo; /** * \name Overlay formats * * The most common video overlay formats. * * For an explanation of these pixel formats, see: * http://www.webartz.com/fourcc/indexyuv.htm * * For information on the relationship between color spaces, see: * http://www.neuro.sfc.keio.ac.jp/~aly/polygon/info/color-space-faq.html */ /*@{*/ #define SDL_YV12_OVERLAY 0x32315659 /**< Planar mode: Y + V + U (3 planes) */ #define SDL_IYUV_OVERLAY 0x56555949 /**< Planar mode: Y + U + V (3 planes) */ #define SDL_YUY2_OVERLAY 0x32595559 /**< Packed mode: Y0+U0+Y1+V0 (1 plane) */ #define SDL_UYVY_OVERLAY 0x59565955 /**< Packed mode: U0+Y0+V0+Y1 (1 plane) */ #define SDL_YVYU_OVERLAY 0x55595659 /**< Packed mode: Y0+V0+Y1+U0 (1 plane) */ /*@}*//*Overlay formats*/ /** * The YUV hardware video overlay. */ typedef struct SDL_Overlay { Uint32 format; /**< Read-only */ int w, h; /**< Read-only */ int planes; /**< Read-only */ Uint16 *pitches; /**< Read-only */ Uint8 **pixels; /**< Read-write */ /** * \name Hardware-specific surface info */ /*@{*/ struct private_yuvhwfuncs *hwfuncs; struct private_yuvhwdata *hwdata; /*@}*//*Hardware-specific surface info*/ /** * \name Special flags */ /*@{*/ Uint32 hw_overlay:1; /**< Flag: This overlay hardware accelerated? */ Uint32 UnusedBits:31; /*@}*//*Special flags*/ } SDL_Overlay; typedef enum { SDL_GRAB_QUERY = -1, SDL_GRAB_OFF = 0, SDL_GRAB_ON = 1 } SDL_GrabMode; typedef enum { SDL_TEXTURESCALEMODE_NONE = SDL_SCALEMODE_NONE, SDL_TEXTURESCALEMODE_FAST = SDL_SCALEMODE_FAST, SDL_TEXTURESCALEMODE_SLOW = SDL_SCALEMODE_SLOW, SDL_TEXTURESCALEMODE_BEST = SDL_SCALEMODE_BEST } SDL_TextureScaleMode; struct SDL_SysWMinfo; /** * \name Obsolete or renamed key codes */ /*@{*/ /** * \name Renamed keys * * These key constants were renamed for clarity or consistency. */ /*@{*/ #define SDLK_KP0 SDLK_KP_0 #define SDLK_KP1 SDLK_KP_1 #define SDLK_KP2 SDLK_KP_2 #define SDLK_KP3 SDLK_KP_3 #define SDLK_KP4 SDLK_KP_4 #define SDLK_KP5 SDLK_KP_5 #define SDLK_KP6 SDLK_KP_6 #define SDLK_KP7 SDLK_KP_7 #define SDLK_KP8 SDLK_KP_8 #define SDLK_KP9 SDLK_KP_9 #define SDLK_NUMLOCK SDLK_NUMLOCKCLEAR #define SDLK_SCROLLOCK SDLK_SCROLLLOCK #define SDLK_PRINT SDLK_PRINTSCREEN #define SDLK_LMETA SDLK_LGUI #define SDLK_RMETA SDLK_RGUI /*@}*//*Renamed keys*/ /** * \name META modifier * * The META modifier is equivalent to the GUI modifier from the USB standard. */ /*@{*/ #define KMOD_LMETA KMOD_LGUI #define KMOD_RMETA KMOD_RGUI #define KMOD_META KMOD_GUI /*@}*//*META modifier*/ /** * \name Not in USB * * These keys don't appear in the USB specification (or at least not under * those names). I'm unsure if the following assignments make sense or if these * codes should be defined as actual additional SDLK_ constants. */ /*@{*/ #define SDLK_LSUPER SDLK_LMETA #define SDLK_RSUPER SDLK_RMETA #define SDLK_COMPOSE SDLK_APPLICATION #define SDLK_BREAK SDLK_STOP #define SDLK_EURO SDLK_2 /*@}*//*Not in USB*/ /*@}*//*Obsolete or renamed key codes*/ #define SDL_SetModuleHandle(x) #define SDL_AllocSurface SDL_CreateRGBSurface extern DECLSPEC const SDL_version *SDLCALL SDL_Linked_Version(void); extern DECLSPEC char *SDLCALL SDL_AudioDriverName(char *namebuf, int maxlen); extern DECLSPEC char *SDLCALL SDL_VideoDriverName(char *namebuf, int maxlen); extern DECLSPEC const SDL_VideoInfo *SDLCALL SDL_GetVideoInfo(void); extern DECLSPEC int SDLCALL SDL_VideoModeOK(int width, int height, int bpp, Uint32 flags); extern DECLSPEC SDL_Rect **SDLCALL SDL_ListModes(const SDL_PixelFormat * format, Uint32 flags); extern DECLSPEC SDL_Surface *SDLCALL SDL_SetVideoMode(int width, int height, int bpp, Uint32 flags); extern DECLSPEC SDL_Surface *SDLCALL SDL_GetVideoSurface(void); extern DECLSPEC void SDLCALL SDL_UpdateRects(SDL_Surface * screen, int numrects, SDL_Rect * rects); extern DECLSPEC void SDLCALL SDL_UpdateRect(SDL_Surface * screen, Sint32 x, Sint32 y, Uint32 w, Uint32 h); extern DECLSPEC int SDLCALL SDL_Flip(SDL_Surface * screen); extern DECLSPEC int SDLCALL SDL_SetAlpha(SDL_Surface * surface, Uint32 flag, Uint8 alpha); extern DECLSPEC SDL_Surface *SDLCALL SDL_DisplayFormat(SDL_Surface * surface); extern DECLSPEC SDL_Surface *SDLCALL SDL_DisplayFormatAlpha(SDL_Surface * surface); extern DECLSPEC void SDLCALL SDL_WM_SetCaption(const char *title, const char *icon); extern DECLSPEC void SDLCALL SDL_WM_GetCaption(const char **title, const char **icon); extern DECLSPEC void SDLCALL SDL_WM_SetIcon(SDL_Surface * icon, Uint8 * mask); extern DECLSPEC int SDLCALL SDL_WM_IconifyWindow(void); extern DECLSPEC int SDLCALL SDL_WM_ToggleFullScreen(SDL_Surface * surface); extern DECLSPEC SDL_GrabMode SDLCALL SDL_WM_GrabInput(SDL_GrabMode mode); extern DECLSPEC int SDLCALL SDL_SetPalette(SDL_Surface * surface, int flags, const SDL_Color * colors, int firstcolor, int ncolors); extern DECLSPEC int SDLCALL SDL_SetColors(SDL_Surface * surface, const SDL_Color * colors, int firstcolor, int ncolors); extern DECLSPEC int SDLCALL SDL_GetWMInfo(struct SDL_SysWMinfo *info); extern DECLSPEC Uint8 SDLCALL SDL_GetAppState(void); extern DECLSPEC void SDLCALL SDL_WarpMouse(Uint16 x, Uint16 y); extern DECLSPEC SDL_Overlay *SDLCALL SDL_CreateYUVOverlay(int width, int height, Uint32 format, SDL_Surface * display); extern DECLSPEC int SDLCALL SDL_LockYUVOverlay(SDL_Overlay * overlay); extern DECLSPEC void SDLCALL SDL_UnlockYUVOverlay(SDL_Overlay * overlay); extern DECLSPEC int SDLCALL SDL_DisplayYUVOverlay(SDL_Overlay * overlay, SDL_Rect * dstrect); extern DECLSPEC void SDLCALL SDL_FreeYUVOverlay(SDL_Overlay * overlay); extern DECLSPEC void SDLCALL SDL_GL_SwapBuffers(void); extern DECLSPEC int SDLCALL SDL_EnableKeyRepeat(int delay, int interval); extern DECLSPEC void SDLCALL SDL_GetKeyRepeat(int *delay, int *interval); extern DECLSPEC int SDLCALL SDL_EnableUNICODE(int enable); typedef SDL_Texture* SDL_TextureID; typedef SDL_Window* SDL_WindowID; #define SDL_RenderPoint SDL_RenderDrawPoint #define SDL_RenderLine SDL_RenderDrawLine #define SDL_RenderFill(X) (X) ? SDL_RenderFillRect(X) : SDL_RenderClear() #define SDL_KillThread(X) extern DECLSPEC int SDLCALL SDL_putenv(const char *variable); /*@}*//*Compatibility*/ /* Ends C function definitions when using C++ */ #ifdef __cplusplus /* *INDENT-OFF* */ } /* *INDENT-ON* */ #endif #include "close_code.h" #endif /* _SDL_compat_h */ /* vi: set ts=4 sw=4 expandtab: */