diff --git a/.gitignore b/.gitignore index 0f623f5..0c03a10 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ /[Ll]ibrary/ /[Tt]emp/ /[Oo]bj/ +/[Ll]ogs/ /[Bb]uild/ /[Ww]iki/ /[Mm]isc/ diff --git a/Assets/uDesktopDuplication/Editor/Resources/Images/uDD_Cursor.png.meta b/Assets/uDesktopDuplication/Editor/Resources/Images/uDD_Cursor.png.meta index ebdd868..2fdbccd 100644 --- a/Assets/uDesktopDuplication/Editor/Resources/Images/uDD_Cursor.png.meta +++ b/Assets/uDesktopDuplication/Editor/Resources/Images/uDD_Cursor.png.meta @@ -1,17 +1,18 @@ fileFormatVersion: 2 guid: 89616e59e1cccb346bd4e959257990ca -timeCreated: 1477555207 -licenseType: Pro TextureImporter: - fileIDToRecycleName: {} - serializedVersion: 2 + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 mipmaps: mipMapMode: 0 enableMipMap: 0 + sRGBTexture: 1 linearTexture: 0 - correctGamma: 0 fadeOut: 0 borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 mipMapFadeDistanceStart: 1 mipMapFadeDistanceEnd: 3 bumpmap: @@ -20,40 +21,71 @@ TextureImporter: heightScale: 0.25 normalMapFilter: 0 isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 grayScaleToAlpha: 0 - generateCubemap: 0 + generateCubemap: 6 cubemapConvolution: 0 - cubemapConvolutionSteps: 7 - cubemapConvolutionExponent: 1.5 seamlessCubemap: 0 textureFormat: -1 maxTextureSize: 2048 textureSettings: + serializedVersion: 2 filterMode: 0 aniso: 1 - mipBias: -1 - wrapMode: 1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: 1 nPOTScale: 0 lightmap: 0 - rGBM: 0 compressionQuality: 50 - allowsAlphaSplitting: 0 spriteMode: 1 spriteExtrude: 1 spriteMeshType: 1 alignment: 0 spritePivot: {x: 0.5, y: 0.5} - spriteBorder: {x: 0, y: 0, z: 0, w: 0} spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 alphaIsTransparency: 1 spriteTessellationDetail: -1 textureType: 8 - buildTargetSettings: [] + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 spriteSheet: serializedVersion: 2 sprites: [] outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 userData: assetBundleName: assetBundleVariant: diff --git a/Assets/uDesktopDuplication/Plugins/x86/uDesktopDuplication.dll b/Assets/uDesktopDuplication/Plugins/x86/uDesktopDuplication.dll index 88ee6b5..14a9be3 100644 Binary files a/Assets/uDesktopDuplication/Plugins/x86/uDesktopDuplication.dll and b/Assets/uDesktopDuplication/Plugins/x86/uDesktopDuplication.dll differ diff --git a/Assets/uDesktopDuplication/Plugins/x86_64/uDesktopDuplication.dll b/Assets/uDesktopDuplication/Plugins/x86_64/uDesktopDuplication.dll index 5e18314..6e2b2d1 100644 Binary files a/Assets/uDesktopDuplication/Plugins/x86_64/uDesktopDuplication.dll and b/Assets/uDesktopDuplication/Plugins/x86_64/uDesktopDuplication.dll differ diff --git a/Plugins/uDesktopDuplication/uDesktopDuplication/Cursor.cpp b/Plugins/uDesktopDuplication/uDesktopDuplication/Cursor.cpp index e5d8baa..0679bbd 100644 --- a/Plugins/uDesktopDuplication/uDesktopDuplication/Cursor.cpp +++ b/Plugins/uDesktopDuplication/uDesktopDuplication/Cursor.cpp @@ -161,7 +161,7 @@ void Cursor::UpdateTexture( if (capturedImageRight >= desktopImageWidth) { - capturedImageWidth -= capturedImageRight - desktopImageWidth; + capturedImageWidth -= capturedImageRight - desktopImageWidth + 1; capturedImageRight = desktopImageWidth - 1; } @@ -174,7 +174,7 @@ void Cursor::UpdateTexture( if (capturedImageBottom >= desktopImageHeight) { - capturedImageHeight -= capturedImageBottom - desktopImageHeight; + capturedImageHeight -= capturedImageBottom - desktopImageHeight + 1; capturedImageBottom = desktopImageHeight - 1; } @@ -193,12 +193,7 @@ void Cursor::UpdateTexture( return; } - if (capturedImageWidth == 0 || capturedImageHeight == 0) - { - return; - } - - capturedImageArea_ = D3D11_BOX + capturedImageArea_ = { static_cast(capturedImageLeft), static_cast(capturedImageTop), @@ -208,12 +203,17 @@ void Cursor::UpdateTexture( 1 }; + if (capturedImageWidth == 0 || capturedImageHeight == 0) + { + return; + } + // Create texture for capturing desktop image ComPtr texture; { D3D11_TEXTURE2D_DESC desc; - desc.Width = capturedImageWidth; - desc.Height = capturedImageHeight; + desc.Width = cursorImageWidth; + desc.Height = cursorImageHeight; desc.MipLevels = 1; desc.ArraySize = 1; desc.Format = DXGI_FORMAT_B8G8R8A8_UNORM; @@ -257,10 +257,6 @@ void Cursor::UpdateTexture( const auto desktop32 = reinterpret_cast(mappedSurface.pBits); const UINT desktopPitch = mappedSurface.Pitch / sizeof(UINT); - // Rotate cursor image to match the monitor orientation - Buffer rotatedBuffer_; - rotatedBuffer_.ExpandIfNeeded(buffer_.Size()); - for (int y = 0; y < capturedImageHeight; ++y) { for (int x = 0; x < capturedImageWidth; ++x) @@ -382,6 +378,8 @@ void Cursor::Draw(const Microsoft::WRL::ComPtr& texture) } const auto capturedImageWidth = capturedImageArea_.right - capturedImageArea_.left; + if (capturedImageWidth == 0) return; + ComPtr context; GetUnityDevice()->GetImmediateContext(&context); context->UpdateSubresource(texture.Get(), 0, &capturedImageArea_, bgraBuffer_.Get(), capturedImageWidth * 4, 0); diff --git a/Plugins/uDesktopDuplication/uDesktopDuplication/uDesktopDuplication.vcxproj b/Plugins/uDesktopDuplication/uDesktopDuplication/uDesktopDuplication.vcxproj index 551fffd..8e82ad3 100644 --- a/Plugins/uDesktopDuplication/uDesktopDuplication/uDesktopDuplication.vcxproj +++ b/Plugins/uDesktopDuplication/uDesktopDuplication/uDesktopDuplication.vcxproj @@ -89,7 +89,8 @@ Level3 Disabled - true + false + MultiThreadedDebug copy /Y "$(SolutionDir)$(Platform)\$(Configuration)\$(TargetFileName)" "$(SolutionDir)..\..\Assets\$(ProjectName)\Plugins\x86_64" @@ -103,7 +104,8 @@ Level3 Disabled - true + false + MultiThreadedDebug copy /Y "$(SolutionDir)$(Platform)\$(Configuration)\$(TargetFileName)" "$(SolutionDir)..\..\Assets\$(ProjectName)\Plugins\x86" @@ -118,8 +120,9 @@ Full true true - true + false AnySuitable + MultiThreaded true @@ -137,8 +140,9 @@ Full true true - true + false AnySuitable + MultiThreaded true diff --git a/ProjectSettings/EditorSettings.asset b/ProjectSettings/EditorSettings.asset index a49719a..2bc5990 100644 --- a/ProjectSettings/EditorSettings.asset +++ b/ProjectSettings/EditorSettings.asset @@ -3,14 +3,33 @@ --- !u!159 &1 EditorSettings: m_ObjectHideFlags: 0 - serializedVersion: 4 + serializedVersion: 9 m_ExternalVersionControlSupport: Hidden Meta Files m_SerializationMode: 2 + m_LineEndingsForNewScripts: 1 m_DefaultBehaviorMode: 0 + m_PrefabRegularEnvironment: {fileID: 0} + m_PrefabUIEnvironment: {fileID: 0} m_SpritePackerMode: 0 m_SpritePackerPaddingPower: 1 - m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd + m_EtcTextureCompressorBehavior: 0 + m_EtcTextureFastCompressor: 2 + m_EtcTextureNormalCompressor: 2 + m_EtcTextureBestCompressor: 5 + m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmref m_ProjectGenerationRootNamespace: - m_UserGeneratedProjectSuffix: m_CollabEditorSettings: inProgressEnabled: 1 + m_EnableTextureStreamingInEditMode: 1 + m_EnableTextureStreamingInPlayMode: 1 + m_AsyncShaderCompilation: 1 + m_EnterPlayModeOptionsEnabled: 0 + m_EnterPlayModeOptions: 3 + m_ShowLightmapResolutionOverlay: 1 + m_UseLegacyProbeSampleCount: 1 + m_AssetPipelineMode: 1 + m_CacheServerMode: 0 + m_CacheServerEndpoint: + m_CacheServerNamespacePrefix: default + m_CacheServerEnableDownload: 1 + m_CacheServerEnableUpload: 1 diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt index 064c3ce..e1506f9 100644 --- a/ProjectSettings/ProjectVersion.txt +++ b/ProjectSettings/ProjectVersion.txt @@ -1 +1,2 @@ -m_EditorVersion: 2018.2.20f1 +m_EditorVersion: 2019.3.1f1 +m_EditorVersionWithRevision: 2019.3.1f1 (89d6087839c2) diff --git a/ProjectSettings/VFXManager.asset b/ProjectSettings/VFXManager.asset new file mode 100644 index 0000000..3a95c98 --- /dev/null +++ b/ProjectSettings/VFXManager.asset @@ -0,0 +1,12 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!937362698 &1 +VFXManager: + m_ObjectHideFlags: 0 + m_IndirectShader: {fileID: 0} + m_CopyBufferShader: {fileID: 0} + m_SortShader: {fileID: 0} + m_StripUpdateShader: {fileID: 0} + m_RenderPipeSettingsPath: + m_FixedTimeStep: 0.016666668 + m_MaxDeltaTime: 0.05 diff --git a/ProjectSettings/XRSettings.asset b/ProjectSettings/XRSettings.asset new file mode 100644 index 0000000..482590c --- /dev/null +++ b/ProjectSettings/XRSettings.asset @@ -0,0 +1,10 @@ +{ + "m_SettingKeys": [ + "VR Device Disabled", + "VR Device User Alert" + ], + "m_SettingValues": [ + "False", + "False" + ] +} \ No newline at end of file