Allow easily overriding default window backend

This commit is contained in:
UnknownShadow200 2024-05-22 18:35:43 +10:00
parent 7ef901715c
commit 3aa1f9749f
8 changed files with 31 additions and 17 deletions

View File

@ -117,6 +117,13 @@ typedef cc_uint8 cc_bool;
#endif #endif
#endif #endif
#define CC_WIN_BACKEND_X11 1
#define CC_WIN_BACKEND_WIN32 2
#define CC_WIN_BACKEND_COCOA 3
#define CC_WIN_BACKEND_TERMINAL 4
#define CC_WIN_BACKEND_SDL2 5
#define CC_WIN_BACKEND_SDL3 6
#define CC_WIN_BACKEND_BEOS 7
#define CC_BUILD_NETWORKING #define CC_BUILD_NETWORKING
#define CC_BUILD_FREETYPE #define CC_BUILD_FREETYPE
@ -149,10 +156,10 @@ typedef cc_uint8 cc_bool;
#elif defined _WIN32 #elif defined _WIN32
#define CC_BUILD_WIN #define CC_BUILD_WIN
#define CC_BUILD_D3D9 #define CC_BUILD_D3D9
#define CC_BUILD_WINGUI
#define CC_BUILD_HTTPCLIENT #define CC_BUILD_HTTPCLIENT
#define CC_BUILD_SCHANNEL #define CC_BUILD_SCHANNEL
#define CC_BUILD_WINMM #define CC_BUILD_WINMM
#define DEFAULT_WIN_BACKEND CC_WIN_BACKEND_WIN32
#elif defined __ANDROID__ #elif defined __ANDROID__
#define CC_BUILD_ANDROID #define CC_BUILD_ANDROID
#define CC_BUILD_MOBILE #define CC_BUILD_MOBILE
@ -167,17 +174,17 @@ typedef cc_uint8 cc_bool;
#define CC_BUILD_SERENITY #define CC_BUILD_SERENITY
#define CC_BUILD_POSIX #define CC_BUILD_POSIX
#define CC_BUILD_GL #define CC_BUILD_GL
#define CC_BUILD_SDL
#define CC_BUILD_CURL #define CC_BUILD_CURL
#define CC_BUILD_OPENAL #define CC_BUILD_OPENAL
#define DEFAULT_WIN_BACKEND CC_WIN_BACKEND_SDL2
#elif defined __linux__ #elif defined __linux__
#define CC_BUILD_LINUX #define CC_BUILD_LINUX
#define CC_BUILD_POSIX #define CC_BUILD_POSIX
#define CC_BUILD_GL #define CC_BUILD_GL
#define CC_BUILD_X11
#define CC_BUILD_XINPUT2 #define CC_BUILD_XINPUT2
#define CC_BUILD_CURL #define CC_BUILD_CURL
#define CC_BUILD_OPENAL #define CC_BUILD_OPENAL
#define DEFAULT_WIN_BACKEND CC_WIN_BACKEND_X11
#if defined CC_BUILD_RPI #if defined CC_BUILD_RPI
#define CC_BUILD_GLMODERN #define CC_BUILD_GLMODERN
#define CC_BUILD_GLES #define CC_BUILD_GLES
@ -195,7 +202,7 @@ typedef cc_uint8 cc_bool;
#define CC_BUILD_TOUCH #define CC_BUILD_TOUCH
#define CC_BUILD_CFNETWORK #define CC_BUILD_CFNETWORK
#else #else
#define CC_BUILD_COCOA #define DEFAULT_WIN_BACKEND CC_WIN_BACKEND_COCOA
#define CC_BUILD_MACOS #define CC_BUILD_MACOS
#define CC_BUILD_CURL #define CC_BUILD_CURL
#endif #endif
@ -204,7 +211,7 @@ typedef cc_uint8 cc_bool;
#define CC_BUILD_SOLARIS #define CC_BUILD_SOLARIS
#define CC_BUILD_POSIX #define CC_BUILD_POSIX
#define CC_BUILD_GL #define CC_BUILD_GL
#define CC_BUILD_X11 #define DEFAULT_WIN_BACKEND CC_WIN_BACKEND_X11
#define CC_BUILD_XINPUT2 #define CC_BUILD_XINPUT2
#define CC_BUILD_CURL #define CC_BUILD_CURL
#define CC_BUILD_OPENAL #define CC_BUILD_OPENAL
@ -213,28 +220,28 @@ typedef cc_uint8 cc_bool;
#define CC_BUILD_POSIX #define CC_BUILD_POSIX
#define CC_BUILD_BSD #define CC_BUILD_BSD
#define CC_BUILD_GL #define CC_BUILD_GL
#define CC_BUILD_X11
#define CC_BUILD_XINPUT2 #define CC_BUILD_XINPUT2
#define CC_BUILD_CURL #define CC_BUILD_CURL
#define CC_BUILD_OPENAL #define CC_BUILD_OPENAL
#define DEFAULT_WIN_BACKEND CC_WIN_BACKEND_X11
#elif defined __OpenBSD__ #elif defined __OpenBSD__
#define CC_BUILD_OPENBSD #define CC_BUILD_OPENBSD
#define CC_BUILD_POSIX #define CC_BUILD_POSIX
#define CC_BUILD_BSD #define CC_BUILD_BSD
#define CC_BUILD_GL #define CC_BUILD_GL
#define CC_BUILD_X11
#define CC_BUILD_XINPUT2 #define CC_BUILD_XINPUT2
#define CC_BUILD_CURL #define CC_BUILD_CURL
#define CC_BUILD_OPENAL #define CC_BUILD_OPENAL
#define DEFAULT_WIN_BACKEND CC_WIN_BACKEND_X11
#elif defined __NetBSD__ #elif defined __NetBSD__
#define CC_BUILD_NETBSD #define CC_BUILD_NETBSD
#define CC_BUILD_POSIX #define CC_BUILD_POSIX
#define CC_BUILD_BSD #define CC_BUILD_BSD
#define CC_BUILD_GL #define CC_BUILD_GL
#define CC_BUILD_X11
#define CC_BUILD_XINPUT2 #define CC_BUILD_XINPUT2
#define CC_BUILD_CURL #define CC_BUILD_CURL
#define CC_BUILD_OPENAL #define CC_BUILD_OPENAL
#define DEFAULT_WIN_BACKEND CC_WIN_BACKEND_X11
#elif defined __HAIKU__ #elif defined __HAIKU__
#define CC_BUILD_HAIKU #define CC_BUILD_HAIKU
#define CC_BUILD_POSIX #define CC_BUILD_POSIX
@ -242,6 +249,7 @@ typedef cc_uint8 cc_bool;
#define CC_BUILD_CURL #define CC_BUILD_CURL
#define CC_BUILD_OPENAL #define CC_BUILD_OPENAL
#define CC_BACKTRACE_BUILTIN #define CC_BACKTRACE_BUILTIN
#define DEFAULT_WIN_BACKEND CC_WIN_BACKEND_BEOS
#elif defined __BEOS__ #elif defined __BEOS__
#define CC_BUILD_BEOS #define CC_BUILD_BEOS
#define CC_BUILD_POSIX #define CC_BUILD_POSIX
@ -250,14 +258,15 @@ typedef cc_uint8 cc_bool;
#define CC_BUILD_HTTPCLIENT #define CC_BUILD_HTTPCLIENT
#define CC_BUILD_OPENAL #define CC_BUILD_OPENAL
#define CC_BACKTRACE_BUILTIN #define CC_BACKTRACE_BUILTIN
#define DEFAULT_WIN_BACKEND CC_WIN_BACKEND_BEOS
#elif defined __sgi #elif defined __sgi
#define CC_BUILD_IRIX #define CC_BUILD_IRIX
#define CC_BUILD_POSIX #define CC_BUILD_POSIX
#define CC_BUILD_GL #define CC_BUILD_GL
#define CC_BUILD_X11
#define CC_BUILD_CURL #define CC_BUILD_CURL
#define CC_BUILD_OPENAL #define CC_BUILD_OPENAL
#define CC_BIG_ENDIAN #define CC_BIG_ENDIAN
#define DEFAULT_WIN_BACKEND CC_WIN_BACKEND_X11
#elif defined __EMSCRIPTEN__ #elif defined __EMSCRIPTEN__
#define CC_BUILD_WEB #define CC_BUILD_WEB
#define CC_BUILD_GL #define CC_BUILD_GL
@ -400,6 +409,11 @@ typedef cc_uint8 cc_bool;
#endif #endif
#endif #endif
/* Use platform default unless override is provided via command line/makefile/etc */
#if defined DEFAULT_WIN_BACKEND && !defined CC_WIN_BACKEND
#define CC_WIN_BACKEND DEFAULT_WIN_BACKEND
#endif
#ifdef CC_BUILD_CONSOLE #ifdef CC_BUILD_CONSOLE
#undef CC_BUILD_FREETYPE #undef CC_BUILD_FREETYPE
#undef CC_BUILD_PLUGINS #undef CC_BUILD_PLUGINS

View File

@ -1,5 +1,5 @@
#include "Core.h" #include "Core.h"
#if defined CC_BUILD_SDL2 #if CC_WIN_BACKEND == CC_WIN_BACKEND_SDL2
#include "_WindowBase.h" #include "_WindowBase.h"
#include "Graphics.h" #include "Graphics.h"
#include "String.h" #include "String.h"

View File

@ -1,5 +1,5 @@
#include "Core.h" #include "Core.h"
#if defined CC_BUILD_SDL3 #if CC_WIN_BACKEND == CC_WIN_BACKEND_SDL3
#include "_WindowBase.h" #include "_WindowBase.h"
#include "Graphics.h" #include "Graphics.h"
#include "String.h" #include "String.h"

View File

@ -1,5 +1,5 @@
#include "Core.h" #include "Core.h"
#if defined CC_BUILD_TERMINAL #if CC_WIN_BACKEND == CC_WIN_BACKEND_TERMINAL
#include "_WindowBase.h" #include "_WindowBase.h"
#include "String.h" #include "String.h"
#include "Funcs.h" #include "Funcs.h"

View File

@ -1,5 +1,5 @@
#include "Core.h" #include "Core.h"
#if defined CC_BUILD_WINGUI && !defined CC_BUILD_SDL #if CC_WIN_BACKEND == CC_WIN_BACKEND_WIN32
#include "_WindowBase.h" #include "_WindowBase.h"
#include "String.h" #include "String.h"
#include "Funcs.h" #include "Funcs.h"

View File

@ -1,5 +1,5 @@
#include "Core.h" #include "Core.h"
#if defined CC_BUILD_X11 && !defined CC_BUILD_SDL2 && !defined CC_BUILD_SDL3 #if CC_WIN_BACKEND == CC_WIN_BACKEND_X11
#include "_WindowBase.h" #include "_WindowBase.h"
#include "String.h" #include "String.h"
#include "Funcs.h" #include "Funcs.h"
@ -270,7 +270,7 @@ static void HookXErrors(void) {
/*########################################################################################################################* /*########################################################################################################################*
*--------------------------------------------------Public implementation--------------------------------------------------* *--------------------------------------------------Public implementation--------------------------------------------------*
*#########################################################################################################################*/ *#########################################################################################################################*/
#ifdef CC_BUILD_EGL #if defined CC_BUILD_EGL || !defined CC_BUILD_GL
static XVisualInfo GLContext_SelectVisual(void) { static XVisualInfo GLContext_SelectVisual(void) {
XVisualInfo info; XVisualInfo info;
cc_result res; cc_result res;

View File

@ -1,5 +1,5 @@
#include "Core.h" #include "Core.h"
#if defined CC_BUILD_HAIKU || defined CC_BUILD_BEOS #if CC_WIN_BACKEND == CC_WIN_BACKEND_BEOS
extern "C" { extern "C" {
#include "_WindowBase.h" #include "_WindowBase.h"
#include "Graphics.h" #include "Graphics.h"

View File

@ -1,6 +1,6 @@
#define GL_SILENCE_DEPRECATION #define GL_SILENCE_DEPRECATION
#include "Core.h" #include "Core.h"
#ifdef CC_BUILD_COCOA #if CC_WIN_BACKEND == CC_WIN_BACKEND_COCOA
#include "_WindowBase.h" #include "_WindowBase.h"
#include "ExtMath.h" #include "ExtMath.h"
#include "Funcs.h" #include "Funcs.h"