こんばんは。
今回、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;
}