aboutsummaryrefslogtreecommitdiff
path: root/vendor/rlImGui-main/examples/docking_example.cpp
diff options
context:
space:
mode:
authorNic Gaffney <gaffney_nic@protonmail.com>2024-09-06 22:29:38 -0500
committerNic Gaffney <gaffney_nic@protonmail.com>2024-09-06 22:29:38 -0500
commit52a2f5b69eaf3430623ef2ebeeca0c50a3b8217c (patch)
tree0fc74f5b192d74452ad74f22ad512b8b663d2139 /vendor/rlImGui-main/examples/docking_example.cpp
parentad6d55aeaa7c87a4008e56a5a3922d2608c73239 (diff)
downloadparticle-sim-52a2f5b69eaf3430623ef2ebeeca0c50a3b8217c.tar.gz
Quickfix: rlimgui bindings added to vendor/
Diffstat (limited to 'vendor/rlImGui-main/examples/docking_example.cpp')
-rw-r--r--vendor/rlImGui-main/examples/docking_example.cpp105
1 files changed, 105 insertions, 0 deletions
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