ImGui Как обновить ImDrawList при нажатии на кнопку?
У меня проблема с ImGui,
Моя функция рисует форму, когда я запускаю ее после ImGui::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 с, а первая форма не чистая.