call AcquireNextFrame on isolated thread
This commit is contained in:
@@ -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;
|
||||
|
||||
Binary file not shown.
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user