| | |
| | | /* |
| | | Simple DirectMedia Layer |
| | | Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org> |
| | | Copyright (C) 1997-2018 Sam Lantinga <slouken@libsdl.org> |
| | | |
| | | This software is provided 'as-is', without any express or implied |
| | | warranty. In no event will the authors be held liable for any damages |
| | |
| | | * Header file for ::SDL_Surface definition and management functions. |
| | | */ |
| | | |
| | | #ifndef _SDL_surface_h |
| | | #define _SDL_surface_h |
| | | #ifndef SDL_surface_h_ |
| | | #define SDL_surface_h_ |
| | | |
| | | #include "SDL_stdinc.h" |
| | | #include "SDL_pixels.h" |
| | |
| | | /** |
| | | * \brief The type of function used for surface blitting functions. |
| | | */ |
| | | typedef int (*SDL_blit) (struct SDL_Surface * src, SDL_Rect * srcrect, |
| | | struct SDL_Surface * dst, SDL_Rect * dstrect); |
| | | typedef int (SDLCALL *SDL_blit) (struct SDL_Surface * src, SDL_Rect * srcrect, |
| | | struct SDL_Surface * dst, SDL_Rect * dstrect); |
| | | |
| | | /** |
| | | * \brief The formula used for converting between YUV and RGB |
| | | */ |
| | | typedef enum |
| | | { |
| | | SDL_YUV_CONVERSION_JPEG, /**< Full range JPEG */ |
| | | SDL_YUV_CONVERSION_BT601, /**< BT.601 (the default) */ |
| | | SDL_YUV_CONVERSION_BT709, /**< BT.709 */ |
| | | SDL_YUV_CONVERSION_AUTOMATIC /**< BT.601 for SD content, BT.709 for HD content */ |
| | | } SDL_YUV_CONVERSION_MODE; |
| | | |
| | | /** |
| | | * Allocate and free an RGB surface. |
| | |
| | | extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurface |
| | | (Uint32 flags, int width, int height, int depth, |
| | | Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask); |
| | | |
| | | /* !!! FIXME for 2.1: why does this ask for depth? Format provides that. */ |
| | | extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurfaceWithFormat |
| | | (Uint32 flags, int width, int height, int depth, Uint32 format); |
| | | |
| | | extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurfaceFrom(void *pixels, |
| | | int width, |
| | | int height, |
| | |
| | | Uint32 Gmask, |
| | | Uint32 Bmask, |
| | | Uint32 Amask); |
| | | extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurfaceWithFormatFrom |
| | | (void *pixels, int width, int height, int depth, int pitch, Uint32 format); |
| | | extern DECLSPEC void SDLCALL SDL_FreeSurface(SDL_Surface * surface); |
| | | |
| | | /** |
| | |
| | | |
| | | /** |
| | | * Save a surface to a seekable SDL data stream (memory or file). |
| | | * |
| | | * Surfaces with a 24-bit, 32-bit and paletted 8-bit format get saved in the |
| | | * BMP directly. Other RGB formats with 8-bit or higher get converted to a |
| | | * 24-bit surface or, if they have an alpha mask or a colorkey, to a 32-bit |
| | | * surface before they are saved. YUV and paletted 1-bit and 4-bit formats are |
| | | * not supported. |
| | | * |
| | | * If \c freedst is non-zero, the stream will be closed after being written. |
| | | * |
| | |
| | | extern DECLSPEC void SDLCALL SDL_GetClipRect(SDL_Surface * surface, |
| | | SDL_Rect * rect); |
| | | |
| | | /* |
| | | * Creates a new surface identical to the existing surface |
| | | */ |
| | | extern DECLSPEC SDL_Surface *SDLCALL SDL_DuplicateSurface(SDL_Surface * surface); |
| | | |
| | | /** |
| | | * Creates a new surface of the specified format, and then copies and maps |
| | | * the given surface to it so the blit of the converted surface will be as |
| | |
| | | (SDL_Surface * src, SDL_Rect * srcrect, |
| | | SDL_Surface * dst, SDL_Rect * dstrect); |
| | | |
| | | /** |
| | | * \brief Set the YUV conversion mode |
| | | */ |
| | | extern DECLSPEC void SDLCALL SDL_SetYUVConversionMode(SDL_YUV_CONVERSION_MODE mode); |
| | | |
| | | /** |
| | | * \brief Get the YUV conversion mode |
| | | */ |
| | | extern DECLSPEC SDL_YUV_CONVERSION_MODE SDLCALL SDL_GetYUVConversionMode(void); |
| | | |
| | | /** |
| | | * \brief Get the YUV conversion mode, returning the correct mode for the resolution when the current conversion mode is SDL_YUV_CONVERSION_AUTOMATIC |
| | | */ |
| | | extern DECLSPEC SDL_YUV_CONVERSION_MODE SDLCALL SDL_GetYUVConversionModeForResolution(int width, int height); |
| | | |
| | | /* Ends C function definitions when using C++ */ |
| | | #ifdef __cplusplus |
| | |
| | | #endif |
| | | #include "close_code.h" |
| | | |
| | | #endif /* _SDL_surface_h */ |
| | | #endif /* SDL_surface_h_ */ |
| | | |
| | | /* vi: set ts=4 sw=4 expandtab: */ |