アルファチャンネル付きAVIファイルの透過再生について
Windows7、C#で、DXライブラリを利用させて頂いております。
アルファチャンネル付きAVIを再生しているのですが、アルファのない部分でも、黒い部分が抜けてしまいます。
DX.SetUseTransColor(DX.FALSE)で、透過色機能は無効にしているのですが・・・。
原因は何が考えられるか、よろしければお教えください。
コードは下記のようにしております。
**初期化******************
DX.SetApplicationLogSaveDirectory("D:\\BS1\\AlphaMoviePlayer");
DX.SetUseDateNameLogFile(1);
DX.SetOutApplicationLogValidFlag(1);
DX.ChangeWindowMode(DX.TRUE);
DX.SetUseBackBufferTransColorFlag(DX.TRUE);
DX.SetDoubleStartValidFlag(DX.TRUE);
DX.SetGraphMode(this.screenSize.Width, this.screenSize.Height, 32);
DX.SetAlwaysRunFlag(DX.TRUE);
DX.DxLib_Init();
DX.SetAlwaysRunFlag(DX.TRUE);
DX.SetUseTransColor(DX.FALSE);
**再生*******************
this.isMovPlaying = true;
DX.GetDrawScreenSize(out screenSizeX, out screenSizeY);
screen = DX.MakeScreen(screenSizeX, screenSizeY, DX.TRUE);
softImage = DX.MakeARGB8ColorSoftImage(screenSizeX, screenSizeY);
DX.SetMovieColorA8R8G8B8Flag(DX.TRUE);
DX.SetDrawScreen(screen);
movieGraphHandle = DX.LoadGraph(FilePath);
// メインループ
while (DX.ProcessMessage() == 0)
{
if (DX.GetMovieStateToGraph(movieGraphHandle) == 0)
{
DX.SeekMovieToGraph(movieGraphHandle, 0);
DX.PlayMovieToGraph(movieGraphHandle);
}
DX.ClearDrawScreen();
graphHandle = DX.DrawExtendGraph(DrawPoint.X, DrawPoint.Y,
DrawPoint.X + DrawSize.Width + 1, DrawPoint.Y + DrawSize.Height + 1,
movieGraphHandle, DX.TRUE);
imageHandle = DX.GetDrawScreenSoftImage(0, 0, screenSizeX, screenSizeY, softImage);
DX.UpdateLayerdWindowForSoftImage(softImage);
DX.WaitTimer(6);
firstLoop = false;
}
DX.ClearDrawScreen();
DX.SetDrawScreen(DX.DX_SCREEN_BACK);
DX.ClearDrawScreen();
DX.ScreenFlip();
DX.DeleteGraph(movieGraphHandle);
DX.DeleteSoftImage(softImage);
DX.DeleteGraph(screen);