共用方式為


逐步解說:以程式設計方式擷取圖形資訊

本逐步解說示範如何使用 Visual Studio 圖形診斷從 Direct3D 應用程式以程式設計方式擷取圖形資訊。

這個逐步解說將說明這些工作:

  • 準備您的電腦以程式設計方式擷取。

  • 準備您的應用程式以程式設計方式擷取。

  • 設定圖形記錄檔的名稱和位置。

  • 使用 CaptureCurrentFrame 應用程式開發介面。

準備您的電腦以程式設計方式擷取

程式設計擷取應用程式開發介面使用 Remote Tools for Visual Studio 來提供擷取功能。 應用程式執行所在的電腦上必須已安裝遠端工具,因此即使您使用本機電腦上的程式設計擷取方式。 當您在本機電腦上執行程式設計擷取時,不需要執行 Visual Studio。

若要在執行於電腦中的應用程式使用遠端擷取應用程式開發介面,必須先在該電腦上安裝 Remote Tools for Visual Studio。 不同版本的遠端工具支援不同的硬體平台。 如需如何安裝遠端工具的詳細資訊,請參閱 Microsoft 下載網站上的遠端工具下載頁面

或者,Visual Studio 會安裝必要元件以 32 位元應用程式的遠端擷取。

注意事項注意事項

由於 ARM 裝置的 Windows 8 不支援大多數 Windows 桌面應用程式 (包括 Visual Studio),將 Remote Tools for Visual Studio 與程式設計擷取應用程式開發介面搭配使用是在 ARM 裝置上擷取圖形診斷的唯一方式。

準備您的應用程式以程式設計方式擷取

若要使用圖形診斷工具,您必須先擷取它所依賴的圖形資訊。 您可以使用 CaptureCurrentFrame 應用程式開發介面,以程式設計方式擷取資訊。

準備您的應用程式,透過程式設計方式擷取圖形資訊

  1. 確定 vsgcapture.h 標頭已包含在應用程式的原始程式碼中。 這可以只包含在一個位置中,例如:以程式設計方式呼叫擷取應用程式開發介面的原始程式碼檔,或是從多個原始程式碼檔呼叫應用程式開發介面的先行編譯標頭檔。

  2. 在應用程式的原始程式碼,每當您想要擷取目前框架的其餘部分,呼叫 g_pVsgDbg->CaptureCurrentFrame()。 這個方法不接受參數,且不會傳回值。

設定圖形記錄檔的名稱和位置

圖形記錄檔是由 DONT_SAVE_VSGLOG_TO_TEMP 和 VSG_DEFAULT_RUN_FILENAME 巨集定義的位置而建立的。

設定圖形記錄檔的名稱和位置

  • 若要避免圖形記錄檔被寫入暫存目錄,在 #include <vsgcapture.h> 這行前面加入:

    #define DONT_SAVE_VSGLOG_TO_TEMP
    

    您可以定義此值將圖形記錄檔寫入與工作目錄相對的位置,若 VSG_DEFAULT_RUN_FILENAME 的定義是絕對路徑,也可以寫入絕對路徑。

  • 若要將圖形儲存到不同的位置,或是為它指定不同的檔名,在 #include <vsgcapture.h> 這行前面加入:

    #define VSG_DEFAULT_RUN_FILENAME <filename>
    

    如果您沒有執行這個步驟,則檔案名稱會是 default.vsglog。 如果沒有定義 DONT_SAVE_VSGLOG_TO_TEMP 則檔案的位置是相對於暫存目錄,否則會相對於工作目錄或另一個位置 (如果您指定了絕對檔名)。

對於 Windows 市集 應用程式,暫存目錄的位置是針對每個使用者和應用程式和通常所在的位置找到例如 C:\users\使用者名稱\ AppData \ Local \ Packages \封裝家族名稱。\ TempState \。 若為傳統型應用程式,暫存目錄的位置是專屬性於個別使用者,通常所在的位置像這樣:C:\Users\使用者名稱\AppData\Local\Temp\。

注意事項注意事項

若要寫入到特定位置,您必須具有該位置的寫入權限;否則會發生錯誤。請記住 Windows 市集 應用程式對待可將資料寫入的位置會比傳統應用程式更嚴謹,而且可能需要額外的組態才能寫入至特定位置。

擷取圖形資訊

在您準備好應用程式以程式設計方式進行擷取,並選擇性設定圖形記錄檔的位置和名稱之後,請建置應用程式,然後執行或偵錯應用程式以擷取資料。不要在使用程式設計的擷取應用程式開發介面時從 Visual Studio 中啟動圖形診斷。 圖形記錄檔寫入您指定的位置。 如果您想要保留這個版本的記錄,請將其移至另一個位置,否則再次執行應用程式時就會遭到覆寫。

提示

您可以在使用程式設計擷取時手動擷取圖形資訊,方法是在應用程式進入焦點時按下 [Print Screen] 鍵。您可以使用這個額外擷取使用程式設計擷取應用程式開發介面無法擷取到的圖形資訊。

後續步驟

本逐步解說示範如何以程式設計方式擷取圖形資訊。 做為下一個步驟,您可以考慮使用這個選項:

  • 學習如何使用圖形診斷工具,分析擷取的圖形資訊。 請參閱 圖形診斷

請參閱

工作

逐步解說:手動擷取圖形資訊

概念

擷取圖形資訊