summaryrefslogtreecommitdiffstats
path: root/unityplugin/UnityEmulator
diff options
context:
space:
mode:
authorEgor Yusov <egor.yusov@gmail.com>2018-02-09 16:48:56 +0000
committerEgor Yusov <egor.yusov@gmail.com>2018-02-09 16:48:56 +0000
commit63e4be9105dab8e11957facadb324bdf2ba23df7 (patch)
treeee8ecdc2d4fb5e34366c987cbae4ee4e641233f2 /unityplugin/UnityEmulator
parentReworked UWP app implementation (diff)
downloadDiligentEngine-63e4be9105dab8e11957facadb324bdf2ba23df7.tar.gz
DiligentEngine-63e4be9105dab8e11957facadb324bdf2ba23df7.zip
Fixed resize window issues in unity app
Diffstat (limited to 'unityplugin/UnityEmulator')
-rw-r--r--unityplugin/UnityEmulator/include/UnityGraphicsD3D11Emulator.h3
-rw-r--r--unityplugin/UnityEmulator/include/UnityGraphicsD3D12Emulator.h3
-rw-r--r--unityplugin/UnityEmulator/include/UnityGraphicsEmulator.h1
-rw-r--r--unityplugin/UnityEmulator/include/UnityGraphicsGLCoreES_Emulator.h3
-rw-r--r--unityplugin/UnityEmulator/src/UWP/UnityAppUWP.cpp1
-rw-r--r--unityplugin/UnityEmulator/src/UnityApp.cpp5
-rw-r--r--unityplugin/UnityEmulator/src/UnityGraphicsD3D11Emulator.cpp5
-rw-r--r--unityplugin/UnityEmulator/src/UnityGraphicsD3D12Emulator.cpp6
-rw-r--r--unityplugin/UnityEmulator/src/UnityGraphicsGLCoreES_Emulator.cpp6
9 files changed, 29 insertions, 4 deletions
diff --git a/unityplugin/UnityEmulator/include/UnityGraphicsD3D11Emulator.h b/unityplugin/UnityEmulator/include/UnityGraphicsD3D11Emulator.h
index a62c05d..5343617 100644
--- a/unityplugin/UnityEmulator/include/UnityGraphicsD3D11Emulator.h
+++ b/unityplugin/UnityEmulator/include/UnityGraphicsD3D11Emulator.h
@@ -4,7 +4,7 @@
#include "UnityGraphicsEmulator.h"
class UnityGraphicsD3D11Impl;
-class UnityGraphicsD3D11Emulator : public UnityGraphicsEmulator
+class UnityGraphicsD3D11Emulator final : public UnityGraphicsEmulator
{
public:
static UnityGraphicsD3D11Emulator& GetInstance();
@@ -23,6 +23,7 @@ public:
virtual bool SwapChainInitialized()override final;
void* GetD3D11Device();
void* GetDXGISwapChain();
+ virtual void GetBackBufferSize(unsigned int &Width, unsigned int &Height)override final;
private:
UnityGraphicsD3D11Emulator();
diff --git a/unityplugin/UnityEmulator/include/UnityGraphicsD3D12Emulator.h b/unityplugin/UnityEmulator/include/UnityGraphicsD3D12Emulator.h
index 839db5a..73c23c0 100644
--- a/unityplugin/UnityEmulator/include/UnityGraphicsD3D12Emulator.h
+++ b/unityplugin/UnityEmulator/include/UnityGraphicsD3D12Emulator.h
@@ -6,7 +6,7 @@
class UnityGraphicsD3D12Impl;
class IResourceStateTransitionHandler;
-class UnityGraphicsD3D12Emulator : public UnityGraphicsEmulator
+class UnityGraphicsD3D12Emulator final : public UnityGraphicsEmulator
{
public:
static UnityGraphicsD3D12Emulator& GetInstance();
@@ -26,6 +26,7 @@ public:
virtual bool SwapChainInitialized()override final;
void* GetD3D12Device();
void* GetDXGISwapChain();
+ virtual void GetBackBufferSize(unsigned int &Width, unsigned int &Height)override final;
private:
UnityGraphicsD3D12Emulator();
diff --git a/unityplugin/UnityEmulator/include/UnityGraphicsEmulator.h b/unityplugin/UnityEmulator/include/UnityGraphicsEmulator.h
index d362836..6364abd 100644
--- a/unityplugin/UnityEmulator/include/UnityGraphicsEmulator.h
+++ b/unityplugin/UnityEmulator/include/UnityGraphicsEmulator.h
@@ -28,6 +28,7 @@ public:
void RegisterDeviceEventCallback(IUnityGraphicsDeviceEventCallback callback);
void UnregisterDeviceEventCallback(IUnityGraphicsDeviceEventCallback callback);
void InvokeDeviceEventCallback(UnityGfxDeviceEventType eventType);
+ virtual void GetBackBufferSize(unsigned int &Width, unsigned int &Height) = 0;
private:
UnityGraphicsEmulator(const UnityGraphicsEmulator&) = delete;
diff --git a/unityplugin/UnityEmulator/include/UnityGraphicsGLCoreES_Emulator.h b/unityplugin/UnityEmulator/include/UnityGraphicsGLCoreES_Emulator.h
index 17f67f2..694f962 100644
--- a/unityplugin/UnityEmulator/include/UnityGraphicsGLCoreES_Emulator.h
+++ b/unityplugin/UnityEmulator/include/UnityGraphicsGLCoreES_Emulator.h
@@ -18,7 +18,7 @@
#endif
-class UnityGraphicsGLCoreES_Emulator : public UnityGraphicsEmulator
+class UnityGraphicsGLCoreES_Emulator final : public UnityGraphicsEmulator
{
public:
static UnityGraphicsGLCoreES_Emulator& GetInstance();
@@ -37,6 +37,7 @@ public:
static UnityGraphicsGL_Impl* GetGraphicsImpl();
virtual UnityGfxRenderer GetUnityGfxRenderer()override final;
virtual bool SwapChainInitialized()override final;
+ virtual void GetBackBufferSize(unsigned int &Width, unsigned int &Height)override final;
private:
UnityGraphicsGLCoreES_Emulator();
diff --git a/unityplugin/UnityEmulator/src/UWP/UnityAppUWP.cpp b/unityplugin/UnityEmulator/src/UWP/UnityAppUWP.cpp
index b5407b1..a6d3c3d 100644
--- a/unityplugin/UnityEmulator/src/UWP/UnityAppUWP.cpp
+++ b/unityplugin/UnityEmulator/src/UWP/UnityAppUWP.cpp
@@ -179,7 +179,6 @@ public:
{
InitScene();
m_SceneInitialized = true;
- OnWindowSizeChanged();
}
diff --git a/unityplugin/UnityEmulator/src/UnityApp.cpp b/unityplugin/UnityEmulator/src/UnityApp.cpp
index dc9626d..c26be33 100644
--- a/unityplugin/UnityEmulator/src/UnityApp.cpp
+++ b/unityplugin/UnityEmulator/src/UnityApp.cpp
@@ -175,6 +175,11 @@ void UnityApp::InitScene()
UnityPluginLoad(&m_GraphicsEmulator->GeUnityInterfaces());
RenderEventFunc = GetRenderEventFunc();
+
+ unsigned int SCWidth = 0;
+ unsigned int SCHeight = 0;
+ m_GraphicsEmulator->GetBackBufferSize(SCWidth, SCHeight);
+ m_Scene->OnWindowResize(SCWidth, SCHeight);
}
void UnityApp::Update(double CurrTime, double ElapsedTime)
diff --git a/unityplugin/UnityEmulator/src/UnityGraphicsD3D11Emulator.cpp b/unityplugin/UnityEmulator/src/UnityGraphicsD3D11Emulator.cpp
index 7eeca7a..b8e6be5 100644
--- a/unityplugin/UnityEmulator/src/UnityGraphicsD3D11Emulator.cpp
+++ b/unityplugin/UnityEmulator/src/UnityGraphicsD3D11Emulator.cpp
@@ -329,6 +329,11 @@ void* UnityGraphicsD3D11Emulator::GetDXGISwapChain()
return m_GraphicsImpl->GetDXGISwapChain();
}
+void UnityGraphicsD3D11Emulator::GetBackBufferSize(unsigned int &Width, unsigned int &Height)
+{
+ Width = m_GraphicsImpl->GetBackBufferWidth();
+ Height = m_GraphicsImpl->GetBackBufferHeight();
+}
static ID3D11Device* UNITY_INTERFACE_API UnityGraphicsD3D11_GetDevice()
{
diff --git a/unityplugin/UnityEmulator/src/UnityGraphicsD3D12Emulator.cpp b/unityplugin/UnityEmulator/src/UnityGraphicsD3D12Emulator.cpp
index 1d68f0a..fbcefdf 100644
--- a/unityplugin/UnityEmulator/src/UnityGraphicsD3D12Emulator.cpp
+++ b/unityplugin/UnityEmulator/src/UnityGraphicsD3D12Emulator.cpp
@@ -336,6 +336,12 @@ void* UnityGraphicsD3D12Emulator::GetDXGISwapChain()
return m_GraphicsImpl->GetDXGISwapChain();
}
+void UnityGraphicsD3D12Emulator::GetBackBufferSize(unsigned int &Width, unsigned int &Height)
+{
+ Width = m_GraphicsImpl->GetBackBufferWidth();
+ Height = m_GraphicsImpl->GetBackBufferHeight();
+}
+
CComPtr<ID3D12CommandAllocator> UnityGraphicsD3D12Impl::GetCommandAllocator()
{
if (m_CmdAllocator)
diff --git a/unityplugin/UnityEmulator/src/UnityGraphicsGLCoreES_Emulator.cpp b/unityplugin/UnityEmulator/src/UnityGraphicsGLCoreES_Emulator.cpp
index 0fceadc..0fd790f 100644
--- a/unityplugin/UnityEmulator/src/UnityGraphicsGLCoreES_Emulator.cpp
+++ b/unityplugin/UnityEmulator/src/UnityGraphicsGLCoreES_Emulator.cpp
@@ -51,6 +51,12 @@ void UnityGraphicsGLCoreES_Emulator::ResizeSwapChain(unsigned int Width, unsigne
m_GraphicsImpl->ResizeSwapchain(Width, Height);
}
+void UnityGraphicsGLCoreES_Emulator::GetBackBufferSize(unsigned int &Width, unsigned int &Height)
+{
+ Width = m_GraphicsImpl->GetBackBufferWidth();
+ Height = m_GraphicsImpl->GetBackBufferHeight();
+}
+
bool UnityGraphicsGLCoreES_Emulator::SwapChainInitialized()
{
return m_GraphicsImpl->GetContext() != NULL;