mirror of
				https://github.com/thunderbrewhq/thunderbrew
				synced 2025-10-31 16:26:03 +03:00 
			
		
		
		
	 706c8903a1
			
		
	
	
		706c8903a1
		
			
		
	
	
	
	
		
			
			* chore(build): add vendored SDL 3.0.0 library * chore(build): add vendored glew-cmake-2.2.0 library * feat(console): in the presence of -opengl launch flag, change GxApi to OpenGl * feat(gx): add uncompleted CGxDeviceGLSDL targeting Windows and Linux * chore(build): change SDL3 linkage from shared (bad) to to static (good)
		
			
				
	
	
		
			205 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			205 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*
 | |
|   Simple DirectMedia Layer
 | |
|   Copyright (C) 1997-2023 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
 | |
|   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.
 | |
| */
 | |
| 
 | |
| /**
 | |
|  *  \file SDL_begin_code.h
 | |
|  *
 | |
|  *  This file sets things up for C dynamic library function definitions,
 | |
|  *  static inlined functions, and structures aligned at 4-byte alignment.
 | |
|  *  If you don't like ugly C preprocessor code, don't look at this file. :)
 | |
|  */
 | |
| 
 | |
| /* This shouldn't be nested -- included it around code only. */
 | |
| #ifdef SDL_begin_code_h
 | |
| #error Nested inclusion of SDL_begin_code.h
 | |
| #endif
 | |
| #define SDL_begin_code_h
 | |
| 
 | |
| #ifndef SDL_DEPRECATED
 | |
| #  if defined(__GNUC__) && (__GNUC__ >= 4)  /* technically, this arrived in gcc 3.1, but oh well. */
 | |
| #    define SDL_DEPRECATED __attribute__((deprecated))
 | |
| #  elif defined(_MSC_VER)
 | |
| #    define SDL_DEPRECATED __declspec(deprecated)
 | |
| #  else
 | |
| #    define SDL_DEPRECATED
 | |
| #  endif
 | |
| #endif
 | |
| 
 | |
| #ifndef SDL_UNUSED
 | |
| #  ifdef __GNUC__
 | |
| #    define SDL_UNUSED __attribute__((unused))
 | |
| #  else
 | |
| #    define SDL_UNUSED
 | |
| #  endif
 | |
| #endif
 | |
| 
 | |
| /* Some compilers use a special export keyword */
 | |
| #ifndef DECLSPEC
 | |
| # if defined(__WIN32__) || defined(__WINRT__) || defined(__CYGWIN__) || defined(__GDK__)
 | |
| #  ifdef DLL_EXPORT
 | |
| #   define DECLSPEC __declspec(dllexport)
 | |
| #  else
 | |
| #   define DECLSPEC
 | |
| #  endif
 | |
| # else
 | |
| #  if defined(__GNUC__) && __GNUC__ >= 4
 | |
| #   define DECLSPEC __attribute__ ((visibility("default")))
 | |
| #  else
 | |
| #   define DECLSPEC
 | |
| #  endif
 | |
| # endif
 | |
| #endif
 | |
| 
 | |
| /* By default SDL uses the C calling convention */
 | |
| #ifndef SDLCALL
 | |
| #if (defined(__WIN32__) || defined(__WINRT__) || defined(__GDK__)) && !defined(__GNUC__)
 | |
| #define SDLCALL __cdecl
 | |
| #else
 | |
| #define SDLCALL
 | |
| #endif
 | |
| #endif /* SDLCALL */
 | |
| 
 | |
| /* Force structure packing at 4 byte alignment.
 | |
|    This is necessary if the header is included in code which has structure
 | |
|    packing set to an alternate value, say for loading structures from disk.
 | |
|    The packing is reset to the previous value in SDL_close_code.h
 | |
|  */
 | |
| #if defined(_MSC_VER) || defined(__MWERKS__) || defined(__BORLANDC__)
 | |
| #ifdef _MSC_VER
 | |
| #pragma warning(disable: 4103)
 | |
| #endif
 | |
| #ifdef __clang__
 | |
| #pragma clang diagnostic ignored "-Wpragma-pack"
 | |
| #endif
 | |
| #ifdef __BORLANDC__
 | |
| #pragma nopackwarning
 | |
| #endif
 | |
| #ifdef _WIN64
 | |
| /* Use 8-byte alignment on 64-bit architectures, so pointers are aligned */
 | |
| #pragma pack(push,8)
 | |
| #else
 | |
| #pragma pack(push,4)
 | |
| #endif
 | |
| #endif /* Compiler needs structure packing set */
 | |
| 
 | |
| #ifndef SDL_INLINE
 | |
| #ifdef __GNUC__
 | |
| #define SDL_INLINE __inline__
 | |
| #elif defined(_MSC_VER) || defined(__BORLANDC__) || \
 | |
|       defined(__DMC__) || defined(__SC__) || \
 | |
|       defined(__WATCOMC__) || defined(__LCC__) || \
 | |
|       defined(__DECC) || defined(__CC_ARM)
 | |
| #define SDL_INLINE __inline
 | |
| #ifndef __inline__
 | |
| #define __inline__ __inline
 | |
| #endif
 | |
| #else
 | |
| #define SDL_INLINE inline
 | |
| #ifndef __inline__
 | |
| #define __inline__ inline
 | |
| #endif
 | |
| #endif
 | |
| #endif /* SDL_INLINE not defined */
 | |
| 
 | |
| #ifndef SDL_FORCE_INLINE
 | |
| #ifdef _MSC_VER
 | |
| #define SDL_FORCE_INLINE __forceinline
 | |
| #elif ( (defined(__GNUC__) && (__GNUC__ >= 4)) || defined(__clang__) )
 | |
| #define SDL_FORCE_INLINE __attribute__((always_inline)) static __inline__
 | |
| #else
 | |
| #define SDL_FORCE_INLINE static SDL_INLINE
 | |
| #endif
 | |
| #endif /* SDL_FORCE_INLINE not defined */
 | |
| 
 | |
| #ifndef SDL_NORETURN
 | |
| #ifdef __GNUC__
 | |
| #define SDL_NORETURN __attribute__((noreturn))
 | |
| #elif defined(_MSC_VER)
 | |
| #define SDL_NORETURN __declspec(noreturn)
 | |
| #else
 | |
| #define SDL_NORETURN
 | |
| #endif
 | |
| #endif /* SDL_NORETURN not defined */
 | |
| 
 | |
| /* Apparently this is needed by several Windows compilers */
 | |
| #ifndef __MACH__
 | |
| #ifndef NULL
 | |
| #ifdef __cplusplus
 | |
| #define NULL 0
 | |
| #else
 | |
| #define NULL ((void *)0)
 | |
| #endif
 | |
| #endif /* NULL */
 | |
| #endif /* ! macOS - breaks precompiled headers */
 | |
| 
 | |
| #ifndef SDL_FALLTHROUGH
 | |
| #if (defined(__cplusplus) && __cplusplus >= 201703L) || \
 | |
|     (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202000L)
 | |
| #define SDL_FALLTHROUGH [[fallthrough]]
 | |
| #else
 | |
| #ifdef __has_attribute
 | |
| #define SDL_HAS_FALLTHROUGH __has_attribute(__fallthrough__)
 | |
| #else
 | |
| #define SDL_HAS_FALLTHROUGH 0
 | |
| #endif /* __has_attribute */
 | |
| #if SDL_HAS_FALLTHROUGH && \
 | |
|    ((defined(__GNUC__) && __GNUC__ >= 7) || \
 | |
|     (defined(__clang_major__) && __clang_major__ >= 10))
 | |
| #define SDL_FALLTHROUGH __attribute__((__fallthrough__))
 | |
| #else
 | |
| #define SDL_FALLTHROUGH do {} while (0) /* fallthrough */
 | |
| #endif /* SDL_HAS_FALLTHROUGH */
 | |
| #undef SDL_HAS_FALLTHROUGH
 | |
| #endif /* C++17 or C2x */
 | |
| #endif /* SDL_FALLTHROUGH not defined */
 | |
| 
 | |
| #ifndef SDL_MALLOC
 | |
| #if defined(__GNUC__) && (__GNUC__ >= 3)
 | |
| #define SDL_MALLOC __attribute__((malloc))
 | |
| /** FIXME
 | |
| #elif defined(_MSC_VER)
 | |
| #define SDL_MALLOC __declspec(allocator) __desclspec(restrict)
 | |
| **/
 | |
| #else
 | |
| #define SDL_MALLOC
 | |
| #endif
 | |
| #endif /* SDL_MALLOC not defined */
 | |
| 
 | |
| #ifndef SDL_ALLOC_SIZE
 | |
| #if (defined(__clang__) && __clang_major__ >= 4) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)))
 | |
| #define SDL_ALLOC_SIZE(p) __attribute__((alloc_size(p)))
 | |
| #elif defined(_MSC_VER)
 | |
| #define SDL_ALLOC_SIZE(p)
 | |
| #else
 | |
| #define SDL_ALLOC_SIZE(p)
 | |
| #endif
 | |
| #endif /* SDL_ALLOC_SIZE not defined */
 | |
| 
 | |
| #ifndef SDL_ALLOC_SIZE2
 | |
| #if (defined(__clang__) && __clang_major__ >= 4) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)))
 | |
| #define SDL_ALLOC_SIZE2(p1, p2) __attribute__((alloc_size(p1, p2)))
 | |
| #elif defined(_MSC_VER)
 | |
| #define SDL_ALLOC_SIZE2(p1, p2)
 | |
| #else
 | |
| #define SDL_ALLOC_SIZE2(p1, p2)
 | |
| #endif
 | |
| #endif /* SDL_ALLOC_SIZE2 not defined */
 |