From 2667aa2806877d6fdd31b6ad34b0440197c14e1f Mon Sep 17 00:00:00 2001 From: Jesper Jensen Date: Fri, 24 Jul 2026 20:19:48 +0200 Subject: Fix some layout issues --- src/main.c | 177 +------------------------------------------------------------ 1 file changed, 2 insertions(+), 175 deletions(-) (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index 10cbbfc..60ca295 100644 --- a/src/main.c +++ b/src/main.c @@ -1,17 +1,6 @@ #include "cad.h" #include "cad/debug.h" -#define CIMGUI_DEFINE_ENUMS_AND_STRUCTS -#include "cimgui/cimgui.h" -#include "cimgui/cimgui_impl.h" -#include - -#include -#include - -#define igGetIO igGetIO_Nil -SDL_Window *window = NULL; - struct smooth_line { struct component l1; struct component l2; @@ -157,12 +146,13 @@ void draw_from_constraints(struct constraints *c, struct topology *t, struct can draw_topology(cv, t); draw_constraints(cv, c); + draw_elements(cv, &drawing); end_drawing(cv); free_drawing(&drawing); } -int main2(int argc, char *argv[]) { +int main(int argc, char *argv[]) { struct constraints constraints = {}; struct topology topo = {}; @@ -293,166 +283,3 @@ int main2(int argc, char *argv[]) { free_topology(&topo); return 0; } - -int main(int argc, char* argv[]) { - - if (SDL_Init(SDL_INIT_VIDEO) < 0) { - SDL_Log("failed to init: %s", SDL_GetError()); - return -1; - } - - // GL 3.0 + GLSL 130 - const char* glsl_version = "#version 130"; - SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, 0); - SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE); - SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3); - SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0); - - // and prepare OpenGL stuff - SDL_SetHint(SDL_HINT_RENDER_DRIVER, "opengl"); - SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24); - SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE, 8); - SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); - SDL_DisplayMode current; - SDL_GetCurrentDisplayMode(0, ¤t); - float main_scale = ImGui_ImplSDL2_GetContentScaleForDisplay(0); - SDL_WindowFlags window_flags = (SDL_WindowFlags)(SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI); - window = SDL_CreateWindow("Dear ImGui SDL2+OpenGL3 example", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, (int)(1280 * main_scale), (int)(720 * main_scale), window_flags); - - if (window == NULL) { - SDL_Log("Failed to create window: %s", SDL_GetError()); - return -1; - } - - SDL_GLContext gl_context = SDL_GL_CreateContext(window); - SDL_GL_SetSwapInterval(1); // enable vsync - - - // check opengl version sdl uses - SDL_Log("opengl version: %s", (char*)glGetString(GL_VERSION)); - - // setup imgui - igCreateContext(NULL); - - //set docking - ImGuiIO* ioptr = igGetIO(); - ioptr->ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls - ioptr->ConfigFlags |= ImGuiConfigFlags_DockingEnable; - - // Setup scaling - ImGuiStyle* style = igGetStyle(); - ImGuiStyle_ScaleAllSizes(style, main_scale); // Bake a fixed style scale. (until we have a solution for dynamic style scaling, changing this requires resetting Style + calling this again) - style->FontScaleDpi = main_scale; // Set initial font scale. (using io.ConfigDpiScaleFonts=true makes this unnecessary. We leave both here for documentation purpose) - ioptr->ConfigDpiScaleFonts = true; // [Experimental] Automatically overwrite style.FontScaleDpi in Begin() when Monitor DPI changes. This will scale fonts but _NOT_ scale sizes/padding for now. - ioptr->ConfigDpiScaleViewports = true; // [Experimental] Scale Dear ImGui and Platform Windows when Monitor DPI changes. - - - ImGui_ImplSDL2_InitForOpenGL(window, gl_context); - ImGui_ImplOpenGL3_Init(glsl_version); - - igStyleColorsDark(NULL); - //ImFontAtlas_AddFontDefault(io.Fonts, NULL); - - - bool showDemoWindow = true; - bool showAnotherWindow = false; - ImVec4 clearColor; - clearColor.x = 0.45f; - clearColor.y = 0.55f; - clearColor.z = 0.60f; - clearColor.w = 1.00f; - - bool quit = false; - while (!quit) - { - SDL_Event e; - - // we need to call SDL_PollEvent to let window rendered, otherwise - // no window will be shown - while (SDL_PollEvent(&e) != 0) - { - ImGui_ImplSDL2_ProcessEvent(&e); - if (e.type == SDL_QUIT) - quit = true; - if (e.type == SDL_WINDOWEVENT && e.window.event == SDL_WINDOWEVENT_CLOSE && e.window.windowID == SDL_GetWindowID(window)) - quit = true; - } - - // start imgui frame - ImGui_ImplOpenGL3_NewFrame(); - ImGui_ImplSDL2_NewFrame(); - igNewFrame(); - - if (showDemoWindow) - igShowDemoWindow(&showDemoWindow); - - // show a simple window that we created ourselves. - { - static float f = 0.0f; - static int counter = 0; - - igBegin("Hello, world!", NULL, 0); - igText("This is some useful text"); - igCheckbox("Demo window", &showDemoWindow); - igCheckbox("Another window", &showAnotherWindow); - - igSliderFloat("Float", &f, 0.0f, 1.0f, "%.3f", 0); - igColorEdit3("clear color", (float*)&clearColor, 0); - - ImVec2 buttonSize; - buttonSize.x = 0; - buttonSize.y = 0; - if (igButton("Button", buttonSize)) - counter++; - igSameLine(0.0f, -1.0f); - igText("counter = %d", counter); - - igText("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / igGetIO()->Framerate, igGetIO()->Framerate); - igEnd(); - } - - if (showAnotherWindow) - { - igBegin("imgui Another Window", &showAnotherWindow, 0); - igText("Hello from imgui"); - ImVec2 buttonSize; - buttonSize.x = 0; buttonSize.y = 0; - if (igButton("Close me", buttonSize)) - { - showAnotherWindow = false; - } - igEnd(); - } - - // render - igRender(); - SDL_GL_MakeCurrent(window, gl_context); - glViewport(0, 0, (int)ioptr->DisplaySize.x, (int)ioptr->DisplaySize.y); - glClearColor(clearColor.x, clearColor.y, clearColor.z, clearColor.w); - glClear(GL_COLOR_BUFFER_BIT); - ImGui_ImplOpenGL3_RenderDrawData(igGetDrawData()); - if (ioptr->ConfigFlags & ImGuiConfigFlags_ViewportsEnable) { - SDL_Window* backup_current_window = SDL_GL_GetCurrentWindow(); - SDL_GLContext backup_current_context = SDL_GL_GetCurrentContext(); - igUpdatePlatformWindows(); - igRenderPlatformWindowsDefault(NULL,NULL); - SDL_GL_MakeCurrent(backup_current_window, backup_current_context); - } - SDL_GL_SwapWindow(window); - } - - // clean up - ImGui_ImplOpenGL3_Shutdown(); - ImGui_ImplSDL2_Shutdown(); - igDestroyContext(NULL); - - SDL_GL_DeleteContext(gl_context); - if (window != NULL) - { - SDL_DestroyWindow(window); - window = NULL; - } - SDL_Quit(); - - return 0; -} -- cgit v1.2.3