gpt4 book ai didi

c# - 如何使用 SharpDX 调用 Trim?

转载 作者:行者123 更新时间:2023-11-30 20:51:26 24 4
gpt4 key购买 nike

我的 Windows 8 应用程序未通过认证测试:

应用程序应在其即将暂停的任何时候在其 IDXGIDevice3 接口(interface)上调用 Trim API。

该链接将我带到 C++ 页面,但我使用的是 SharpDX。我只能在这里找到一本书的帖子中提到的一个例子 https://www.packtpub.com/article/integrating-direct3d-xaml-windows81#more

不幸的是,它提到了一个 DeviceManager 类(我想是从书中?)并且我的 SharpDX.DXGI.Device3 丢失了。有 Device1 和 Device2,但没有 3。也许库的版本不同,或者我缺少对其他内容的引用?

因此,我正在寻找一个示例,说明如何调用 Trim,以便认证应用程序运行良好,并在暂停应用程序时清理所有图形对象等。

void App::OnSuspending(
_In_ Platform::Object^ sender,
_In_ Windows::ApplicationModel::SuspendingEventArgs^ args
)
{
Windows::ApplicationModel::SuspendingDeferral^ deferral = args->SuspendingOperation->GetDeferral();

// Save application data

m_exampleDxgiAdapter->Trim();
deferral->Complete();
}

最佳答案

以下示例显示如何调用 Trim() 以通过认证过程:

async void OnSuspending(object sender, Windows.ApplicationModel.SuspendingEventArgs e)
{
var Deferral = e.SuspendingOperation.GetDeferral();

using (var Device = new SharpDX.Direct3D11.Device(SharpDX.Direct3D.DriverType.Hardware, SharpDX.Direct3D11.DeviceCreationFlags.BgraSupport, new[] { SharpDX.Direct3D.FeatureLevel.Level_11_1, SharpDX.Direct3D.FeatureLevel.Level_11_0 }))
using (var Direct3DDevice = Device.QueryInterface<SharpDX.Direct3D11.Device1>())
using (var DxgiDevice3 = Direct3DDevice.QueryInterface<SharpDX.DXGI.Device3>())
DxgiDevice3.Trim();

Deferral.Complete();
}

您必须下载并使用SharpDX Latest Dev Package (当前为 2.5.1)用于 SharpDX.DXGI.Device3

关于c# - 如何使用 SharpDX 调用 Trim?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21691412/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com