mirror of
https://github.com/DarthAffe/ScreenCapture.NET.git
synced 2025-12-12 21:38:42 +00:00
Updated Vortice to 2.3
This commit is contained in:
parent
21f0b7e804
commit
c01c1fea0d
19
ScreenCapture.NET/DirectX/DX11CompatibilityExtensions.cs
Normal file
19
ScreenCapture.NET/DirectX/DX11CompatibilityExtensions.cs
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
using Vortice.DXGI;
|
||||||
|
|
||||||
|
namespace ScreenCapture.NET;
|
||||||
|
|
||||||
|
// DarthAffe 22.02.2023: These helper-methods where removed from Vortice and are readded here since they are used.
|
||||||
|
internal static class DX11CompatibilityExtensions
|
||||||
|
{
|
||||||
|
public static IDXGIAdapter1 GetAdapter1(this IDXGIFactory1 factory, int index)
|
||||||
|
{
|
||||||
|
factory.EnumAdapters1(index, out IDXGIAdapter1 adapter).CheckError();
|
||||||
|
return adapter;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IDXGIOutput GetOutput(this IDXGIAdapter1 adapter, int index)
|
||||||
|
{
|
||||||
|
adapter.EnumOutputs(index, out IDXGIOutput output).CheckError();
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -305,18 +305,18 @@ public sealed class DX11ScreenCapture : IScreenCapture
|
|||||||
private void InitializeCaptureZone(in CaptureZone captureZone)
|
private void InitializeCaptureZone(in CaptureZone captureZone)
|
||||||
{
|
{
|
||||||
Texture2DDescription stagingTextureDesc = new()
|
Texture2DDescription stagingTextureDesc = new()
|
||||||
{
|
{
|
||||||
CpuAccessFlags = CpuAccessFlags.Read,
|
CPUAccessFlags = CpuAccessFlags.Read,
|
||||||
BindFlags = BindFlags.None,
|
BindFlags = BindFlags.None,
|
||||||
Format = Format.B8G8R8A8_UNorm,
|
Format = Format.B8G8R8A8_UNorm,
|
||||||
Width = captureZone.Width,
|
Width = captureZone.Width,
|
||||||
Height = captureZone.Height,
|
Height = captureZone.Height,
|
||||||
OptionFlags = ResourceOptionFlags.None,
|
MiscFlags = ResourceOptionFlags.None,
|
||||||
MipLevels = 1,
|
MipLevels = 1,
|
||||||
ArraySize = 1,
|
ArraySize = 1,
|
||||||
SampleDescription = { Count = 1, Quality = 0 },
|
SampleDescription = { Count = 1, Quality = 0 },
|
||||||
Usage = ResourceUsage.Staging
|
Usage = ResourceUsage.Staging
|
||||||
};
|
};
|
||||||
ID3D11Texture2D stagingTexture = _device!.CreateTexture2D(stagingTextureDesc);
|
ID3D11Texture2D stagingTexture = _device!.CreateTexture2D(stagingTextureDesc);
|
||||||
|
|
||||||
ID3D11Texture2D? scalingTexture = null;
|
ID3D11Texture2D? scalingTexture = null;
|
||||||
@ -324,18 +324,18 @@ public sealed class DX11ScreenCapture : IScreenCapture
|
|||||||
if (captureZone.DownscaleLevel > 0)
|
if (captureZone.DownscaleLevel > 0)
|
||||||
{
|
{
|
||||||
Texture2DDescription scalingTextureDesc = new()
|
Texture2DDescription scalingTextureDesc = new()
|
||||||
{
|
{
|
||||||
CpuAccessFlags = CpuAccessFlags.None,
|
CPUAccessFlags = CpuAccessFlags.None,
|
||||||
BindFlags = BindFlags.RenderTarget | BindFlags.ShaderResource,
|
BindFlags = BindFlags.RenderTarget | BindFlags.ShaderResource,
|
||||||
Format = Format.B8G8R8A8_UNorm,
|
Format = Format.B8G8R8A8_UNorm,
|
||||||
Width = captureZone.UnscaledWidth,
|
Width = captureZone.UnscaledWidth,
|
||||||
Height = captureZone.UnscaledHeight,
|
Height = captureZone.UnscaledHeight,
|
||||||
OptionFlags = ResourceOptionFlags.GenerateMips,
|
MiscFlags = ResourceOptionFlags.GenerateMips,
|
||||||
MipLevels = captureZone.DownscaleLevel + 1,
|
MipLevels = captureZone.DownscaleLevel + 1,
|
||||||
ArraySize = 1,
|
ArraySize = 1,
|
||||||
SampleDescription = { Count = 1, Quality = 0 },
|
SampleDescription = { Count = 1, Quality = 0 },
|
||||||
Usage = ResourceUsage.Default
|
Usage = ResourceUsage.Default
|
||||||
};
|
};
|
||||||
scalingTexture = _device!.CreateTexture2D(scalingTextureDesc);
|
scalingTexture = _device!.CreateTexture2D(scalingTextureDesc);
|
||||||
scalingTextureView = _device.CreateShaderResourceView(scalingTexture);
|
scalingTextureView = _device.CreateShaderResourceView(scalingTexture);
|
||||||
}
|
}
|
||||||
@ -362,18 +362,18 @@ public sealed class DX11ScreenCapture : IScreenCapture
|
|||||||
using IDXGIOutput5 output = _output.QueryInterface<IDXGIOutput5>();
|
using IDXGIOutput5 output = _output.QueryInterface<IDXGIOutput5>();
|
||||||
|
|
||||||
Texture2DDescription captureTextureDesc = new()
|
Texture2DDescription captureTextureDesc = new()
|
||||||
{
|
{
|
||||||
CpuAccessFlags = CpuAccessFlags.None,
|
CPUAccessFlags = CpuAccessFlags.None,
|
||||||
BindFlags = BindFlags.RenderTarget | BindFlags.ShaderResource,
|
BindFlags = BindFlags.RenderTarget | BindFlags.ShaderResource,
|
||||||
Format = Format.B8G8R8A8_UNorm,
|
Format = Format.B8G8R8A8_UNorm,
|
||||||
Width = Display.Width,
|
Width = Display.Width,
|
||||||
Height = Display.Height,
|
Height = Display.Height,
|
||||||
OptionFlags = ResourceOptionFlags.None,
|
MiscFlags = ResourceOptionFlags.None,
|
||||||
MipLevels = 1,
|
MipLevels = 1,
|
||||||
ArraySize = 1,
|
ArraySize = 1,
|
||||||
SampleDescription = { Count = 1, Quality = 0 },
|
SampleDescription = { Count = 1, Quality = 0 },
|
||||||
Usage = ResourceUsage.Default
|
Usage = ResourceUsage.Default
|
||||||
};
|
};
|
||||||
_captureTexture = _device.CreateTexture2D(captureTextureDesc);
|
_captureTexture = _device.CreateTexture2D(captureTextureDesc);
|
||||||
|
|
||||||
lock (_captureZones)
|
lock (_captureZones)
|
||||||
@ -383,7 +383,7 @@ public sealed class DX11ScreenCapture : IScreenCapture
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (_useNewDuplicationAdapter)
|
if (_useNewDuplicationAdapter)
|
||||||
_duplicatedOutput = output.DuplicateOutput1(_device, Format.B8G8R8A8_UNorm); // DarthAffe 27.02.2021: This prepares for the use of 10bit color depth
|
_duplicatedOutput = output.DuplicateOutput1(_device, new[] { Format.B8G8R8A8_UNorm }); // DarthAffe 27.02.2021: This prepares for the use of 10bit color depth
|
||||||
else
|
else
|
||||||
_duplicatedOutput = output.DuplicateOutput(_device);
|
_duplicatedOutput = output.DuplicateOutput(_device);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -64,7 +64,7 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Vortice.Direct3D11" Version="1.9.143" />
|
<PackageReference Include="Vortice.Direct3D11" Version="2.3.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user