From 73018f671a60b4a5f4402ae156f325d36c2b5839 Mon Sep 17 00:00:00 2001 From: hecomi Date: Sun, 30 Oct 2016 19:35:00 +0900 Subject: [PATCH] add error code getter. --- .../Examples/Scenes/Toggle Monitors.unity | Bin 18664 -> 19768 bytes .../Plugins/uDesktopDuplication.dll | Bin 20480 -> 20992 bytes Assets/uDesktopDuplication/Scripts/Lib.cs | 2 ++ .../uDesktopDuplication/main.cpp | 15 ++++++++++----- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/Assets/uDesktopDuplication/Examples/Scenes/Toggle Monitors.unity b/Assets/uDesktopDuplication/Examples/Scenes/Toggle Monitors.unity index a9cf932c70ffda618dd551f18f380a4f6e002a97..8ba08577b9f3ab3dc6e4ea87f9e55bc3e179d2c3 100644 GIT binary patch delta 624 zcmaDck#WZ?Mn47yCus%-Uke5X27Vyh07x^K>Y3;nrWrE)`~UwxqaaY=FOb3T;`f#) zZ?=_Jf)pPWYECY8dSq~D{qLR|2{wl{mImIwBneb!u+h(%NsN(!k>MT#LxToTgawEt zfS7?}vV(#adr4+)YJO?SMimwtM)A#>HrhmdllAPR3}5|R}G;gA-GaD!@ zO4KJex*1Gf=fO5vz-`UsHBLNQuplb}yA=_smUdiUpcu6!eR#M yM+T;-@{gQ=d0o?)6H!@vLk|1$zbHs4@kv0)V1 zeAlj$$$~4QiM(bi3%Y%XlCB1-`2tO1D1jhF8 zrvy)h=z`V+B8M>0tYT%Xqo{M^hOP~a9ZQ124N3+T@#VVISW^Vp4v-GCgm2e51&Ke6 zZ!jJi5FD(6cFq%GiF>9kjBJQ5UEImhPRxIePQ&7 z!{q2a;+k5(7l-BPcaiAN*ulHQtPAf@g;s*vkGk@u!6sAiO+8f@m7wYVljIjm$m$bI z72kGyF@jm|7?pe(HvVqdRYB$_#YW*UPYAaP2YGpTsb!T&O*Gr9B)=fHnxw&&KyaEr z7=DM)%g=@9W}k0kZ0f>wS)M>ar{9K5Wy%d*|8e8M!`u;(mAD^j=}`5*eNu(L*ycM& zB)?&A8-Fk=#bNY1G4D--VS%N-+pjG3&L3e*2h&H4eR`-R@4x7ovF|$H6OrxoiB^QE z%ViG?82f&MM*0KB{-Z!|kNs|;d9VS!9JG}2vk|s%pLk{^WBgh~hCZp8h9Dl|HvL_m zwbx`>^6$0xq8g2Bhg3Qd95zDOd1L^(Q5uIF^ZT)VY!@MA>*3$hwmMy#o7RUEk zQuqWcr&oM8+Hsy9y}`t9;VJ5=X0lK-vXAw%fE$08~fI_a0ObJQJx{o=v~_!5ex zum9x)`Na=O;Xl4Ke|)KbRN~>r4BFcOo7}OR^=GSDN07_)iD% zxA25GYs4Of&*Qam1^U$r|9{zhYupjUD2v}6W0Dwa_K#sHZrsc#<1^#`>t?j}MyPqo zUwHaabEAG2wD8%@Tg$FL*<8pAa*AJlQM=jGs%HAOA%Sa^3OQQJEPVMhC=CYIuI?I@emL zgY#l34|au>1U`EJH$^+?G8CQhvA}0{Nq$Q;Kag6gyI#%DrzR$TSK{Up}g-u zA(dK&d0u*!!1=QD-zB^PJ?n}(903SM;rba9_wvGw8vT0Qk?7!ZzBMD+T&N0(fM8QJ zInCw&p0QkT@u`eb$Db=0D?QsE@Pw5HK5Lc7ed2#Z6WsE(EW3YtWdM2JTj%HXnMpzy zUzd5i&_4X@%qT%9#s39m2?& z^iKgA@*=7^7ADY(U`F5WH=HVg!PgvS4QT}&rlTPxYK|nJi%iCHc#l-kt>SLGbqx}N z8#6Ck{PC#nAHIUHrE+6wKpI?S?~wc_vDx|EwhEz>|I%g`8u_>_D|a;_NxnG}QiXc2 zz};7m`&?{NEcJS@#oUmcs{7Q;Z_3VeX8g?>=9wB-%se(bMd;@P+4))PXsUgJsZ z9Tn*y_}cAy>aP{SYx$|{n{}UL^0b`H;6vao_qs`&M7;S}A!AI(W(T-tjQU^g`L#;1eI>(e~;r34V=z zr@B&ho@d5sBQk-pgY`s{BYg7so%XWiFR^^}#@Eg#+;{Jo*gRKl4eQBYvd=3@hU^{J zkBJdr=3s6wHwLXfQGnEC_KsV}#6J}=hF&wDc(I7bIx=-17x5y;JfWC(IMRd-yvLCu z+|QqIxP=A$4~{k=mFMSL%il+yry;v#%Q3J>K~a~_rUh(bK^Y8ql1w5dULgU%dRl92 zR15FT&8ev`grRn{dn;aF$+D$}0{I)0C10aSw%8&01JXR=dsTk0#j46KelE9W)7u5) z-)@(ruO_i~kCBKyupT?%qRacW&~1{ubuS@hux{kZmtwFCvWvO%#L{3s#sapqvF4LK9_MTul8ck4)0ASuX>Y2~|8(X3LwFDl<5<@>1e?Nh$nmG9# zk%oC1zM(aw*W~}v;+)j*4Fx@ny`m|8_18UPA8QpaYItCEs7opaH2GBxpV9C&&A&&J zJ2Y(2Fk3@CA^qaJ%x#59H@&D;3pMhn)~%4-YGS=~SX%i=;nv6tMXI!!R~I>FNn47t zW=W3}IfZt9xagZTq2Hx+F?53t;5~DoOpP6~Vb8JzkR4Agd--46aNOBADp$c)HDeo& zE`C;L+C8=Xj~ljExgYuTgeAHI89;Y0PdkZi}51vmTsde0@cZF1?&TRI#Aig`Tv+NQQ0T2_FUql2m>f zHHQ)alI;QzaoBDAYDJdCl*(8xNRNlI4O&I!g_TW~03L3aKx;LNBJ;t@G*RVVs7%63 z|^ZQ?#gVPb2jN5IH$dvcQ6R1BJDUD~fpnXsMCn*m zNq8%b&4sb0M9*Q-iy~UXahVdhI3u%9l$5;>O1^82mObutLWk#0TnfP(SHgiYF z?>u~7&S&g6{9fkIR(pg=?x<-J&hUS(aSD65P-}+fg_<^@ig-_G*B)7+_KR*6qAJMS zK>I-lv3k}-#wM|?O%|*kcoTF1$diz_LGA^1K*xa03_IvU)SUu-0h)vT7Y#}R<$x+c z3tL${YXx%~XfxM%>GrO|nBW(jr8~JA|4M@2z%1P~bXCx8R&-W1X#A}>G*Hq( z36(u-z_}l>rT*g{_&d1=;=Xea44+>RA->X3rt=J8+YT(l_5uDHv==;WYY*rEcuH2= zQW$#`JfTiYNwd=vr70iCgoH%M(va-I6Hb7vs5=R~p3Ybq>G6{>2MMg933qid82V}I zqQ-!s%tpxZ&fbU$gx5iR;0d{vvB$s<0TVJN7$r z6X7zu2R($)0bwWTWAJ^z0EiMV;Z+a?x&|!91w=eyqsB|XZ5mJ5uki!GDNu3?V;6zx z_+JLqB`ntXVh@;~fT*z^U?Z|%3@S*#3qH*irOU|0owsszEo?*q1$B0qsA zybna990Ifb14u7ttQtgh=L4SvU2DPm(;e=tz_V#N8UU^Y zT|r}XWz%)dP?>PQ#?w_vS88vwigao122c0|C=7K8mCFfr3F!i&ID|52KYWxj{KC?< G@c##XviD^G delta 6125 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 J7uq_*{~Ns@=GFiJ diff --git a/Assets/uDesktopDuplication/Scripts/Lib.cs b/Assets/uDesktopDuplication/Scripts/Lib.cs index 2016a75..9a5564c 100644 --- a/Assets/uDesktopDuplication/Scripts/Lib.cs +++ b/Assets/uDesktopDuplication/Scripts/Lib.cs @@ -29,6 +29,8 @@ public static class Lib public static extern int GetPointerY(int id); [DllImport("uDesktopDuplication")] public static extern int SetTexturePtr(int id, IntPtr ptr); + [DllImport("uDesktopDuplication")] + public static extern int GetErrorCode(); public static string GetName(int id) { diff --git a/Plugins/uDesktopDuplication/uDesktopDuplication/main.cpp b/Plugins/uDesktopDuplication/uDesktopDuplication/main.cpp index 7186f83..612bd42 100644 --- a/Plugins/uDesktopDuplication/uDesktopDuplication/main.cpp +++ b/Plugins/uDesktopDuplication/uDesktopDuplication/main.cpp @@ -27,6 +27,7 @@ namespace IUnityInterfaces* g_unity = nullptr; int g_timeout = 10; + HRESULT g_errorCode = 0; std::vector g_monitors; } @@ -110,12 +111,11 @@ extern "C" if (monitor.output == nullptr || monitor.texture == nullptr) return; - HRESULT hr; IDXGIResource* resource = nullptr; DXGI_OUTDUPL_FRAME_INFO frameInfo; - hr = monitor.output->AcquireNextFrame(g_timeout, &frameInfo, &resource); - switch (hr) + g_errorCode = monitor.output->AcquireNextFrame(g_timeout, &frameInfo, &resource); + switch (g_errorCode) { case S_OK: { @@ -138,8 +138,8 @@ extern "C" monitor.pointerY = frameInfo.PointerPosition.Position.y; ID3D11Texture2D* texture; - hr = resource->QueryInterface(__uuidof(ID3D11Texture2D), reinterpret_cast(&texture)); - if (hr != S_OK) + g_errorCode = resource->QueryInterface(__uuidof(ID3D11Texture2D), reinterpret_cast(&texture)); + if (g_errorCode != S_OK) { resource->Release(); monitor.output->ReleaseFrame(); @@ -218,4 +218,9 @@ extern "C" if (!DoesMonitorExist(id)) return; g_monitors[id].texture = reinterpret_cast(texture); } + + UNITY_INTERFACE_EXPORT int UNITY_INTERFACE_API GetErrorCode() + { + return static_cast(g_errorCode); + } } \ No newline at end of file