Im Gui Как обновить sh ImDrawList, когда я нажимаю на кнопку? - PullRequest
0 голосов
/ 04 марта 2020

У меня проблема с Im Gui,

Моя функция рисует форму, когда я запускаю ее здесь после Im Gui :: Begin (), но мне не разрешается очищать или заменять на новая форма.

while (!glfwWindowShouldClose(window))
    {

        glfwPollEvents();

        ImGui_ImplOpenGL3_NewFrame();
        ImGui_ImplGlfw_NewFrame();
        ImGui::NewFrame();

        if (show_demo_window)
            ImGui::ShowDemoWindow(&show_demo_window);

        {
            static int i = 0;

            static int a=1;
            static int b=1;
            ImGui::Begin("Hello, world!");                          

            ImGui::Text("This is some useful text.");  
            ImGui::InputInt("F0",&a);
            ImGui::InputInt("F1",&b);


            static ImDrawList *list= ImGui::GetWindowDrawList();
            draw( (int)ImGui::GetWindowWidth(), (int)ImGui::GetWindowHeight(), list);
            ImGui::SliderInt("int", &i, 1, 11);            // Edit 1 float using a slider from 0.0f to 1.0f



            if (ImGui::Button("Start")) {
                list->Clear();
                list=draw( (int)ImGui::GetWindowWidth(), (int)ImGui::GetWindowHeight(), list,i, a, b);
            }




             ImGui::GetIO().Framerate, ImGui::GetIO().Framerate);
            ImGui::End();
        }

        ImGui::Render();
        int display_w, display_h;
        glfwGetFramebufferSize(window, &display_w, &display_h);
        glViewport(0, 0, display_w, display_h);
        glClearColor(clear_color.x, clear_color.y, clear_color.z, clear_color.w);
        glClear(GL_COLOR_BUFFER_BIT);
        ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData());

        glfwSwapBuffers(window);
    }

В моем окне есть только кнопка и форма. Когда я нажимаю кнопку, новая форма создается только для 1 с, и первая форма не чистая.

...