public static void UpdateTheme(ColorTheme theme)
        {
            ImGui.GetStyle().WindowPadding = new Vector2(2);

            ImGui.GetStyle().Colors[(int)ImGuiCol.Text]             = theme.Text;
            ImGui.GetStyle().Colors[(int)ImGuiCol.WindowBg]         = theme.WindowBg;
            ImGui.GetStyle().Colors[(int)ImGuiCol.ChildBg]          = theme.ChildBg;
            ImGui.GetStyle().Colors[(int)ImGuiCol.Border]           = theme.Border;
            ImGui.GetStyle().Colors[(int)ImGuiCol.PopupBg]          = theme.PopupBg;
            ImGui.GetStyle().Colors[(int)ImGuiCol.FrameBg]          = theme.FrameBg;
            ImGui.GetStyle().Colors[(int)ImGuiCol.FrameBgHovered]   = theme.FrameBgHovered;
            ImGui.GetStyle().Colors[(int)ImGuiCol.FrameBgActive]    = theme.FrameBgActive;
            ImGui.GetStyle().Colors[(int)ImGuiCol.TitleBg]          = theme.TitleBg;
            ImGui.GetStyle().Colors[(int)ImGuiCol.TitleBgActive]    = theme.TitleBgActive;
            ImGui.GetStyle().Colors[(int)ImGuiCol.CheckMark]        = theme.CheckMark;
            ImGui.GetStyle().Colors[(int)ImGuiCol.ButtonActive]     = theme.ButtonActive;
            ImGui.GetStyle().Colors[(int)ImGuiCol.Header]           = theme.Header;
            ImGui.GetStyle().Colors[(int)ImGuiCol.HeaderHovered]    = theme.HeaderHovered;
            ImGui.GetStyle().Colors[(int)ImGuiCol.HeaderActive]     = theme.HeaderActive;
            ImGui.GetStyle().Colors[(int)ImGuiCol.SeparatorHovered] = theme.SeparatorHovered;
            ImGui.GetStyle().Colors[(int)ImGuiCol.SeparatorActive]  = theme.SeparatorActive;
            ImGui.GetStyle().Colors[(int)ImGuiCol.Separator]        = theme.Separator;
            ImGui.GetStyle().Colors[(int)ImGuiCol.Tab]                = theme.Tab;
            ImGui.GetStyle().Colors[(int)ImGuiCol.TabHovered]         = theme.TabHovered;
            ImGui.GetStyle().Colors[(int)ImGuiCol.TabActive]          = theme.TabActive;
            ImGui.GetStyle().Colors[(int)ImGuiCol.TabUnfocused]       = theme.TabUnfocused;
            ImGui.GetStyle().Colors[(int)ImGuiCol.TabUnfocusedActive] = theme.TabUnfocusedActive;
            ImGui.GetStyle().Colors[(int)ImGuiCol.DockingPreview]     = theme.DockingPreview;
            ImGui.GetStyle().Colors[(int)ImGuiCol.TextSelectedBg]     = theme.TextSelectedBg;
            ImGui.GetStyle().Colors[(int)ImGuiCol.NavHighlight]       = theme.NavHighlight;
            ImGui.GetStyle().Colors[(int)ImGuiCol.Button]             = theme.Button;
            ImGui.GetStyle().Colors[(int)ImGuiCol.MenuBarBg]          = theme.WindowBg;
        }
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            _controller = new ImGuiController(Width, Height);

            //Set the current theme instance
            ColorTheme.UpdateTheme(new DarkTheme());

            //Disable the docking buttons
            ImGui.GetStyle().WindowMenuButtonPosition = ImGuiDir.None;

            //Enable docking support
            ImGui.GetIO().ConfigFlags |= ImGuiConfigFlags.DockingEnable;

            //Enable up/down key navigation
            ImGui.GetIO().ConfigFlags |= ImGuiConfigFlags.NavEnableKeyboard;
            //Only move via the title bar instead of the whole window
            ImGui.GetIO().ConfigWindowsMoveFromTitleBarOnly = true;

            //Init rendering data
            TimelineWindow.OnLoad();
            Pipeline.InitBuffers();

            camera_speed = Pipeline._camera.KeyMoveSpeed;

            InitDock();
            LoadRecentList();

            RenderTools.Init();

            ReloadGlobalShaders();

            var Thread2 = new Thread((ThreadStart)(() =>
            {
                //Init plugins
                Toolbox.Core.FileManager.GetFileFormats();
            }));

            Thread2.Start();

            ForceFocused = true;
        }