diff --git a/renderdoc/api/replay/apidefs.h b/renderdoc/api/replay/apidefs.h index ed4a4b5c9..4bc36609e 100644 --- a/renderdoc/api/replay/apidefs.h +++ b/renderdoc/api/replay/apidefs.h @@ -77,7 +77,8 @@ #define RENDERDOC_CC __cdecl #elif defined(RENDERDOC_PLATFORM_LINUX) || defined(RENDERDOC_PLATFORM_APPLE) || \ - defined(RENDERDOC_PLATFORM_ANDROID) || defined(RENDERDOC_PLATFORM_GGP) + defined(RENDERDOC_PLATFORM_ANDROID) || defined(RENDERDOC_PLATFORM_GGP) || \ + defined(RENDERDOC_PLATFORM_SWITCH) #define RENDERDOC_EXPORT_API __attribute__((visibility("default"))) #define RENDERDOC_IMPORT_API diff --git a/renderdoc/common/common.h b/renderdoc/common/common.h index 3c5773baa..71ccc4f14 100644 --- a/renderdoc/common/common.h +++ b/renderdoc/common/common.h @@ -42,7 +42,12 @@ #include #define __PRETTY_FUNCTION_SIGNATURE__ __PRETTY_FUNCTION__ +#if ENABLED(RDOC_SWITCH) +#include +#define OS_DEBUG_BREAK() abort() +#else #define OS_DEBUG_BREAK() raise(SIGTRAP) +#endif #if defined(__clang__) diff --git a/renderdoc/common/globalconfig.h b/renderdoc/common/globalconfig.h index a80bebf72..d266166e1 100644 --- a/renderdoc/common/globalconfig.h +++ b/renderdoc/common/globalconfig.h @@ -67,6 +67,7 @@ #define RDOC_APPLE OPTION_OFF #define RDOC_POSIX OPTION_OFF #define RDOC_GGP OPTION_OFF +#define RDOC_SWITCH OPTION_OFF #elif defined(RENDERDOC_PLATFORM_ANDROID) @@ -76,6 +77,7 @@ #define RDOC_APPLE OPTION_OFF #define RDOC_POSIX OPTION_ON #define RDOC_GGP OPTION_OFF +#define RDOC_SWITCH OPTION_OFF #elif defined(RENDERDOC_PLATFORM_LINUX) @@ -85,6 +87,7 @@ #define RDOC_APPLE OPTION_OFF #define RDOC_POSIX OPTION_ON #define RDOC_GGP OPTION_OFF +#define RDOC_SWITCH OPTION_OFF #elif defined(RENDERDOC_PLATFORM_APPLE) @@ -94,6 +97,7 @@ #define RDOC_APPLE OPTION_ON #define RDOC_POSIX OPTION_ON #define RDOC_GGP OPTION_OFF +#define RDOC_SWITCH OPTION_OFF #elif defined(RENDERDOC_PLATFORM_GGP) @@ -103,6 +107,17 @@ #define RDOC_APPLE OPTION_OFF #define RDOC_POSIX OPTION_ON #define RDOC_GGP OPTION_ON +#define RDOC_SWITCH OPTION_OFF + +#elif defined(RENDERDOC_PLATFORM_SWITCH) + +#define RDOC_WIN32 OPTION_OFF +#define RDOC_ANDROID OPTION_OFF +#define RDOC_LINUX OPTION_OFF +#define RDOC_APPLE OPTION_OFF +#define RDOC_POSIX OPTION_ON +#define RDOC_GGP OPTION_OFF +#define RDOC_SWITCH OPTION_ON #else diff --git a/renderdoc/driver/gl/gl_common.h b/renderdoc/driver/gl/gl_common.h index 932d060a0..aa3cc2bfa 100644 --- a/renderdoc/driver/gl/gl_common.h +++ b/renderdoc/driver/gl/gl_common.h @@ -256,6 +256,36 @@ struct GLWindowingData EGLConfig egl_cfg; }; +#elif ENABLED(RDOC_SWITCH) + +// force include the eglplatform.h +#include "official/eglplatform.h" + +#include "official/egl.h" +#include "official/eglext.h" + +struct GLWindowingData +{ + GLWindowingData() + { + egl_ctx = NULL; + egl_dpy = NULL; + wnd = NULL; + egl_wnd = NULL; + egl_cfg = NULL; + } + + union + { + void *ctx; + EGLContext egl_ctx; + }; + EGLSurface egl_wnd; + void *wnd; + EGLDisplay egl_dpy; + EGLConfig egl_cfg; +}; + #else #error "Unknown platform" #endif diff --git a/renderdoc/driver/gl/gl_dispatch_table.h b/renderdoc/driver/gl/gl_dispatch_table.h index b1a73e518..c5711dd40 100644 --- a/renderdoc/driver/gl/gl_dispatch_table.h +++ b/renderdoc/driver/gl/gl_dispatch_table.h @@ -986,7 +986,7 @@ void SetDriverForHooks(WrappedOpenGL *driver); // best we can do. // On apple we suppress hooks while entering any CGL function so we don't record internal work that // can mess up the replay -#if ENABLED(RDOC_WIN32) || ENABLED(RDOC_APPLE) +#if ENABLED(RDOC_WIN32) || ENABLED(RDOC_APPLE) || ENABLED(RDOC_SWITCH) void EnableGLHooks(); void DisableGLHooks(); #else diff --git a/renderdoc/driver/gl/gl_hooks.cpp b/renderdoc/driver/gl/gl_hooks.cpp index 68831e1b0..99945aacb 100644 --- a/renderdoc/driver/gl/gl_hooks.cpp +++ b/renderdoc/driver/gl/gl_hooks.cpp @@ -107,7 +107,7 @@ void SetDriverForHooks(WrappedOpenGL *driver) glhook.driver = driver; } -#if ENABLED(RDOC_WIN32) || ENABLED(RDOC_APPLE) +#if ENABLED(RDOC_WIN32) || ENABLED(RDOC_APPLE) || ENABLED(RDOC_SWITCH) void EnableGLHooks() { glhook.enabled = true;