mirror of
https://github.com/ocornut/imgui.git
synced 2025-09-20 02:08:25 +00:00

Currently, the implementation headers don't include the imgui.h header. Which means that the compilation will fail if the implementation header was included before the imgui.h header in the compilation unit. For instance, a compilation unit with the following will work: #include "imgui.h" #include "imgui_impl_glfw.h" #include "imgui_impl_opengl3.h" But a compilation unit with the following will fail because IMGUI_IMPL_API and possibly other symbols will not be defined: #include "imgui_impl_glfw.h" #include "imgui_impl_opengl3.h" #include "imgui.h" This patch includes imgui.h in the implementation headers to make inclusions order-invariant, which is a recommended practice.
32 lines
1.6 KiB
C
32 lines
1.6 KiB
C
// dear imgui: Renderer + Platform Binding for Allegro 5
|
|
// (Info: Allegro 5 is a cross-platform general purpose library for handling windows, inputs, graphics, etc.)
|
|
|
|
// Implemented features:
|
|
// [X] Renderer: User texture binding. Use 'ALLEGRO_BITMAP*' as ImTextureID. Read the FAQ about ImTextureID!
|
|
// [X] Platform: Clipboard support (from Allegro 5.1.12)
|
|
// [X] Platform: Mouse cursor shape and visibility. Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'.
|
|
// Issues:
|
|
// [ ] Renderer: The renderer is suboptimal as we need to unindex our buffers and convert vertices manually.
|
|
// [ ] Platform: Missing gamepad support.
|
|
|
|
// You can copy and use unmodified imgui_impl_* files in your project. See main.cpp for an example of using this.
|
|
// If you are new to dear imgui, read examples/README.txt and read the documentation at the top of imgui.cpp.
|
|
// https://github.com/ocornut/imgui, Original Allegro 5 code by @birthggd
|
|
|
|
#pragma once
|
|
|
|
#include "imgui.h"
|
|
|
|
struct ALLEGRO_DISPLAY;
|
|
union ALLEGRO_EVENT;
|
|
|
|
IMGUI_IMPL_API bool ImGui_ImplAllegro5_Init(ALLEGRO_DISPLAY* display);
|
|
IMGUI_IMPL_API void ImGui_ImplAllegro5_Shutdown();
|
|
IMGUI_IMPL_API void ImGui_ImplAllegro5_NewFrame();
|
|
IMGUI_IMPL_API void ImGui_ImplAllegro5_RenderDrawData(ImDrawData* draw_data);
|
|
IMGUI_IMPL_API bool ImGui_ImplAllegro5_ProcessEvent(ALLEGRO_EVENT* event);
|
|
|
|
// Use if you want to reset your rendering device without losing ImGui state.
|
|
IMGUI_IMPL_API bool ImGui_ImplAllegro5_CreateDeviceObjects();
|
|
IMGUI_IMPL_API void ImGui_ImplAllegro5_InvalidateDeviceObjects();
|