011 画像のアルファブレンド指定

画像をアルファブレンドの効果を与えて描画することができます。

読み込んだビットマップ画像を描画させてみます。
下のビットマップ(縦横256ドット)を読み込んで


下のように色々なパターンでのアルファブレンド効果を与えて描画させます。


もっとも簡単なプログラムは以下のようになります。

サンプルプログラム「2d 011」

CH = G@SETUP(640, 480, 16, 1)
B1 = G@CHRLOAD("DATA1.BMP")
B2 = G@CHRLOAD("BACK.BMP")
LOOP
 G@CHRCLEAR(CH)
 G@CHRRECT(CH, 0, 0)
 G@CHRCOPYF(B2, CH)

 FOR X=0 TO 10
  FOR Y=0 TO 10
   G@CHRSETBLEND( B1 , X , Y )
   G@CHRRECT(CH, 58*X, 43*Y, 58*X+57, 43*Y+42)
   G@CHRCOPY(B1, CH)
  NEXT
 NEXT
 G@FLIP()
ENDLOOP

赤字の関数でコピー元の画像に対してアルファブレンドを指示します。引数2はコピー元、引数3はコピー先のブレンディング係数を指示します。指定可能なブレンディング係数を以下に示します。

 0:D3DBLEND_ZERO。ブレンディング係数は (0, 0, 0, 0)。
 1:D3DBLEND_ONE。ブレンディング係数は (1, 1, 1, 1)
 2:D3DBLEND_SRCCOLOR。ブレンディング係数は (Rs, Gs, Bs, As)
 3:D3DBLEND_INVSRCCOLOR。ブレンディング係数は (1-Rs, 1-Gs, 1-Bs, 1-As)
 4:D3DBLEND_SRCALPHA。ブレンディング係数は (As, As, As, As)
 5:D3DBLEND_INVSRCALPHA。ブレンディング計数は (1-As, 1-As, 1-As, 1-As)
 6:D3DBLEND_DESTALPHA。ブレンディング係数は (Ad, Ad, Ad, Ad)
 7:D3DBLEND_INVDESTALPHA。ブレンディング計数は (1-Ad, 1-Ad, 1-Ad, 1-Ad)
 8:D3DBLEND_DESTCOLOR。ブレンディング係数は (Rd, Gd, Bd, Ad)
 9:D3DBLEND_INVDESTCOLOR。ブレンディング計数は (1-Rd, 1-Gd, 1-Bd, 1-Ad)
 10:D3DBLEND_SRCALPHASAT。ブレンディング係数は、(f, f, f, 1)、f = min(As, 1-Ad)