From 15740faf9fe9fe4be08965098bbf2947e096aeeb Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 14 Aug 2019 22:50:43 +0800 Subject: +Unity Runtime code --- Runtime/Graphics/DisplayManager.h | 54 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 Runtime/Graphics/DisplayManager.h (limited to 'Runtime/Graphics/DisplayManager.h') diff --git a/Runtime/Graphics/DisplayManager.h b/Runtime/Graphics/DisplayManager.h new file mode 100644 index 0000000..6de5f08 --- /dev/null +++ b/Runtime/Graphics/DisplayManager.h @@ -0,0 +1,54 @@ +#pragma once +#include "UnityPrefix.h" + +// we do c-style interface, because display management is way too platfrom specific +// these function will be used from script +// UnityDisplayManager prefix is used because some platforms implements this in trampoline + +#define SUPPORT_MULTIPLE_DISPLAYS UNITY_IPHONE + +#if !SUPPORT_MULTIPLE_DISPLAYS + #include "ScreenManager.h" +#endif + +struct RenderSurfaceBase; + +#if SUPPORT_MULTIPLE_DISPLAYS + + extern "C" int UnityDisplayManager_DisplayCount(); + extern "C" bool UnityDisplayManager_DisplayAvailable(void* nativeDisplay); + extern "C" void UnityDisplayManager_DisplaySystemResolution(void* nativeDisplay, int* w, int* h); + extern "C" void UnityDisplayManager_DisplayRenderingResolution(void* nativeDisplay, int* w, int* h); + extern "C" void UnityDisplayManager_DisplayRenderingBuffers(void* nativeDisplay, RenderSurfaceBase** colorBuffer, RenderSurfaceBase** depthBuffer); + extern "C" void UnityDisplayManager_SetRenderingResolution(void* nativeDisplay, int w, int h); + +#else + + inline int UnityDisplayManager_DisplayCount() + { + return 1; + } + inline bool UnityDisplayManager_DisplayAvailable(void*) + { + return true; + } + inline void UnityDisplayManager_DisplaySystemResolution(void*, int* w, int* h) + { + *w = GetScreenManager().GetWidth(); + *h = GetScreenManager().GetHeight(); + } + inline void UnityDisplayManager_DisplayRenderingResolution(void*, int* w, int* h) + { + *w = GetScreenManager().GetWidth(); + *h = GetScreenManager().GetHeight(); + } + inline void UnityDisplayManager_SetRenderingResolution(void*, int w, int h) + { + GetScreenManager().RequestResolution(w, h, GetScreenManager ().IsFullScreen (), 0); + } + inline void UnityDisplayManager_DisplayRenderingBuffers(void*, RenderSurfaceBase** color, RenderSurfaceBase** depth) + { + *color = *depth = 0; + } + +#endif -- cgit v1.1-26-g67d0