トップページ > 過去ログ > 記事閲覧
第三引数を利用したMakeGraphの透過
名前:Aquid 日時: 2007/06/23 19:55

こんばんは。 今回、MakeGraphの第三引数にTRUEを指定したハンドルを描画対象にして、プログラム側で画像を生成しようと試みたのですが、 使用するグラフィックボードによって生成した画像が透過したりしなかったりします。 (GeForce Go 7400を積んだPCだと透過せず、Intel GMA950を積んだPCだと透過する) また、SetNotUse3DFlagやSetUseDirectDrawFlagを使用するなどしてソフトウェア描画にすると、 上記のどちらのグラフィックボードでも正常に描画されます。 これは環境依存に寄る不具合で、解決手段はないのでしょうか? 上記関数を利用すれば正常に描画されるのですが、できる限りハードウェア描画のままで解決をしたいです。 /*******************************************/ #include "DxLib.h" int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){ //初期化処理 ChangeWindowMode(TRUE); SetUseDirectDrawFlag(FALSE); SetNotUse3DFlag(TRUE); if(DxLib_Init()==-1)return -1; //まずハンドル用意 //第三引数指定する SetTransColor(0,0,0); int SampleHandle=MakeGraph(64,64,TRUE); //描画先に指定 SetDrawScreen(SampleHandle); //適当に描画 DrawBox( 0, 0,48,48,0xff00ff,FALSE); DrawBox(16,16,64,64,0x00ff00,FALSE); //バックを指定 SetDrawScreen(DX_SCREEN_BACK); //適当に描画 DrawBox(0,0,640,480,0xffffff,TRUE); //透過チェックする DrawGraph(240,240,SampleHandle,TRUE); //描画 ScreenFlip(); WaitKey(); //解放 DxLib_End(); return 0; }

Page: 1 |

Re: 第三引数を利用したMakeGraphの透過 ( No.1 )
名前:管理人 日時:2007/06/26 13:30

Aquidさんどうも、DXライブラリの管理人です。 > これは環境依存に寄る不具合で、解決手段はないのでしょうか?  はい。  どうも最近の DirectX では透過色を使用した透過処理の機能が 存在していないようで、最近のビデオカードでは透過色を使用した 透過処理が機能しないビデオカードがあるようです。
Re: 第三引数を利用したMakeGraphの透過 ( No.2 )
名前:Aquid 日時:2007/06/27 11:09

回答ありがとうございます。 なるほど、そういった事情があったのですか… MakeGraphで作る以上、αチャンネルを使うのも無理でしょうし、どうにか透過処理に依存しない方法で解決しようと思います。

Page: 1 |