EngAlphaBlend 関数は、アルファブレンディング付きビットブロック転送機能を提供する。
EngAlphaBlend psoDest, psoSrc, pco, pxlo, prclDest, prclSrc, pBlendObj
psoDest : [var] 描画先のサーフェスを識別する SURFOBJ 構造体へのポインタ。 psoSrc : [var] ソースサーフェスを識別する SURFOBJ 構造体へのポインタ。 pco : [var] CLIPOBJ 構造体へのポインタ。CLIPOBJ_Xxx サービスルーチンが、クリップ領域を矩形の集合として列挙するために提供される。この列挙は変更される宛先の領域を制限する。可能な限り GDI はクリッピングを単純化する。ただし EngBitBlt と異なり、出力をクリッピングする際の丸め誤差を避けるため、EngAlphaBlend は単一矩形で呼ばれることがある。 pxlo : [var] ソースサーフェスと宛先サーフェスの間でカラーインデックスをどう変換するかを指定する XLATEOBJ 構造体へのポインタ。ソースサーフェスがパレット管理されている場合、その色は RGB カラー値のルックアップテーブルへのインデックスで表される。この場合、GDI は XLATEOBJ 構造体に変換ベクトルを問い合わせ、任意のソースインデックスを宛先のカラーインデックスに高速変換できる。例えばソースが RGB だが宛先がパレット管理の場合は状況がより複雑になる。この場合、各ソース RGB 値に最も近い一致を宛先パレットで見つけなければならない。GDI はこのマッチング操作のために XLATEOBJ_iXlate サービスルーチンを呼ぶ。 prclDest : [var] 変更する矩形領域を定義する RECTL 構造体へのポインタ。この矩形は宛先サーフェスの座標系で指定し、左上と右下の 2 点で定義される。矩形を定義する 2 点は常に整列している。矩形は右下を含まない。すなわち、その下辺と右辺はブレンドの一部ではない。指定した矩形は宛先サーフェスからはみ出してもよく、その場合 GDI が適切にクリッピングを行う。EngAlphaBlend は決して空の宛先矩形で呼んではならない。 prclSrc : [var] コピーする領域を定義する RECTL 構造体へのポインタ。この矩形はソースサーフェスの座標系で指定し、左上と右下の 2 点で定義される。矩形を定義する 2 点は常に整列している。矩形は右下を含まない。ソース矩形はソースサーフェスの境界を超えてはならず、ソースサーフェスからはみ出してはならない。EngAlphaBlend は決して空のソース矩形で呼んではならない。マッピングは prclSrc と prclDest によって定義される。prclDest と prclSrc に指定された点は整数座標上にあり、これはピクセル中心に対応する。そのような 2 点で定義される矩形は、与えられた点を頂点とする幾何学的矩形と見なされるが、各座標から 0.5 を引いたものになる。(POINTL 構造体はこれらの分数座標頂点を指定する省略表記である。) pBlendObj : [var] ソースサーフェスと宛先サーフェスの間で実行するブレンディング操作を記述する BLENDOBJ 構造体へのポインタ。この構造体は BLENDFUNCTION 構造体のラッパーであり、XLATEOBJ 構造体には含まれない、必要なソースおよび宛先のフォーマット情報を含む。BLENDFUNCTION は Microsoft Windows SDK ドキュメントで宣言されている。そのメンバは次のように定義される。BlendOp は実行するブレンド操作を定義する。現在この値は AC_SRC_OVER でなければならず、ソースビットマップがソースピクセルのアルファ値に基づいて宛先ビットマップの上に配置されることを意味する。このブレンド操作が扱うべき 3 つのケースがあり、本リファレンスページの備考で説明する。BlendFlags は予約され、現在 0 に設定される。SourceConstantAlpha はソースサーフェス全体に適用する一定のブレンド係数を定義する。値は [0,255] の範囲で、0 が完全に透明、255 が完全に不透明である。AlphaFormat はサーフェスがアルファチャンネルを持つかどうかを定義する。このメンバには次の値を任意に設定できる。
(プラグイン / モジュール : gdi32.dll)
EngAlphaBlend 関数は、アルファブレンディング付きビットブロック転送機能を提供する。 [戻り値] EngAlphaBlend は成功時に TRUE を返す。エラーが発生した場合、FALSE を返しエラーコードを報告する。 [備考] アルファブレンディング付きビットブロック転送は次のサーフェス間でサポートされる。 (以下省略)
| プラグイン / モジュール | gdi32.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の gdi32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_gdi32_gen2.hs |