mirror of
https://github.com/greenshot/greenshot
synced 2025-08-22 22:34:27 -07:00
Updated Dapplo.Windows to fix an API bug, starting on performance tests which write AVI files to see if we can add some experimental video capture.
This commit is contained in:
parent
cdf3428758
commit
5d90d1ed02
27 changed files with 97 additions and 55 deletions
|
@ -1,4 +1,4 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
|
||||
<PropertyGroup>
|
||||
<RootNamespace>Greenshot.Addon.Box</RootNamespace>
|
||||
|
@ -49,7 +49,7 @@
|
|||
<PackageReference Include="Dapplo.HttpExtensions" Version="0.9.18" />
|
||||
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
|
||||
<PackageReference Include="Dapplo.HttpExtensions.JsonNet" Version="0.9.18" />
|
||||
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.7" />
|
||||
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.9" />
|
||||
<PackageReference Include="Fody" Version="3.3.4">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
|
||||
<PropertyGroup>
|
||||
<RootNamespace>Greenshot.Addon.Confluence</RootNamespace>
|
||||
|
@ -55,7 +55,7 @@
|
|||
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.19" />
|
||||
<PackageReference Include="Dapplo.HttpExtensions.JsonNet" Version="0.9.18" />
|
||||
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
|
||||
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.7" />
|
||||
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.9" />
|
||||
<PackageReference Include="Dapplo.Confluence" Version="0.8.16" />
|
||||
<PackageReference Include="Fody" Version="3.3.4">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
|
||||
<PropertyGroup>
|
||||
<RootNamespace>Greenshot.Addon.Dropbox</RootNamespace>
|
||||
|
@ -51,7 +51,7 @@
|
|||
<PackageReference Include="Dapplo.HttpExtensions" Version="0.9.18" />
|
||||
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
|
||||
<PackageReference Include="Dapplo.HttpExtensions.JsonNet" Version="0.9.18" />
|
||||
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.7" />
|
||||
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.9" />
|
||||
<PackageReference Include="Fody" Version="3.3.4">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
|
||||
<PropertyGroup>
|
||||
<RootNamespace>Greenshot.Addon.ExternalCommand</RootNamespace>
|
||||
|
@ -40,7 +40,7 @@
|
|||
<PackageReference Include="AutoProperties.Fody" Version="1.19.0" />
|
||||
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.19" />
|
||||
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.19" />
|
||||
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.7" />
|
||||
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.9" />
|
||||
<PackageReference Include="CliWrap" Version="2.2.0" />
|
||||
<PackageReference Include="Fody" Version="3.3.4">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
|
||||
<PropertyGroup>
|
||||
<RootNamespace>Greenshot.Addon.Flickr</RootNamespace>
|
||||
|
@ -49,7 +49,7 @@
|
|||
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.19" />
|
||||
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.19" />
|
||||
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
|
||||
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.7" />
|
||||
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.9" />
|
||||
<PackageReference Include="Fody" Version="3.3.4">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
|
||||
<PropertyGroup>
|
||||
<RootNamespace>Greenshot.Addon.GooglePhotos</RootNamespace>
|
||||
|
@ -49,7 +49,7 @@
|
|||
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.19" />
|
||||
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.19" />
|
||||
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
|
||||
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.7" />
|
||||
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.9" />
|
||||
<PackageReference Include="Fody" Version="3.3.4">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
|
||||
<PropertyGroup>
|
||||
<RootNamespace>Greenshot.Addon.Imgur</RootNamespace>
|
||||
|
@ -50,7 +50,7 @@
|
|||
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.19" />
|
||||
<PackageReference Include="Dapplo.HttpExtensions.JsonNet" Version="0.9.18" />
|
||||
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
|
||||
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.7" />
|
||||
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.9" />
|
||||
<PackageReference Include="Fody" Version="3.3.4">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>net471;netcoreapp3.0</TargetFrameworks>
|
||||
|
@ -30,10 +30,10 @@
|
|||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Dapplo.Windows">
|
||||
<Version>0.8.7</Version>
|
||||
<Version>0.8.9</Version>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Dapplo.Windows.Com">
|
||||
<Version>0.8.7</Version>
|
||||
<Version>0.8.9</Version>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Unofficial.Microsoft.mshtml" Version="7.0.3300" />
|
||||
</ItemGroup>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
|
||||
<PropertyGroup>
|
||||
<RootNamespace>Greenshot.Addon.Jira</RootNamespace>
|
||||
|
@ -53,7 +53,7 @@
|
|||
<PackageReference Include="Dapplo.HttpExtensions.JsonNet" Version="0.9.18" />
|
||||
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
|
||||
<PackageReference Include="Dapplo.Utils" Version="1.1.9" />
|
||||
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.7" />
|
||||
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.9" />
|
||||
<PackageReference Include="Dapplo.Jira" Version="0.8.9" />
|
||||
<PackageReference Include="Fody" Version="3.3.4">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
|
||||
<PropertyGroup>
|
||||
<RootNamespace>Greenshot.Addon.LegacyEditor</RootNamespace>
|
||||
|
@ -136,8 +136,8 @@
|
|||
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.19" />
|
||||
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.19" />
|
||||
<PackageReference Include="Dapplo.HttpExtensions" Version="0.9.18" />
|
||||
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.7" />
|
||||
<PackageReference Include="Dapplo.Windows.Icons" Version="0.8.7" />
|
||||
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.9" />
|
||||
<PackageReference Include="Dapplo.Windows.Icons" Version="0.8.9" />
|
||||
<PackageReference Include="Fody" Version="3.3.4">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
|
||||
<PropertyGroup>
|
||||
<RootNamespace>Greenshot.Addon.Lutim</RootNamespace>
|
||||
|
@ -50,7 +50,7 @@
|
|||
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.19" />
|
||||
<PackageReference Include="Dapplo.HttpExtensions.JsonNet" Version="0.9.18" />
|
||||
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
|
||||
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.7" />
|
||||
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.9" />
|
||||
<PackageReference Include="MahApps.Metro" Version="2.0.0-alpha0170" />
|
||||
<PackageReference Include="Fody" Version="3.3.4">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
|
||||
<PropertyGroup>
|
||||
<RootNamespace>Greenshot.Addon.OCR</RootNamespace>
|
||||
|
@ -40,7 +40,7 @@
|
|||
<PackageReference Include="AutoProperties.Fody" Version="1.19.0" />
|
||||
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.19" />
|
||||
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.19" />
|
||||
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.7" />
|
||||
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.9" />
|
||||
<PackageReference Include="Fody" Version="3.3.4">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>WinExe</OutputType>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
|
||||
<PropertyGroup>
|
||||
<RootNamespace>Greenshot.Addon.Office</RootNamespace>
|
||||
|
@ -40,7 +40,7 @@
|
|||
<PackageReference Include="AutoProperties.Fody" Version="1.19.0" />
|
||||
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.19" />
|
||||
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.19" />
|
||||
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.7" />
|
||||
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.9" />
|
||||
<PackageReference Include="Interop.Microsoft.Office.Interop.OneNote" Version="1.1.0" />
|
||||
<PackageReference Include="Microsoft.Office.Interop.Excel" Version="15.0.4795.1000" />
|
||||
<PackageReference Include="Microsoft.Office.Interop.Outlook" Version="15.0.4797.1003" />
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
|
||||
<PropertyGroup>
|
||||
<RootNamespace>Greenshot.Addon.OneDrive</RootNamespace>
|
||||
|
@ -50,7 +50,7 @@
|
|||
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.19" />
|
||||
<PackageReference Include="Dapplo.HttpExtensions.JsonNet" Version="0.9.18" />
|
||||
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
|
||||
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.7" />
|
||||
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.9" />
|
||||
<PackageReference Include="MahApps.Metro" Version="2.0.0-alpha0170" />
|
||||
<PackageReference Include="Fody" Version="3.3.4">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
|
||||
<PropertyGroup>
|
||||
<RootNamespace>Greenshot.Addon.Photobucket</RootNamespace>
|
||||
|
@ -49,7 +49,7 @@
|
|||
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.19" />
|
||||
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.19" />
|
||||
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
|
||||
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.7" />
|
||||
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.9" />
|
||||
<PackageReference Include="Fody" Version="3.3.4">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
|
||||
<PropertyGroup>
|
||||
<RootNamespace>Greenshot.Addon.Tfs</RootNamespace>
|
||||
|
@ -50,7 +50,7 @@
|
|||
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.19" />
|
||||
<PackageReference Include="Dapplo.HttpExtensions.JsonNet" Version="0.9.18" />
|
||||
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
|
||||
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.7" />
|
||||
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.9" />
|
||||
<PackageReference Include="MahApps.Metro" Version="2.0.0-alpha0170" />
|
||||
<PackageReference Include="Fody" Version="3.3.4">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
|
||||
<PropertyGroup>
|
||||
<RootNamespace>Greenshot.Addon.Win10</RootNamespace>
|
||||
|
@ -61,6 +61,6 @@
|
|||
<ItemGroup>
|
||||
<PackageReference Include="Dapplo.CaliburnMicro.Configuration" Version="1.2.19" />
|
||||
<PackageReference Include="Dapplo.CaliburnMicro.Translations" Version="1.2.19" />
|
||||
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.7" />
|
||||
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.9" />
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -25,6 +25,7 @@
|
|||
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Windows;
|
||||
using System.Windows.Interop;
|
||||
using System.Windows.Media.Imaging;
|
||||
|
@ -50,6 +51,7 @@ namespace Greenshot.Addons.Core
|
|||
private readonly SafeCompatibleDcHandle _safeCompatibleDcHandle;
|
||||
private readonly SafeDibSectionHandle _safeDibSectionHandle;
|
||||
private readonly SafeSelectObjectHandle _safeSelectObjectHandle;
|
||||
private IntPtr _bits;
|
||||
|
||||
/// <summary>
|
||||
/// Return the source rectangle
|
||||
|
@ -90,7 +92,7 @@ namespace Greenshot.Addons.Core
|
|||
// Create BitmapInfoHeader, which is later used in the CreateDIBSection
|
||||
var bitmapInfoHeader = BitmapInfoHeader.Create(DestinationSize.Width, DestinationSize.Height, 32);
|
||||
// Create a DibSection, a device-independent bitmap (DIB)
|
||||
_safeDibSectionHandle = Gdi32Api.CreateDIBSection(_desktopDcHandle, ref bitmapInfoHeader, DibColors.RgbColors, out _, IntPtr.Zero, 0);
|
||||
_safeDibSectionHandle = Gdi32Api.CreateDIBSection(_desktopDcHandle, ref bitmapInfoHeader, DibColors.RgbColors, out _bits, IntPtr.Zero, 0);
|
||||
|
||||
// select the device-independent bitmap in the device context, storing the previous.
|
||||
// This is needed, so every interaction with the DC will go into the DIB.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>net471;netcoreapp3.0</TargetFrameworks>
|
||||
|
@ -62,10 +62,10 @@
|
|||
<Version>0.9.18</Version>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Dapplo.Windows.Clipboard">
|
||||
<Version>0.8.7</Version>
|
||||
<Version>0.8.9</Version>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Dapplo.Windows.Icons">
|
||||
<Version>0.8.7</Version>
|
||||
<Version>0.8.9</Version>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Fody" Version="3.3.4">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
<Project Sdk="MSBuild.Sdk.Extras/1.6.65"><!-- Microsoft.NET.Sdk.WindowsDesktop -->
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>net471;netcoreapp3.0</TargetFrameworks>
|
||||
<TargetFrameworks>net471</TargetFrameworks><!-- net471;netcoreapp3.0 -->
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
</PropertyGroup>
|
||||
|
||||
|
@ -29,7 +29,7 @@
|
|||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Dapplo.Windows.Icons">
|
||||
<Version>0.8.7</Version>
|
||||
<Version>0.8.9</Version>
|
||||
</PackageReference>
|
||||
</ItemGroup>
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>net471;netcoreapp3.0</TargetFrameworks>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>net471;netcoreapp3.0</TargetFrameworks>
|
||||
|
|
|
@ -22,10 +22,14 @@
|
|||
#endregion
|
||||
|
||||
using System;
|
||||
using System.IO;
|
||||
using BenchmarkDotNet.Attributes;
|
||||
using Dapplo.Log;
|
||||
using Dapplo.Windows.Common.Structs;
|
||||
using Dapplo.Windows.User32;
|
||||
using Greenshot.Addons.Core;
|
||||
using SharpAvi;
|
||||
using SharpAvi.Output;
|
||||
|
||||
namespace Greenshot.PerformanceTests
|
||||
{
|
||||
|
@ -35,10 +39,33 @@ namespace Greenshot.PerformanceTests
|
|||
[MinColumn, MaxColumn, MemoryDiagnoser]
|
||||
public class CapturePerformance
|
||||
{
|
||||
private static readonly LogSource Log = new LogSource();
|
||||
// A ScreenCapture which captures the whole screen (multi-monitor)
|
||||
private readonly GdiScreenCapture _screenCapture = new GdiScreenCapture(DisplayInfo.ScreenBounds);
|
||||
private GdiScreenCapture _screenCapture;
|
||||
// A ScreenCapture which captures the whole screen (multi-monitor) but with half the destination size, uses stretch-blt
|
||||
private readonly GdiScreenCapture _screenCaptureResized = new GdiScreenCapture(DisplayInfo.ScreenBounds, new NativeSize(DisplayInfo.ScreenBounds.Width / 2, DisplayInfo.ScreenBounds.Height / 2));
|
||||
private GdiScreenCapture _screenCaptureResized;
|
||||
private AviWriter _aviWriter;
|
||||
private IAviVideoStream _aviVideoStream;
|
||||
|
||||
[GlobalSetup]
|
||||
public void Setup()
|
||||
{
|
||||
_screenCapture = new GdiScreenCapture(DisplayInfo.ScreenBounds);
|
||||
var resizedSize = new NativeSize(DisplayInfo.ScreenBounds.Width / 2, DisplayInfo.ScreenBounds.Height / 2);
|
||||
_screenCaptureResized = new GdiScreenCapture(DisplayInfo.ScreenBounds, resizedSize);
|
||||
|
||||
var aviFile = Path.Combine(Path.GetTempPath(), @"test.avi");
|
||||
Log.Info().WriteLine("Writing AVI to {0}", aviFile);
|
||||
_aviWriter = new AviWriter(aviFile)
|
||||
{
|
||||
FramesPerSecond = 30,
|
||||
// Emitting AVI v1 index in addition to OpenDML index (AVI v2)
|
||||
// improves compatibility with some software, including
|
||||
// standard Windows programs like Media Player and File Explorer
|
||||
EmitIndex1 = true
|
||||
};
|
||||
_aviVideoStream = _aviWriter.AddVideoStream(resizedSize.Width, resizedSize.Height, BitsPerPixel.Bpp24);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This benchmarks a screen capture which does a lot of additional work
|
||||
|
@ -71,16 +98,28 @@ namespace Greenshot.PerformanceTests
|
|||
/// <summary>
|
||||
/// Capture the screen with buffered settings, but resized (smaller) destination
|
||||
/// </summary>
|
||||
[Benchmark]
|
||||
//[Benchmark]
|
||||
public void CaptureBufferedResized()
|
||||
{
|
||||
_screenCaptureResized.CaptureFrame();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Capture the screen with buffered settings, but resized (smaller) destination
|
||||
/// </summary>
|
||||
//[Benchmark]
|
||||
public void CaptureAvi()
|
||||
{
|
||||
_screenCaptureResized.CaptureFrame();
|
||||
// TODO: Write frame...
|
||||
//_aviVideoStream.WriteFrame(false, new []{}, 0, 0);
|
||||
}
|
||||
|
||||
[GlobalCleanup]
|
||||
public void Cleanup()
|
||||
{
|
||||
_screenCapture.Dispose();
|
||||
_aviWriter.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
|
||||
<PropertyGroup>
|
||||
<RootNamespace>Greenshot.PerformanceTests</RootNamespace>
|
||||
|
@ -66,6 +66,7 @@
|
|||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="2.10.0" />
|
||||
<PackageReference Include="Microsoft.DotNet.PlatformAbstractions" Version="2.1.0" />
|
||||
<PackageReference Include="SharpAvi" Version="2.1.1" />
|
||||
<PackageReference Include="System.Memory" Version="4.5.2" />
|
||||
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="4.5.2" />
|
||||
<PackageReference Include="System.Text.Encoding.CodePages" Version="4.5.1" />
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>net471;netcoreapp3.0</TargetFrameworks>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>WinExe</OutputType>
|
||||
|
@ -88,9 +88,9 @@
|
|||
<PackageReference Include="Dapplo.HttpExtensions.OAuth" Version="0.9.18" />
|
||||
<PackageReference Include="Dapplo.Log.LogFile" Version="1.3.11" />
|
||||
<PackageReference Include="Dapplo.Log.Loggers" Version="1.3.11" />
|
||||
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.7" />
|
||||
<PackageReference Include="Dapplo.Windows.Icons" Version="0.8.7" />
|
||||
<PackageReference Include="Dapplo.Windows.Multimedia" Version="0.8.7" />
|
||||
<PackageReference Include="Dapplo.Windows.Clipboard" Version="0.8.9" />
|
||||
<PackageReference Include="Dapplo.Windows.Icons" Version="0.8.9" />
|
||||
<PackageReference Include="Dapplo.Windows.Multimedia" Version="0.8.9" />
|
||||
<PackageReference Include="Fody" Version="3.3.4">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue