From 9287ef2f2dccfe221b5c50276ef991b707591e1d Mon Sep 17 00:00:00 2001 From: hecomi Date: Sun, 30 Oct 2016 21:20:31 +0900 Subject: [PATCH] simplify duplication code. --- .../Plugins/uDesktopDuplication.dll | Bin 20992 -> 20992 bytes .../uDesktopDuplication/main.cpp | 47 ++++++++---------- 2 files changed, 21 insertions(+), 26 deletions(-) diff --git a/Assets/uDesktopDuplication/Plugins/uDesktopDuplication.dll b/Assets/uDesktopDuplication/Plugins/uDesktopDuplication.dll index 91125cba3989b87310a86416247cde36d69ffd22..f3b16755ab84028382eec9dbe4adfd0fbcefc334 100644 GIT binary patch delta 9679 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 delta 9766 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 I^oHiY0UVhFCIA2c diff --git a/Plugins/uDesktopDuplication/uDesktopDuplication/main.cpp b/Plugins/uDesktopDuplication/uDesktopDuplication/main.cpp index 612bd42..6e7b858 100644 --- a/Plugins/uDesktopDuplication/uDesktopDuplication/main.cpp +++ b/Plugins/uDesktopDuplication/uDesktopDuplication/main.cpp @@ -14,8 +14,10 @@ namespace { struct Monitor { - IDXGIOutputDuplication* output = nullptr; + IDXGIOutputDuplication* deskDupl = nullptr; ID3D11Texture2D* texture = nullptr; + DXGI_OUTPUT_DESC outputDesc; + MONITORINFOEX monitorInfo; std::string name = ""; bool isPrimary = false; bool isPointerVisible = false; @@ -38,7 +40,7 @@ extern "C" { for (auto& monitor : g_monitors) { - monitor.output->Release(); + monitor.deskDupl->Release(); } g_monitors.clear(); } @@ -58,27 +60,18 @@ extern "C" IDXGIOutput* output; for (int j = 0; (adapter->EnumOutputs(j, &output) != DXGI_ERROR_NOT_FOUND); ++j) { - DXGI_OUTPUT_DESC outputDesc; - output->GetDesc(&outputDesc); - - MONITORINFOEX monitorInfo; - monitorInfo.cbSize = sizeof(MONITORINFOEX); - GetMonitorInfo(outputDesc.Monitor, &monitorInfo); - Monitor monitor; - monitor.name = monitorInfo.szDevice; - monitor.isPrimary = (monitorInfo.dwFlags == MONITORINFOF_PRIMARY); - monitor.width = monitorInfo.rcMonitor.right - monitorInfo.rcMonitor.left; - monitor.height = monitorInfo.rcMonitor.bottom - monitorInfo.rcMonitor.top; + + output->GetDesc(&monitor.outputDesc); + monitor.monitorInfo.cbSize = sizeof(MONITORINFOEX); + GetMonitorInfo(monitor.outputDesc.Monitor, &monitor.monitorInfo); auto device = g_unity->Get()->GetDevice(); - IDXGIOutput1* output1; - output1 = reinterpret_cast(output); - output1->DuplicateOutput(device, &monitor.output); + auto output1 = reinterpret_cast(output); + output1->DuplicateOutput(device, &monitor.deskDupl); + output->Release(); g_monitors.push_back(monitor); - - output->Release(); } adapter->Release(); @@ -109,12 +102,12 @@ extern "C" if (!DoesMonitorExist(id)) return; auto& monitor = g_monitors[id]; - if (monitor.output == nullptr || monitor.texture == nullptr) return; + if (monitor.deskDupl == nullptr || monitor.texture == nullptr) return; IDXGIResource* resource = nullptr; DXGI_OUTDUPL_FRAME_INFO frameInfo; - g_errorCode = monitor.output->AcquireNextFrame(g_timeout, &frameInfo, &resource); + g_errorCode = monitor.deskDupl->AcquireNextFrame(g_timeout, &frameInfo, &resource); switch (g_errorCode) { case S_OK: @@ -142,7 +135,7 @@ extern "C" if (g_errorCode != S_OK) { resource->Release(); - monitor.output->ReleaseFrame(); + monitor.deskDupl->ReleaseFrame(); return; } @@ -153,7 +146,7 @@ extern "C" resource->Release(); texture->Release(); - monitor.output->ReleaseFrame(); + monitor.deskDupl->ReleaseFrame(); } UNITY_INTERFACE_EXPORT UnityRenderingEvent UNITY_INTERFACE_API GetRenderEventFunc() @@ -174,25 +167,27 @@ extern "C" UNITY_INTERFACE_EXPORT void UNITY_INTERFACE_API GetName(int id, char* buf, int len) { if (!DoesMonitorExist(id)) return; - strcpy_s(buf, len, g_monitors[id].name.c_str()); + strcpy_s(buf, len, g_monitors[id].monitorInfo.szDevice); } UNITY_INTERFACE_EXPORT bool UNITY_INTERFACE_API IsPrimary(int id) { if (!DoesMonitorExist(id)) return false; - return g_monitors[id].isPrimary; + return g_monitors[id].monitorInfo.dwFlags == MONITORINFOF_PRIMARY; } UNITY_INTERFACE_EXPORT int UNITY_INTERFACE_API GetWidth(int id) { if (!DoesMonitorExist(id)) return -1; - return g_monitors[id].width; + const auto rect = g_monitors[id].monitorInfo.rcMonitor; + return rect.right - rect.left; } UNITY_INTERFACE_EXPORT int UNITY_INTERFACE_API GetHeight(int id) { if (!DoesMonitorExist(id)) return -1; - return g_monitors[id].height; + const auto rect = g_monitors[id].monitorInfo.rcMonitor; + return rect.bottom - rect.top; } UNITY_INTERFACE_EXPORT int UNITY_INTERFACE_API IsPointerVisible(int id)