call AcquireNextFrame on isolated thread

This commit is contained in:
ousttrue
2016-12-28 02:12:03 +09:00
parent e6407d1c3b
commit f6ce875463
12 changed files with 484 additions and 19 deletions
@@ -45,6 +45,10 @@ public class DisplacementMapping : MonoBehaviour
case TargetMonitor.Next: ++id; break;
case TargetMonitor.Prev: --id; break;
}
if (uDesktopDuplication.Manager.monitorCount == 0)
{
return;
}
id = Mathf.Clamp(id, 0, uDesktopDuplication.Manager.monitorCount - 1);
var monitor = uDesktopDuplication.Manager.GetMonitor(id);
monitor.shouldBeUpdated = true;
+1 -1
View File
@@ -86,7 +86,7 @@ public static class Lib
[DllImport("uDesktopDuplication")]
public static extern void Finalize();
[DllImport("uDesktopDuplication")]
public static extern void Reinitialize();
public static extern void Reinitialize(bool useThread);
[DllImport("uDesktopDuplication")]
public static extern void Update();
[DllImport("uDesktopDuplication")]
@@ -57,6 +57,8 @@ public class Manager : MonoBehaviour
[SerializeField] int desktopDuplicationApiTimeout = 0;
[SerializeField] float retryReinitializationDuration = 1f;
[SerializeField]
bool useThread = false;
private Coroutine renderCoroutine_ = null;
private bool shouldReinitialize_ = false;
@@ -143,7 +145,7 @@ public class Manager : MonoBehaviour
public void Reinitialize()
{
Debug.Log("[uDD] Reinitialize");
Lib.Reinitialize();
Lib.Reinitialize(useThread);
CreateMonitors();
if (onReinitialized != null) {
onReinitialized();