共用方式為


PDD_VPORTCB_GETBANDWIDTH回呼函式 (ddrawint.h)

DdVideoPortGetBandwidth回呼函式會根據指定的 VPE 物件輸出格式,報告裝置框架緩衝區記憶體的頻寬限制。

語法

PDD_VPORTCB_GETBANDWIDTH PddVportcbGetbandwidth;

DWORD PddVportcbGetbandwidth(
  PDD_GETVPORTBANDWIDTHDATA unnamedParam1
)
{...}

參數

unnamedParam1

指向包含驅動程式傳回頻寬資料所需資訊的 DD_GETVPORTBANDWIDTHDATA 結構。

傳回值

DdVideoPortGetBandwidth 會傳回下列其中一個回呼代碼:

備註

DdVideoPortGetBandwidth 必須在支援 VPE 的 DirectDraw 驅動程式中實作。

DdVideoPortGetBandwidth 會通知用戶端任何指定格式的頻寬需求,協助他們選擇格式,並進一步瞭解其限制。 驅動程式只有在建立 VPE 物件之後,才能提供精確的頻寬資訊,因為驅動程式需要 DDVIDEOPORTDESC 結構中的資訊。

DdVideoPortGetBandwidth 通常會呼叫兩次,以取得指定硬體視訊埠的頻寬參數。 根據lpGetVideoPortBandwidth上DD_GETVPORTBANDWIDTHDATA結構的dwFlags成員,驅動程式應該執行下列動作:

  • 當旗標DDVPB_TYPE時,驅動程式應該在DDVIDEOPORTBANDWIDTH結構的dwCaps成員中設定下列其中一個旗標,讓lpBandwidth成員DD_GETVPORTBANDWIDTHDATA點的裝置類型:
    • DDVPBCAPS_DESTINATION指出裝置會根據重迭延展因數來描述其頻寬功能;也就是說,驅動程式在下一次呼叫 DdVideoPortGetBandwidth 時所傳回的頻寬資訊會參考目的地重迭的大小。 此旗標最能描述同時從主要和重迭表面重新整理的硬體。 隨著目的地視訊延展,硬體有更多時間從重迭表面讀取圖元,減少所需的記憶體頻寬。
    • DDVPBCAPS_SOURCE指出裝置會根據所需的來源重迭大小來描述其頻寬功能;也就是說,下一次呼叫 DdVideoPortGetBandwidth 所傳回的頻寬資訊是指來源重迭的大小。 此旗標最能描述將重迭資料預先擷取到線條緩衝區或大型 FIFO 的硬體。 這類硬體不需要額外的頻寬,但需要來源重迭資料完全符合硬體支援的緩衝區/FIFO 大小。

    驅動程式也應該在傳回之前,先設定 DDVIDEOPORTBANDWIDTH 結構的 dwSize 成員。

  • 當旗標DDVPB_VIDEOPORT時,DD_GETVPORTBANDWIDTHDATA 結構中的 dwWidthdwHeight 成員會參考硬體視訊埠將寫入畫面緩衝區做為來源重迭的視訊資料預先調整大小。 驅動程式應該會傳回重迭延展因數,其中裝置可以顯示重迭,乘以 1000,其中 每一個 dwOverlaydwColorkeydwYInterpolatedwYInterpAndColorkey 成員的 DDVIDEOPORTBANDWIDTH 結構。 例如,值為 2000 表示裝置在顯示重迭時,其頻寬可延展至來源指定大小的兩倍。 值為 1000 表示指定的資料大小不需要進行延展。 值為 500 表示裝置有足夠的頻寬,可縮小一半的重迭目的地。 驅動程式必須在 dwOverlay中設定有效的值,但可以在它不支援的任何其他三個成員中傳回 -1。

    DDVPB_VIDEOPORT旗標假設裝置最能由DDVPBCAPS_DESTINATION旗標描述。 如果這不是這種情況,驅動程式應該會失敗呼叫。

  • 設定DDVPB_OVERLAY旗標時,DD_GETVPORTBANDWIDTHDATA 結構中的 dwWidthdwHeight 成員會參考來源重迭大小。 驅動程式應該會傳回此重迭大小的百分比,乘以 1000,其可支援在 DDVIDEOPORTBANDWIDTH 結構的每個dwOverlay、dwColorkeydwYInterpInterpolatedwYInterpAndColorkey成員中顯示重迭。 例如,值為 750 表示裝置需要將指定的來源重迭壓縮為原始大小的 75%,才能讓裝置順利顯示。 值為 1000 表示不需要壓縮。 這種類型的裝置驅動程式通常不會傳回大於 1000 的值。 驅動程式必須在 dwOverlay中設定有效的值,但如果其他三個成員不支援色彩索引鍵和/或 Y 軸插補,則可以傳回 0。

    DDVPB_OVERLAY旗標假設使用 DDVPBCAPS_SOURCE 旗標最能描述裝置。 如果這不是這種情況,驅動程式應該會失敗呼叫。

需求

   
目標平台 桌面
標頭 ddrawint.h (包括 Winddi.h)

另請參閱

DDVIDEOPORTBANDWIDTH

DDVIDEOPORTDESC

DD_GETVPORTBANDWIDTHDATA

DdVideoPortCreate