From 306a656c4e791024b045100aac8b0d1579734e48 Mon Sep 17 00:00:00 2001 From: hecomi Date: Sun, 20 Nov 2016 15:15:19 +0900 Subject: [PATCH] add gaze point analyzer for multiple monitors. --- .../Scenes/Multiple Monitors Roundly.unity | Bin 15312 -> 16560 bytes .../Examples/Scripts/GazePointAnalyzer.cs | 6 +- .../Scripts/MultipleMonitorAnalyzer.cs | 69 ++++++++++++++++++ .../Scripts/MultipleMonitorAnalyzer.cs.meta | 12 +++ Assets/uDesktopDuplication/Scripts/Texture.cs | 2 + 5 files changed, 86 insertions(+), 3 deletions(-) create mode 100644 Assets/uDesktopDuplication/Examples/Scripts/MultipleMonitorAnalyzer.cs create mode 100644 Assets/uDesktopDuplication/Examples/Scripts/MultipleMonitorAnalyzer.cs.meta diff --git a/Assets/uDesktopDuplication/Examples/Scenes/Multiple Monitors Roundly.unity b/Assets/uDesktopDuplication/Examples/Scenes/Multiple Monitors Roundly.unity index 901d1b4bcb5d5672234d56db8bdee4dd7ec7d535..a82f4e0df650b9b4fdc2c5115cb3ffefe0ad265f 100644 GIT binary patch delta 739 zcmcamzM+xPkAcDBECYkX1_lNOejxh;kY+H|Gto0jGh+Dn|NnnRKA^x~AY-4c!E}3O z`SeNGtfQawelv}0T;4WYb?ft6Gu)VRbk`nM0;=1!(a)X9cOe5qg9ebt0>lzP%)r6G zzzBpOaSN!pB$~K8R9p&8Ja}>;o48~$R8|H}ws7)7Hu1m)peQ2{%YkG)A$BcbW@zYx zip!&k&xMLBpoy=BiYre3$fjSPo>-L{ke``X;+C0Hl3K)&n_re1l$wm-mKLW%rBX7B zN-B}$^738FQsElQQgiZ?GfOIAii;A<-C<@kqyTx2WvNAp=|Ibh!CYUkMMB9X5UvZ% z@ZyasdkmR{7#KD`G*oAl1coNq*NhDR|ARbomE(>$h;EpyXe`b6VzRBVbZ7)C149B( z3>1+?VATu^H=ycv0OfLka-g^^VqgNY7#IS*=cI#Z4K@abS|AMyRhaofP`MS8CmKr& z1+X(P6aZyGam)g80rTX2#&W#OK<N-dMKLJ5Mfc zGP}v_$qHs%lNXufF|te+G*xC~-E3;=&kW?WS{QQ{f%O8NIeDYSWJb2lu9p0alM_r? yCM#G9Ffvazv=mnCKlIh+>=_?h5aznBYy-k)&z!M^xEAQ*$s4WIH-}i&FaiM7>b`pb delta 242 zcmdnc$atY#g@M7OoPojm0s{jBKaf2ENHdt~ndlj%88Q6(|NlQDF9XA7E0#TmjDnkg znyNE0PMoZ0F3wmm+0tBE_67?BLjh0&kOJcW|3R9sbKDUJ(H@fv&4sxFz2~HZcq>>Z zuQHeN)nEfMf!rK0hG+(); + } + + void Update() + { + var cursorMonitorId = uDesktopDuplication.Manager.cursorMonitorId; + for (int i = 0; i < creator_.monitors.Count; ++i) { + var info = creator_.monitors[i]; + var analyzer = + info.gameObject.GetComponent() ?? + info.gameObject.AddComponent(); + UpdateAnalyzer(analyzer); + if (info.uddTexture.monitorId == cursorMonitorId) { + gazePoint = analyzer.averagePos; + } + } + + if (drawGazePoint) DrawGazePoint(); + } + + void DrawGazePoint() + { + Debug.DrawLine(transform.position, gazePoint, Color.magenta); + } + + void UpdateAnalyzer(GazePointAnalyzer analyzer) + { + analyzer.moveRectFilter = moveRectFilter; + analyzer.mouseFilter = mouseFilter; + analyzer.dirtyRectFilter = dirtyRectFilter; + analyzer.noEventFilter = noEventFilter; + analyzer.velocityFilter = velocityFilter; + analyzer.drawAveragePos = drawAveragePos; + analyzer.drawMoveRects = drawMoveRects; + analyzer.drawDirtyRects = drawDirtyRects; + } +} diff --git a/Assets/uDesktopDuplication/Examples/Scripts/MultipleMonitorAnalyzer.cs.meta b/Assets/uDesktopDuplication/Examples/Scripts/MultipleMonitorAnalyzer.cs.meta new file mode 100644 index 0000000..3b899c6 --- /dev/null +++ b/Assets/uDesktopDuplication/Examples/Scripts/MultipleMonitorAnalyzer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: dbdfccef47068644b81b671bb4e6e166 +timeCreated: 1479620455 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/uDesktopDuplication/Scripts/Texture.cs b/Assets/uDesktopDuplication/Scripts/Texture.cs index ab33596..32858ff 100644 --- a/Assets/uDesktopDuplication/Scripts/Texture.cs +++ b/Assets/uDesktopDuplication/Scripts/Texture.cs @@ -53,8 +53,10 @@ public class Texture : MonoBehaviour { if (value) { material.EnableKeyword("BEND_ON"); + material.SetInt("_Bend", 1); } else { material.DisableKeyword("BEND_ON"); + material.SetInt("_Bend", 0); } } }