summaryrefslogtreecommitdiffstats
path: root/unityplugin/UnityEmulator
diff options
context:
space:
mode:
authorEgor Yusov <egor.yusov@gmail.com>2018-02-10 04:21:10 +0000
committerEgor Yusov <egor.yusov@gmail.com>2018-02-10 04:22:47 +0000
commite51eeb6902ac83c97a56987f4b999027490bc1ae (patch)
tree25b48e8d4631a63307b6342526b08577c508ea91 /unityplugin/UnityEmulator
parentFixed resize window issues in unity app (diff)
downloadDiligentEngine-e51eeb6902ac83c97a56987f4b999027490bc1ae.tar.gz
DiligentEngine-e51eeb6902ac83c97a56987f4b999027490bc1ae.zip
Reworked win32 and uwp cmake build rules
Diffstat (limited to 'unityplugin/UnityEmulator')
-rw-r--r--unityplugin/UnityEmulator/CMakeLists.txt32
-rw-r--r--unityplugin/UnityEmulator/include/UnityAppBase.h (renamed from unityplugin/UnityEmulator/include/UnityApp.h)6
-rw-r--r--unityplugin/UnityEmulator/src/UWP/UnityAppUWP.cpp12
-rw-r--r--unityplugin/UnityEmulator/src/UnityAppBase.cpp (renamed from unityplugin/UnityEmulator/src/UnityApp.cpp)22
-rw-r--r--unityplugin/UnityEmulator/src/Windows/UnityAppWin32.cpp10
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();