今のところ無かったのですが、シェーダを使わない方法で使えそうな機能が
Direct3D の固定機能パイプラインにもありましたので、ライブラリの機能に追加してみました
よろしければこちらのバージョンをダウンロードしてください m(_ _)m
http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用
(中身を既存のライブラリのファイルに上書きして、BCCをお使いの
場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい)
追加したのは SetDrawBlendMode の第一引数に渡すブレンドモードで、
DX_BLENDMODE_ALPHA_X4
DX_BLENDMODE_ADD_X4
の二つです
この二つはそれぞれαブレンド描画と加算ブレンド描画の
描画元の画像の輝度を4倍にして描画する、という以外は
DX_BLENDMODE_ALPHA
DX_BLENDMODE_ADD
と同じです
例えば
SetDrawBlendMode( DX_BLENDMODE_ALPHA_X4, 255 ) ;
DrawGraph( 0, 0, GraphHandle, TRUE ) ;
とすると、GraphHandle の画像の色の値が4倍になって描画されるので、より白に近くなります
因みに
SetDrawBlendMode( DX_BLENDMODE_ALPHA_X4, 255 ) ;
SetDrawBright( 64, 64, 64 ) ;
DrawGraph( 0, 0, GraphHandle, TRUE ) ;
という風に、SetDrawBright で描画輝度を最大( 255 )の4分の1に設定すると、
画像そのものの輝度( 1倍 )で描画されます
この機能を使って8倍の輝度で描画する場合は、描画負荷は二倍になりますが
SetDrawBlendMode( DX_BLENDMODE_ALPHA_X4, 255 ) ;
DrawGraph( 0, 0, GraphHandle, TRUE ) ;
SetDrawBlendMode( DX_BLENDMODE_ADD_X4, 255 ) ;
DrawGraph( 0, 0, GraphHandle, TRUE ) ;
という風に、不透明で4倍の輝度で描画したあと、加算ブレンドで
4倍の輝度で同じ画像を同じ座標に描画することで合わせて8倍になります
これの実現に使用している Direct3D 固定機能パイプラインの機能は
古いGPUでは機能しないのですが、そのGPUが詰まれたノートPCが発売されたのが
2002年頃なので、流石にもう気にしなくても大丈夫だと思います・・・