struktur DXGK_GDIARG_ALPHABLEND (d3dkmddi.h)

Struktur DXGK_GDIARG_ALPHABLEND menjelaskan karakteristik operasi campuran alfa yang dipercepat perangkat keras GDI.

Sintaks

typedef struct _DXGK_GDIARG_ALPHABLEND {
  [in] RECT    SrcRect;
  [in] RECT    DstRect;
  [in] UINT    SrcAllocationIndex;
  [in] UINT    DstAllocationIndex;
  [in] UINT    NumSubRects;
  [in] RECT    *pSubRects;
  [in] BYTE    SourceConstantAlpha;
  [in] BOOLEAN SourceHasAlpha;
  [in] UINT    SrcPitch;
} DXGK_GDIARG_ALPHABLEND;

Anggota

[in] SrcRect

Struktur RECT yang mendefinisikan area persegi panjang yang akan disalin. Persegi panjang sumber ini ditentukan dalam sistem koordinat permukaan sumber dan didefinisikan oleh dua titik: kiri atas dan kanan bawah. Dua titik yang menentukan persegi panjang selalu diurutkan dengan baik. Persegi panjang ini tidak akan pernah melebihi batas permukaan sumber, sehingga tidak akan pernah membantu permukaan sumber. Persegi panjang ini dipetakan ke persegi panjang tujuan yang ditentukan oleh DstRect. Lihat Keterangan untuk informasi selengkapnya.

[in] DstRect

Struktur RECT yang mendefinisikan area persegi panjang yang akan dimodifikasi. Persegi panjang ini ditentukan dalam sistem koordinat permukaan tujuan dan didefinisikan oleh dua titik: kiri atas dan kanan bawah. Persegi panjang eksklusif kanan bawah; artinya, tepi bawah dan kanannya bukan bagian dari transfer bit-block. Dua titik yang menentukan persegi panjang selalu diurutkan dengan baik.

Persegi panjang tujuan yang ditentukan oleh DstRect dapat melebihi batas permukaan tujuan, tetapi sub-persegi tidak dapat. Selain itu, semua sub-persegi panjang dijamin pas di dalam permukaan tujuan. Sub-persegi dapat dibatasi lebih lanjut oleh persegi panjang pembatas yang lebih kecil dari persegi panjang tujuan.

[in] SrcAllocationIndex

Indeks elemen dalam daftar alokasi yang menentukan alokasi yang direferensikan oleh persegi panjang sumber SrcRect .

[in] DstAllocationIndex

Indeks elemen dalam daftar alokasi yang menentukan alokasi yang direferensikan oleh persegi panjang tujuan DstRect .

[in] NumSubRects

Jumlah sub-persegi panjang di ruang permukaan tujuan yang dibatasi oleh persegi panjang tujuan DstRect .

[in] pSubRects

Penunjuk ke sub-persegi di ruang permukaan tujuan.

[in] SourceConstantAlpha

Faktor campuran konstanta untuk diterapkan ke seluruh permukaan sumber. Nilai ini berada di kisaran [0,255], di mana 0 benar-benar transparan dan 255 benar-benar buram.

[in] SourceHasAlpha

Menentukan apakah permukaan diasumsikan memiliki saluran alfa. Jika TRUE, permukaan diasumsikan memiliki saluran alfa; jika tidak, nilainya adalah FALSE.

[in] SrcPitch

Pitch permukaan sumber, dalam byte.

Keterangan

Jika operasi transfer blok bit peregangan (bitblt) diperlukan, rasio peregangan x dan y dihitung masing-masing karena rasio ukuran x dan y dari anggota DstRect dan SrcRect , dan operasi peregangan akan dilanjutkan seolah-olah nilai COLORONCOLOR dalam *Wingdi.h ditetapkan. Pada transfer blok bit yang menyusut, piksel yang cukup harus diabaikan sehingga piksel tidak perlu digabungkan. Pada transfer blok bit peregangan, piksel harus direplikasi.

Ketika sub-persegi ditransformasikan ke ruang permukaan sumber, hasilnya dijamin berada di dalam permukaan sumber. Transformasi koordinat sub-persegi panjang di permukaan tujuan ke koordinat di permukaan sumber ditentukan oleh rumus berikut, di mana:

  • (Xd, Yd) adalah titik di dalam sub-persegi
  • (Xs, Ys) adalah titik di dalam persegi panjang sumber
float Ws = SrcRect.right - SrcRect.left;
float Wd = DstRect.right - DstRect.left;
int Xs = round((Xd - DstRect.left + 0.5) * Ws/Wd + SrcRect.left - 0.5)

// OR

int Xs = truncate((Xd - DstRect.left + 0.5) * Ws/Wd + SrcRect.left)

float Hs = SrcRect.bottom - SrcRect.top;
float Hd = DstRect.bottom - DstRect.top;
int Ys = round((Yd - DstRect.top + 0.5) * Hs/Hd + SrcRect.top - 0.5)

//OR

int Ys = truncate((Yd - DstRect.top + 0.5) * Hs/Hd + SrcRect.top)</code></pre>

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 7
Header d3dkmddi.h (termasuk D3dkmddi.h)

Lihat juga

RECT