我的Windows 8應用程序未通過認證測試:如何使用SharpDX調用Trim?
應用程序應該在它的IDXGIDevice3接口上隨時調用它的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();
}
真棒,現在檢查出來。請注意,下載頁面上可能應該包含該開發包的鏈接。我一直在試着用那個頁面上的那個(2.5.0)來解決它。 我在搜索2.5.1 –
後在About頁面上找到它,所以這沒有幫助。微軟的工具告訴我,我需要調用Trim,並且據我所知,我甚至沒有使用DirectX3D(我使用SharpDX修改Direct2D1的一些位圖 - 即將文本繪製到它們上),所以我覺得我必須添加此代碼來調用Trim,我甚至沒有使用它。所以我想知道如何從目前獲取設備。 –
你應該在這裏發佈Direct2D設備的整個初始化過程,因爲在你的描述中你真的不清楚你在使用/做什麼(這個DeviceManager,你有源代碼嗎?是否和SharpDX樣本相同 - 是不好,不應該用於生產代碼)。通常,Direct2D設備是從Direct3D設備初始化的。 – xoofx