diff options
| author | Egor Yusov <egor.yusov@gmail.com> | 2018-02-10 04:21:10 +0000 |
|---|---|---|
| committer | Egor Yusov <egor.yusov@gmail.com> | 2018-02-10 04:22:47 +0000 |
| commit | e51eeb6902ac83c97a56987f4b999027490bc1ae (patch) | |
| tree | 25b48e8d4631a63307b6342526b08577c508ea91 /unityplugin/UnityEmulator | |
| parent | Fixed resize window issues in unity app (diff) | |
| download | DiligentEngine-e51eeb6902ac83c97a56987f4b999027490bc1ae.tar.gz DiligentEngine-e51eeb6902ac83c97a56987f4b999027490bc1ae.zip | |
Reworked win32 and uwp cmake build rules
Diffstat (limited to 'unityplugin/UnityEmulator')
| -rw-r--r-- | unityplugin/UnityEmulator/CMakeLists.txt | 32 | ||||
| -rw-r--r-- | unityplugin/UnityEmulator/include/UnityAppBase.h (renamed from unityplugin/UnityEmulator/include/UnityApp.h) | 6 | ||||
| -rw-r--r-- | unityplugin/UnityEmulator/src/UWP/UnityAppUWP.cpp | 12 | ||||
| -rw-r--r-- | unityplugin/UnityEmulator/src/UnityAppBase.cpp (renamed from unityplugin/UnityEmulator/src/UnityApp.cpp) | 22 | ||||
| -rw-r--r-- | unityplugin/UnityEmulator/src/Windows/UnityAppWin32.cpp | 10 |
5 files changed, 45 insertions, 37 deletions
diff --git a/unityplugin/UnityEmulator/CMakeLists.txt b/unityplugin/UnityEmulator/CMakeLists.txt index 20f2347..5e7cb42 100644 --- a/unityplugin/UnityEmulator/CMakeLists.txt +++ b/unityplugin/UnityEmulator/CMakeLists.txt @@ -10,7 +10,6 @@ set(INCLUDE include/DiligentGraphicsAdapter.h
include/ResourceStateTransitionHandler.h
include/UnityGraphicsEmulator.h
- include/UnityApp.h
include/UnitySceneBase.h
)
@@ -50,42 +49,51 @@ if(GLES_SUPPORTED) endif()
if(PLATFORM_WIN32)
- list(APPEND SOURCE src/Windows/UnityAppWin32.cpp)
- list(APPEND SOURCE src/UnityApp.cpp)
-
+ list(APPEND SOURCE src/Windows/UnityAppWin32.cpp src/UnityAppBase.cpp)
+ list(APPEND INCLUDE include/UnityAppBase.h)
+
elseif(PLATFORM_UNIVERSAL_WINDOWS)
# Windows Runtime types cannot be included into static libraries
# https://social.msdn.microsoft.com/Forums/en-US/269db513-64ef-4817-a025-43954f614eb3/lnk4264-why-are-static-libraries-not-recommended-when-authoring-windows-runtime-types?forum=winappswithnativecode
# So as a workaround, we will include all source files into the target app project
- function(get_emulator_uwp_source UWP_SOURCE_IN UWP_INCLUDE_IN UWP_INCLUDE_DIR_IN)
+ function(append_emulator_uwp_source TARGET_NAME)
get_target_property(EMULATOR_SOURCE_DIR UnityEmulator SOURCE_DIR)
- set(UWP_SOURCE
- ${UWP_SOURCE_IN}
+ set(EMULATOR_UWP_SOURCE
${EMULATOR_SOURCE_DIR}/src/UWP/UnityAppUWP.cpp
- ${EMULATOR_SOURCE_DIR}/src/UnityApp.cpp
- PARENT_SCOPE
+ ${EMULATOR_SOURCE_DIR}/src/UnityAppBase.cpp
+ )
+ set(EMULATOR_UWP_INCLUDE
+ ${EMULATOR_SOURCE_DIR}/include/UnityAppBase.h
)
- endfunction(get_emulator_uwp_source)
+
+ target_sources(${TARGET_NAME} PRIVATE ${EMULATOR_UWP_SOURCE} ${EMULATOR_UWP_INCLUDE})
+ source_group("src\\UnityEmulator" FILES ${EMULATOR_UWP_SOURCE})
+ source_group("include\\UnityEmulator" FILES ${EMULATOR_UWP_INCLUDE})
+ endfunction()
elseif(PLATFORM_ANDROID)
list(APPEND SOURCE
src/Android/AndroidMainImpl.cpp
- src/UnityApp.cpp
+ src/UnityAppBase.cpp
)
+ list(APPEND INCLUDE include/UnityAppBase.h)
elseif(PLATFORM_LINUX)
list(APPEND SOURCE
src/Linux/LinuxMain.cpp
- src/UnityApp.cpp
+ src/UnityAppBase.cpp
)
+ list(APPEND INCLUDE include/UnityAppBase.h)
elseif(PLATFORM_MACOS)
list(APPEND SOURCE
src/Linux/LinuxMain.cpp
src/MacOS/Renderer.cpp
+ src/UnityAppBase.cpp
)
list(APPEND INCLUDE
src/MacOS/Renderer.h
+ include/UnityAppBase.h
)
set_source_files_properties(src/UnityGraphicsGLCore_Impl.cpp
PROPERTIES COMPILE_FLAGS "-x objective-c++"
diff --git a/unityplugin/UnityEmulator/include/UnityApp.h b/unityplugin/UnityEmulator/include/UnityAppBase.h index cfc25e2..10945f1 100644 --- a/unityplugin/UnityEmulator/include/UnityApp.h +++ b/unityplugin/UnityEmulator/include/UnityAppBase.h @@ -33,11 +33,11 @@ typedef void* (*TLoadPluginFunction)(const char *FunctionName); -class UnityApp : public NativeAppBase +class UnityAppBase : public NativeAppBase { public: - UnityApp(); - virtual ~UnityApp()override; + UnityAppBase(); + virtual ~UnityAppBase()override; virtual void ProcessCommandLine(const char *CmdLine)override; virtual const char* GetAppTitle()const override { return m_AppTitle.c_str(); } diff --git a/unityplugin/UnityEmulator/src/UWP/UnityAppUWP.cpp b/unityplugin/UnityEmulator/src/UWP/UnityAppUWP.cpp index a6d3c3d..8996e51 100644 --- a/unityplugin/UnityEmulator/src/UWP/UnityAppUWP.cpp +++ b/unityplugin/UnityEmulator/src/UWP/UnityAppUWP.cpp @@ -21,7 +21,7 @@ * of the possibility of such damages. */ -#include "UnityApp.h" +#include "UnityAppBase.h" #include "IUnityInterface.h" #include "UnityGraphicsD3D11Emulator.h" #include "UnityGraphicsD3D12Emulator.h" @@ -33,7 +33,7 @@ using namespace Diligent; -class UnityAppUWP final : public UnityApp +class UnityAppUWP final : public UnityAppBase { public: UnityAppUWP() @@ -60,7 +60,7 @@ public: { return; } - UnityApp::Render(); + UnityAppBase::Render(); m_bFrameReady = true; } @@ -224,14 +224,14 @@ NativeAppBase* CreateApplication() HMODULE g_DLLHandle; -void* UnityApp::LoadPluginFunction(const char* FunctionName) +void* UnityAppBase::LoadPluginFunction(const char* FunctionName) { auto Func = GetProcAddress(g_DLLHandle, FunctionName); VERIFY(Func != nullptr, "Failed to import plugin function \"", FunctionName, "\"."); return Func; } -bool UnityApp::LoadPlugin() +bool UnityAppBase::LoadPlugin() { std::string LibName = m_Scene->GetPluginName(); @@ -278,7 +278,7 @@ bool UnityApp::LoadPlugin() return true; } -void UnityApp::UnloadPlugin() +void UnityAppBase::UnloadPlugin() { m_GraphicsEmulator->InvokeDeviceEventCallback(kUnityGfxDeviceEventShutdown); UnityPluginUnload(); diff --git a/unityplugin/UnityEmulator/src/UnityApp.cpp b/unityplugin/UnityEmulator/src/UnityAppBase.cpp index c26be33..9a2a3df 100644 --- a/unityplugin/UnityEmulator/src/UnityApp.cpp +++ b/unityplugin/UnityEmulator/src/UnityAppBase.cpp @@ -21,7 +21,7 @@ * of the possibility of such damages. */ -#include "UnityApp.h" +#include "UnityAppBase.h" #include "IUnityInterface.h" #if D3D11_SUPPORTED @@ -39,19 +39,19 @@ # include "DiligentGraphicsAdapterGL.h" #endif -#include "UnityApp.h" +#include "UnityAppBase.h" #include "StringTools.h" #include "Errors.h" using namespace Diligent; -UnityApp::UnityApp() : +UnityAppBase::UnityAppBase() : m_Scene(CreateScene()) { m_AppTitle = m_Scene->GetSceneName(); } -UnityApp::~UnityApp() +UnityAppBase::~UnityAppBase() { m_Scene->OnPluginUnload(); m_Scene.reset(); @@ -63,7 +63,7 @@ UnityApp::~UnityApp() -void UnityApp::ProcessCommandLine(const char *CmdLine) +void UnityAppBase::ProcessCommandLine(const char *CmdLine) { const auto* Key = "mode="; const auto *pos = strstr(CmdLine, Key); @@ -102,7 +102,7 @@ void UnityApp::ProcessCommandLine(const char *CmdLine) } } -void UnityApp::InitGraphics(void *NativeWindowHandle, int WindowWidth, int WindowHeight) +void UnityAppBase::InitGraphics(void *NativeWindowHandle, int WindowWidth, int WindowHeight) { switch (m_DeviceType) { @@ -157,7 +157,7 @@ void UnityApp::InitGraphics(void *NativeWindowHandle, int WindowWidth, int Windo } } -void UnityApp::InitScene() +void UnityAppBase::InitScene() { m_Scene->SetDiligentGraphicsAdapter(m_DiligentGraphics.get()); m_Scene->OnGraphicsInitialized(); @@ -182,12 +182,12 @@ void UnityApp::InitScene() m_Scene->OnWindowResize(SCWidth, SCHeight); } -void UnityApp::Update(double CurrTime, double ElapsedTime) +void UnityAppBase::Update(double CurrTime, double ElapsedTime) { m_Scene->Update(CurrTime, ElapsedTime); } -void UnityApp::Render() +void UnityAppBase::Render() { m_GraphicsEmulator->BeginFrame(); m_DiligentGraphics->BeginFrame(); @@ -198,12 +198,12 @@ void UnityApp::Render() m_GraphicsEmulator->EndFrame(); } -void UnityApp::Present() +void UnityAppBase::Present() { m_GraphicsEmulator->Present(); } -void UnityApp::Resize(int width, int height) +void UnityAppBase::Resize(int width, int height) { if (m_GraphicsEmulator) { diff --git a/unityplugin/UnityEmulator/src/Windows/UnityAppWin32.cpp b/unityplugin/UnityEmulator/src/Windows/UnityAppWin32.cpp index 8b56b4e..d128b8c 100644 --- a/unityplugin/UnityEmulator/src/Windows/UnityAppWin32.cpp +++ b/unityplugin/UnityEmulator/src/Windows/UnityAppWin32.cpp @@ -25,13 +25,13 @@ #include <Windows.h> #include "UnityGraphicsEmulator.h" -#include "UnityApp.h" +#include "UnityAppBase.h" #include "IUnityInterface.h" #include "Errors.h" HMODULE g_DLLHandle; -class UnityAppWin32 : public UnityApp +class UnityAppWin32 : public UnityAppBase { public: virtual void OnWindowCreated(HWND hWnd, LONG WindowWidth, LONG WindowHeight)override final @@ -46,14 +46,14 @@ NativeAppBase* CreateApplication() return new UnityAppWin32(); } -void* UnityApp::LoadPluginFunction(const char* FunctionName) +void* UnityAppBase::LoadPluginFunction(const char* FunctionName) { auto Func = GetProcAddress(g_DLLHandle, FunctionName); VERIFY( Func != nullptr, "Failed to import plugin function \"", FunctionName, "\"." ); return Func; } -bool UnityApp::LoadPlugin() +bool UnityAppBase::LoadPlugin() { std::string LibName = m_Scene->GetPluginName(); #if _WIN64 @@ -89,7 +89,7 @@ bool UnityApp::LoadPlugin() return true; } -void UnityApp::UnloadPlugin() +void UnityAppBase::UnloadPlugin() { m_GraphicsEmulator->InvokeDeviceEventCallback(kUnityGfxDeviceEventShutdown); UnityPluginUnload(); |
