Rebuild trinity visualizer from bare SDL and OpenGL to using Raylib. Added Code for serial parsing on linux. Current functionality reads incoming quaternion packet data coming in over serial and displays the values and also visualizes with a cube, connect and disconnect is implemented. Essentially rebuild the functionality of the old version with added linux support.

This commit is contained in:
2026-09-13 19:44:26 +02:00
commit 62abf4d5d6
821 changed files with 239694 additions and 0 deletions
@@ -0,0 +1,117 @@
/*******************************************************************************************
*
* 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"
// DPI scaling functions
float ScaleToDPIF(float value)
{
return GetWindowScaleDPI().x * value;
}
int ScaleToDPII(int value)
{
return int(GetWindowScaleDPI().x * value);
}
int main(int argc, char* argv[])
{
// Initialization
//--------------------------------------------------------------------------------------
int screenWidth = 1280;
int screenHeight = 800;
// do not set the FLAG_WINDOW_HIGHDPI flag, that scales a low res framebuffer up to the native resolution.
// use the native resolution and scale your geometry.
SetConfigFlags(FLAG_MSAA_4X_HINT | FLAG_VSYNC_HINT | FLAG_WINDOW_RESIZABLE);
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;
}