From 5a079a2d114f96d4847d1ee305d5b7c16eeec50e Mon Sep 17 00:00:00 2001 From: 3gg <3gg@shellblade.net> Date: Sat, 27 Dec 2025 12:03:39 -0800 Subject: Initial commit --- contrib/SDL-3.2.8/src/video/SDL_surface_c.h | 92 +++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 contrib/SDL-3.2.8/src/video/SDL_surface_c.h (limited to 'contrib/SDL-3.2.8/src/video/SDL_surface_c.h') diff --git a/contrib/SDL-3.2.8/src/video/SDL_surface_c.h b/contrib/SDL-3.2.8/src/video/SDL_surface_c.h new file mode 100644 index 0000000..27dc88a --- /dev/null +++ b/contrib/SDL-3.2.8/src/video/SDL_surface_c.h @@ -0,0 +1,92 @@ +/* + Simple DirectMedia Layer + Copyright (C) 1997-2025 Sam Lantinga + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. +*/ +#include "SDL_internal.h" + +#ifndef SDL_surface_c_h_ +#define SDL_surface_c_h_ + +// Useful functions and variables from SDL_surface.c + +#include "SDL_blit.h" + +// Surface internal flags +typedef Uint32 SDL_SurfaceDataFlags; + +#define SDL_INTERNAL_SURFACE_DONTFREE 0x00000001u /**< Surface is referenced internally */ +#define SDL_INTERNAL_SURFACE_STACK 0x00000002u /**< Surface is allocated on the stack */ +#define SDL_INTERNAL_SURFACE_RLEACCEL 0x00000004u /**< Surface is RLE encoded */ + +// Surface internal data definition +struct SDL_Surface +{ + // Public API definition + SDL_SurfaceFlags flags; /**< The flags of the surface, read-only */ + SDL_PixelFormat format; /**< The format of the surface, read-only */ + int w; /**< The width of the surface, read-only. */ + int h; /**< The height of the surface, read-only. */ + int pitch; /**< The distance in bytes between rows of pixels, read-only */ + void *pixels; /**< A pointer to the pixels of the surface, the pixels are writeable if non-NULL */ + + int refcount; /**< Application reference count, used when freeing surface */ + + void *reserved; /**< Reserved for internal use */ + + // Private API definition + + /** flags for this surface */ + SDL_SurfaceDataFlags internal_flags; + + /** properties for this surface */ + SDL_PropertiesID props; + + /** detailed format for this surface */ + const SDL_PixelFormatDetails *fmt; + + /** Pixel colorspace */ + SDL_Colorspace colorspace; + + /** palette for indexed surfaces */ + SDL_Palette *palette; + + /** Alternate representation of images */ + int num_images; + SDL_Surface **images; + + /** information needed for surfaces requiring locks */ + int locked; + + /** clipping information */ + SDL_Rect clip_rect; + + /** info for fast blit mapping to other surfaces */ + SDL_BlitMap map; +}; + +// Surface functions +extern bool SDL_SurfaceValid(SDL_Surface *surface); +extern void SDL_UpdateSurfaceLockFlag(SDL_Surface *surface); +extern float SDL_GetDefaultSDRWhitePoint(SDL_Colorspace colorspace); +extern float SDL_GetSurfaceSDRWhitePoint(SDL_Surface *surface, SDL_Colorspace colorspace); +extern float SDL_GetDefaultHDRHeadroom(SDL_Colorspace colorspace); +extern float SDL_GetSurfaceHDRHeadroom(SDL_Surface *surface, SDL_Colorspace colorspace); +extern SDL_Surface *SDL_GetSurfaceImage(SDL_Surface *surface, float display_scale); + +#endif // SDL_surface_c_h_ -- cgit v1.2.3