こんにちは。GetMovieBaseImageToGraph()について質問させてください。
ogvの動画でGetMovieBaseImageToGraph()を呼んだ時の動作が、Ver3.16bとVer3.16c(4/24版)で違うようです。
Ver3.16bではイメージが更新された時にImageUpdateFlagが1になりますが、Ver3.16cだと常に0になりました。
手元の環境(Windows10 64bit)で再現確認したプログラムは、以下の通りです。
#include <DxLib.h>
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
ChangeWindowMode(TRUE); //フルスクリーンでもウインドウでも結果は同じ
DxLib_Init(); //DxLibを初期化する。
SetDrawScreen(DX_SCREEN_BACK); //描画先をバックバッファにする。
int gr = LoadGraph("test1.ogv"); //ムービーをロードする。
PlayMovieToGraph(gr, DX_PLAYTYPE_LOOP); //ムービーを再生開始する。
while((ProcessMessage() == 0) && (CheckHitKey(KEY_INPUT_ESCAPE) == 0)) {
ClearDrawScreen(); //描画先をクリアする。
int ImageUpdateFlag;
GetMovieBaseImageToGraph(gr, &ImageUpdateFlag); //ImageUpdateFlagを受け取る。
if(ImageUpdateFlag) { printfDx("%d: ImageUpdateFlag is on\n"); } //ImageUpdateFlag=1ならばデバッグ表示する。 ←←←←← DxLib3.16bだと表示が出るが、DxLib3.16cだと表示が出ない。
ScreenFlip(); //フリップする。
}
DxLib_End(); //DxLibを終了する。
return 0;
}
extern "C" long _ftol2_sse(double dblSource){return (long)dblSource;}//DxLib3.16cではVC6でリンクエラーが出るのを回避
Ver3.16bの動作の方が正しいのではないかな、と思いました。
ご検討いただけますと幸いです。