1 | // dear imgui: Renderer + Platform Backend for Allegro 5 |
2 | // (Info: Allegro 5 is a cross-platform general purpose library for handling windows, inputs, graphics, etc.) |
3 | |
4 | // Implemented features: |
5 | // [X] Renderer: User texture binding. Use 'ALLEGRO_BITMAP*' as ImTextureID. Read the FAQ about ImTextureID! |
6 | // [X] Platform: Keyboard support. Since 1.87 we are using the io.AddKeyEvent() function. Pass ImGuiKey values to all key functions e.g. ImGui::IsKeyPressed(ImGuiKey_Space). [Legacy ALLEGRO_KEY_* values are obsolete since 1.87 and not supported since 1.91.5] |
7 | // [X] Platform: Clipboard support (from Allegro 5.1.12). |
8 | // [X] Platform: Mouse cursor shape and visibility (ImGuiBackendFlags_HasMouseCursors). Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'. |
9 | // Missing features or Issues: |
10 | // [ ] Renderer: The renderer is suboptimal as we need to unindex our buffers and convert vertices manually. |
11 | // [ ] Platform: Missing gamepad support. |
12 | // [ ] Renderer: Multi-viewport support (multiple windows). |
13 | |
14 | // You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this. |
15 | // Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need. |
16 | // Learn about Dear ImGui: |
17 | // - FAQ https://dearimgui.com/faq |
18 | // - Getting Started https://dearimgui.com/getting-started |
19 | // - Documentation https://dearimgui.com/docs (same as your local docs/ folder). |
20 | // - Introduction, links and more at the top of imgui.cpp |
21 | |
22 | #pragma once |
23 | #include "imgui.h" // IMGUI_IMPL_API |
24 | #ifndef IMGUI_DISABLE |
25 | |
26 | struct ALLEGRO_DISPLAY; |
27 | union ALLEGRO_EVENT; |
28 | |
29 | // Follow "Getting Started" link and check examples/ folder to learn about using backends! |
30 | IMGUI_IMPL_API bool ImGui_ImplAllegro5_Init(ALLEGRO_DISPLAY* display); |
31 | IMGUI_IMPL_API void ImGui_ImplAllegro5_Shutdown(); |
32 | IMGUI_IMPL_API void ImGui_ImplAllegro5_NewFrame(); |
33 | IMGUI_IMPL_API void ImGui_ImplAllegro5_RenderDrawData(ImDrawData* draw_data); |
34 | IMGUI_IMPL_API bool ImGui_ImplAllegro5_ProcessEvent(ALLEGRO_EVENT* event); |
35 | |
36 | // Use if you want to reset your rendering device without losing Dear ImGui state. |
37 | IMGUI_IMPL_API bool ImGui_ImplAllegro5_CreateDeviceObjects(); |
38 | IMGUI_IMPL_API void ImGui_ImplAllegro5_InvalidateDeviceObjects(); |
39 | |
40 | #endif // #ifndef IMGUI_DISABLE |
41 | |