SetDrawCustomBlendMode

描画の際のブレンドモードを詳細に設定する

SetDrawCustomBlendMode BlendEnable, SrcBlendRGB, DestBlendRGB, BlendOpRGB, SrcBlendA, DestBlendA, BlendOpA, BlendParam

BlendEnable : 描画の際のブレンド処理を行うかどうか
TRUE  : ブレンド処理を行う
FALSE : ブレンド処理を行わない
SrcBlendRGB : 描画する色(RGB)に乗算するパラメーター
DX_BLEND_ZERO :       R=0.0  G=0.0  B=0.0  A=0.0
DX_BLEND_ONE :        R=1.0  G=1.0  B=1.0   A=1.0
DX_BLEND_SRC_COLOR :    R=Rs   G=Gs   B=Gs   A=As
DX_BLEND_INV_SRC_COLOR : R=1.0-Rs G=1.0-Gs B=1.0-Gs A=1.0-As
DX_BLEND_SRC_ALPHA :    R=As   G=As   B=As   A=As
DX_BLEND_INV_SRC_ALPHA : R=1.0-As G=1.0-As B=1.0-As A=1.0-As
DX_BLEND_DEST_COLOR :    R=Rd   G=Gd   B=Bd   A=Ad
DX_BLEND_INV_DEST_COLOR : R=1.0-Rd G=1.0-Gd B=1.0-Bd A=1.0-Ad
DX_BLEND_DEST_ALPHA :     R=Ad   G=Ad   B=Ad   A=Ad
DX_BLEND_INV_DEST_ALPHA : R=1.0-Ad G=1.0-Ad B=1.0-Ad A=1.0-Ad
DX_BLEND_SRC_ALPHA_SAT : R=f    G=f    B=f    A=1.0
Rs, Gs, Bs, As=描画する色の赤・緑・青・αの成分
Rd, Gd, Bd, Ad=描画される画面の色の赤・緑・青・αの成分
f= As と 1.0-Ad を比較して小さい方の値
DestBlendRGB : 描画される画面の色(RGB)に乗算するパラメーター
( 指定できる値は SrcBlendRGB と同じです )
BlendOpRGB : 描画する色と描画される画面の色の乗算した結果に対して行う演算
DX_BLENDOP_ADD : 描画する色と描画される画面の色を加算
DX_BLENDOP_SUBTRACT	: 描画する色から描画される画面の色を減算
DX_BLENDOP_REV_SUBTRACT : 描画される画面の色から描画する色を減算
DX_BLENDOP_MIX : 描画する色と描画される色の値の小さい方を使用
DX_BLENDOP_MAX : 描画する色と描画される色の値の大きい方を使用
SrcBlendA : 描画するα値に乗算するパラメーター
( 指定できる値は SrcBlendRGB と同じです )
DestBlendA : 描画される画面のα値に乗算するパラメーター
( 指定できる値は SrcBlendRGB と同じです )
BlendOpA : 描画するα値と描画される画面のα値の乗算した結果に対して行う演算
( 指定できる値は BlendOpRGB と同じです )
Pal : ブレンドモードのパラメータ(0~255)

(プラグイン / モジュール : DxLibW)

解説

SetDrawBlendMode の詳細設定版です。

一般的に使用するブレンドモードについては SetDrawBlendMode に用意されているので、
SetDrawBlendMode で対応していないブレンドを行いたい場合や、
Direct3D や OpenGL と同じ感覚でブレンドモードを設定したい場合に使用します。

因みに、DX_BLENDMODE_ALPHA 等と同じ効果をこの関数で設定した場合は以下のようになります。

<DX_BLENDMODE_NOBLEND : ブレンド処理無し>

SetDrawCustomBlendMode( FALSE,
DX_BLEND_ONE, DX_BLEND_ZERO, DX_BLENDOP_ADD,
DX_BLEND_ONE, DX_BLEND_ZERO, DX_BLENDOP_ADD, 255 ) ;

<DX_BLENDMODE_ALPHA : αブレンド>

SetDrawCustomBlendMode( TRUE,
DX_BLEND_SRC_ALPHA, DX_BLEND_INV_SRC_ALPHA, DX_BLENDOP_ADD,
DX_BLEND_SRC_ALPHA, DX_BLEND_INV_SRC_ALPHA, DX_BLENDOP_ADD, 255 ) ;

<DX_BLENDMODE_ADD : 加算ブレンド>

SetDrawCustomBlendMode( TRUE,
DX_BLEND_SRC_ALPHA, DX_BLEND_ONE, DX_BLENDOP_ADD,
DX_BLEND_SRC_ALPHA, DX_BLEND_ONE, DX_BLENDOP_ADD, 255 ) ;

<DX_BLENDMODE_SUB : 減算ブレンド>

SetDrawCustomBlendMode( TRUE,
DX_BLEND_SRC_ALPHA, DX_BLEND_ONE, DX_BLENDOP_REV_SUBTRACT,
DX_BLEND_SRC_ALPHA, DX_BLEND_ONE, DX_BLENDOP_REV_SUBTRACT, 255 ) ;

<DX_BLENDMODE_PMA_ALPHA : 乗算済みα用のαブレンド>

SetDrawCustomBlendMode( TRUE,
DX_BLEND_ONE, DX_BLEND_INV_SRC_ALPHA, DX_BLENDOP_ADD,
DX_BLEND_ONE, DX_BLEND_INV_SRC_ALPHA, DX_BLENDOP_ADD, 255 ) ;

<DX_BLENDMODE_PMA_ADD : 乗算済みα用の加算ブレンド>

SetDrawCustomBlendMode( TRUE,
DX_BLEND_ONE, DX_BLEND_ONE, DX_BLENDOP_ADD,
DX_BLEND_ONE, DX_BLEND_ONE, DX_BLENDOP_ADD, 255 ) ;

<DX_BLENDMODE_PMA_SUB : 乗算済みα用の減算ブレンド>

SetDrawCustomBlendMode( TRUE,
DX_BLEND_ONE, DX_BLEND_ONE, DX_BLENDOP_REV_SUBTRACT,
DX_BLEND_ONE, DX_BLEND_ONE, DX_BLENDOP_REV_SUBTRACT, 255 ) ;

戻り値:
  0:成功

関連項目

GetDrawCustomBlendModeカスタムブレンドモードを取得する(DxLibW)

情報

プラグイン / モジュールDxLibW
バージョン3.24f
作成日2026/04/12
著作者DxLib: Takumi Yamada / HSP binding: IronHSP Project
URLhttps://dxlib.xsrv.jp/
備考hspdxlib.as をインクルードして使用
タイプDxLib ゲームライブラリ
グループDxLib グラフィック描画
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\hspdxlib.hs