Version 1.91.7 of the imgui library with the cimgui wrapper. imgui allows us to easily create minimal and powerful UI for use-cases like in-game overlays or separate tooling. The additional wrappers cimgui_impl_dx9 and cimgui_impl_win32 were added to provide a full C linkage integration for the rest of the code base. Tweaks to the makefile were kept to a minimum but enable compilation of C++ since imgui is C++ based. Remark: At this point bemanitools itself is still to be kept a pure C codebase. Due to the lack of proper module/library management with the current build system in bemanitools 5, proper separation of concerns and clean integration with external libraries isn’t possible with reasonable effort.
34 lines
1.7 KiB
C
34 lines
1.7 KiB
C
// dear imgui: Renderer Backend for DirectX9
|
|
// This needs to be used along with a Platform Backend (e.g. Win32)
|
|
|
|
// Implemented features:
|
|
// [X] Renderer: User texture binding. Use 'LPDIRECT3DTEXTURE9' as ImTextureID. Read the FAQ about ImTextureID!
|
|
// [X] Renderer: Large meshes support (64k+ vertices) even with 16-bit indices (ImGuiBackendFlags_RendererHasVtxOffset).
|
|
// [X] Renderer: IMGUI_USE_BGRA_PACKED_COLOR support, as this is the optimal color encoding for DirectX9.
|
|
|
|
// You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
|
|
// Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
|
|
// Learn about Dear ImGui:
|
|
// - FAQ https://dearimgui.com/faq
|
|
// - Getting Started https://dearimgui.com/getting-started
|
|
// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
|
|
// - Introduction, links and more at the top of imgui.cpp
|
|
|
|
#pragma once
|
|
#include "imgui.h" // IMGUI_IMPL_API
|
|
#ifndef IMGUI_DISABLE
|
|
|
|
struct IDirect3DDevice9;
|
|
|
|
// Follow "Getting Started" link and check examples/ folder to learn about using backends!
|
|
IMGUI_IMPL_API bool ImGui_ImplDX9_Init(IDirect3DDevice9* device);
|
|
IMGUI_IMPL_API void ImGui_ImplDX9_Shutdown();
|
|
IMGUI_IMPL_API void ImGui_ImplDX9_NewFrame();
|
|
IMGUI_IMPL_API void ImGui_ImplDX9_RenderDrawData(ImDrawData* draw_data);
|
|
|
|
// Use if you want to reset your rendering device without losing Dear ImGui state.
|
|
IMGUI_IMPL_API bool ImGui_ImplDX9_CreateDeviceObjects();
|
|
IMGUI_IMPL_API void ImGui_ImplDX9_InvalidateDeviceObjects();
|
|
|
|
#endif // #ifndef IMGUI_DISABLE
|