DxLibのバージョンは 3.21b を使用しております。
ImGUIというのを使用しようと思い、GetUseDirect3DDevice9()関数を使ってIDirect3DDevice9*を取得しようとしたのですが、
どのタイミングでGetUseDirect3DDevice9()を呼んでもnullptrが返ってきてしまいます。
GameApplication::GameApplication(int width, int height, bool full_screen, int Fps)
: width_(width)
, height_(height)
, full_screen_(full_screen)
, fps_(Fps)
{
// DxLib初期化
//==============================
SetOutApplicationLogValidFlag(FALSE); // Logファイルを作成しない
SetWindowSize(width_, height_);
value = SetGraphMode(width_, height_, 32, fps_);
time = 1000000.0f / fps_;
SetDrawScreen(DX_SCREEN_BACK);
ChangeWindowMode(!full_screen_);
DxLib_Init();
SetUseZBuffer3D(TRUE);
hdc = GetDC(GetMainWindowHandle()); // デバイスコンテキストの取得
//oldTime = (float)GetNowHiPerformanceCount();
this->width = width_;
this->height = height_;
// 解像度、カラービット数、リフレッシュレートを設定
SetGraphMode(width_, height_, 32, fps_);
//==============================
// ImGUIの初期化
// =============================
// Setup Dear ImGui context
IMGUI_CHECKVERSION();
ImGui::CreateContext();
ImGuiIO& io = ImGui::GetIO(); (void)io;
//io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
//io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls
// Setup Dear ImGui style
ImGui::StyleColorsDark();
//ImGui::StyleColorsClassic();
// Setup Platform/Renderer bindings
ImGui_ImplWin32_Init(GetMainWindowHandle());
// ここでエラー
ImGui_ImplDX9_Init((IDirect3DDevice9*)GetUseDirect3DDevice9());
// =============================
}
コンストラクタ以外でもその後のメインループ内に記述した場合もnullptrが返ってきてしまいました。
https://dxlib.xsrv.jp/cgi/patiobbs/patio.cgi?mode=past&no=2429
こちらの記事の時点では動いていると思われたので、もしなにか記述漏れや間違った記述をしていた場合ご教授いただければ幸いです。