From 52a2f5b69eaf3430623ef2ebeeca0c50a3b8217c Mon Sep 17 00:00:00 2001 From: Nic Gaffney Date: Fri, 6 Sep 2024 22:29:38 -0500 Subject: Quickfix: rlimgui bindings added to vendor/ --- vendor/rlImGui-main/examples/docking_example.cpp | 105 +++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 vendor/rlImGui-main/examples/docking_example.cpp (limited to 'vendor/rlImGui-main/examples/docking_example.cpp') diff --git a/vendor/rlImGui-main/examples/docking_example.cpp b/vendor/rlImGui-main/examples/docking_example.cpp new file mode 100644 index 0000000..e5a93ba --- /dev/null +++ b/vendor/rlImGui-main/examples/docking_example.cpp @@ -0,0 +1,105 @@ +/******************************************************************************************* +* +* raylib-extras [ImGui] example - Docking example +* +* This is an example of using the ImGui docking features that are part of docking branch +* You must replace the default imgui with the code from the docking branch for this to work +* https://github.com/ocornut/imgui/tree/docking +* +* Copyright (c) 2024 Jeffery Myers +* +********************************************************************************************/ + +#include "raylib.h" +#include "raymath.h" + +#include "imgui.h" +#include "rlImGui.h" + + +int main(int argc, char* argv[]) +{ + // Initialization + //-------------------------------------------------------------------------------------- + int screenWidth = 1280; + int screenHeight = 800; + + SetConfigFlags(FLAG_MSAA_4X_HINT | FLAG_VSYNC_HINT | FLAG_WINDOW_RESIZABLE | FLAG_WINDOW_HIGHDPI); + InitWindow(screenWidth, screenHeight, "raylib-Extras [ImGui] example - Docking"); + SetTargetFPS(144); + rlImGuiSetup(true); + + bool run = true; + + bool showDemoWindow = true; + + // if the linked ImGui has docking, enable it. + // this will only be true if you use the docking branch of ImGui. +#ifdef IMGUI_HAS_DOCK + ImGui::GetIO().ConfigFlags |= ImGuiConfigFlags_DockingEnable; +#endif + + // Main game loop + while (!WindowShouldClose() && run) // Detect window close button or ESC key, or a quit from the menu + { + BeginDrawing(); + ClearBackground(DARKGRAY); + + // draw something to the raylib window below the GUI. + DrawCircle(GetScreenWidth() / 2, GetScreenHeight() / 2, GetScreenHeight() * 0.45f, DARKGREEN); + + // start ImGui content + rlImGuiBegin(); + + // if you want windows to dock to the viewport, call this. +#ifdef IMGUI_HAS_DOCK + ImGui::DockSpaceOverViewport(0, NULL, ImGuiDockNodeFlags_PassthruCentralNode); // set ImGuiDockNodeFlags_PassthruCentralNode so that we can see the raylib contents behind the dockspace +#endif + + // show a simple menu bar + if (ImGui::BeginMainMenuBar()) + { + if (ImGui::BeginMenu("File")) + { + if (ImGui::MenuItem("Quit")) + run = false; + + ImGui::EndMenu(); + } + + if (ImGui::BeginMenu("Window")) + { + if (ImGui::MenuItem("Demo Window", nullptr, showDemoWindow)) + showDemoWindow = !showDemoWindow; + + ImGui::EndMenu(); + } + ImGui::EndMainMenuBar(); + } + + // show some windows + + if (showDemoWindow) + ImGui::ShowDemoWindow(&showDemoWindow); + + if (ImGui::Begin("Test Window")) + { + ImGui::TextUnformatted("Another window"); + } + ImGui::End(); + + // end ImGui Content + rlImGuiEnd(); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + rlImGuiShutdown(); + + // De-Initialization + //-------------------------------------------------------------------------------------- + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} \ No newline at end of file -- cgit v1.2.3