トップページ > 記事閲覧
GetUseDirect3DDevice9()がnullpt
名前:suittizihou 日時: 2020/02/05 15:13

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 こちらの記事の時点では動いていると思われたので、もしなにか記述漏れや間違った記述をしていた場合ご教授いただければ幸いです。
メンテ

Page: 1 |

Re: GetUseDirect3DDevice9()がnullpt ( No.1 )
名前:管理人 日時:2020/02/05 23:40

最近のバージョンでは DirectX 11 が使用できる環境では Direct3D 11 を使用するようになっていますので、 Direct3D 11 を使用している場合は GetUseDirect3DDevice9 は nullptr を返します DxLib_Init の呼び出しの前に SetUseDirect3DVersion( DX_DIRECT3D_9 ); を実行することで強制的に Direct3D 9 を使用するようにすることができ、 GetUseDirect3DDevice9 も nullptr 以外が返ってくるようになりますので、 よろしければお試しください m(_ _)m
メンテ
Re: GetUseDirect3DDevice9()がnullpt ( No.2 )
名前:suittizihou(解決) 日時:2020/02/06 11:52

ありがとうございます。 動きました!
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存