У меня есть два файла это ui.cpp и loadui.cpp
ui.cpp - все классы UI объектов, например: кнопки, текст и т.д, есть функция .render(renderer), которая рендерит все объекты.
loadui.cpp - функция которая возвращает все UI объекты и добавляет в список, который позже возвращается.
В цикле в main.cpp есть данный код:
LayoutUI main_screen("./layouts/main_screen.json");
vector<Button> buttons = main_screen.load(renderer);
SDL_Event event;
while(programRunning)
{
while(SDL_PollEvent(&event) != 0)
{
if(event.type == SDL_QUIT)
programRunning = false;
for (Button& btn : buttons) {
btn.handleEvent(event);
}
}
SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255);
SDL_RenderClear(renderer);
for (Button& btn : buttons) {
btn.render(renderer);
}
SDL_RenderPresent(renderer);
}
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
В цикле основного цикла идут ивенты, они работают прекрасно, то есть, происходят нажатия кнопок и т.д.
После цикла ивента возникают проблемы с прорисовкой UI объектов, которые не отображаются должным образом.
Но, если я это сделаю вручную, то всё заработает.