Re: MakeScreenで作った画面の初期化 ( No.1 ) |
- 名前:鈴見咲君高 日時:2013/07/07 10:54
FillGraph というのがなぜか隠し関数のままだったりしますね。
使い方は DxLib.h に書いてある通りで、引数 Alpha を 0 に
すれば透明度を含めた初期化ができるはずです。
肝腎の実行速度は調べたことがありませんが、解放→再確保の
手続きがない分確実に速いことでしょう。たぶん。
|
Re: MakeScreenで作った画面の初期化 ( No.2 ) |
- 名前:spaaaark・∀・ 日時:2013/07/07 13:59
>鈴見咲君高様
ご回答ありがとうございます。
実行して見たところ、どうしても透明度を0にしても
前3つの引数で指定する色が画面に残ってしまう結果と
なりました…。どうも完全に透明化することはできない
ようです。なお、実行速度のほうはかなり速かったです。
|
Re: MakeScreenで作った画面の初期化 ( No.3 ) |
- 名前:鈴見咲君高 日時:2013/07/07 16:51
多分次のどちらかです。おそらく 1) 。
1) 他の三成分も 0 にして FillGraph( ハンドル, 0, 0, 0, 0 ); が正解。
2) 他の三成分を 0 にしなかった理由を書いて次の回答を待つ。
1) の場合、そもそもの画像処理が、単に透明なだけではなく
「透明かつ三原色成分が 0 」であることが条件だったということです。
MakeScreen 直後の初期状態と FillGraph( ハンドル, 0, 0, 0, 0 ); の
処理結果はおそらく完全一致です。
|
Re: MakeScreenで作った画面の初期化 ( No.4 ) |
- 名前:spaaaark・∀・ 日時:2013/07/07 17:14
>鈴見咲君高様
すいません語弊がありました…。
3要素の色をすべて0にした際も、同様の事、
つまり、描画する画像が黒っぽく表示されて
しまうのです…。説明下手で申し訳ないです。
|
Re: MakeScreenで作った画面の初期化 ( No.5 ) |
- 名前:Sura 日時:2013/07/07 18:03
横やり失礼します。
要するに、リフレッシュレート毎に実行時にMakeScreen()で作成したグラフィックハンドルを初期化した時、
全領域透過色で埋めることと思いますが
(つまり、作成したグラフィックハンドルをDX_SCREEN_BACK時にDrawGraph()をしても何も表示されない状態)、
私の場合、SetDrawBlendMode()にてDX_BLENDMODE_SRCCOLORを指定した後、
DrawBox() GetColor(0,0,0)で塗りつぶして再現できたと思います。
例)
SetDrawScreen(iHandle);
SetDrawBlendMode(DX_BLENDMODE_SRCCOLOR, 0);
DrawBox(_x1, _y1, _x2, _y2, 0, TRUE);
SetDrawBlendMode(DX_BLENDMODE_NOBLEND, 255);
//何か描画したいものを描画
SetDrawScreen(DX_SCREEN_BACK);
|