Начал писать простейший текстовый редактор на с++ с помощью библиотеки SDL2
Создал родительский класс Connection_SDL, где подключаю SDL, создаю 2 окна(меню и основное рабочее) и накладываю на окна белый фон(просто изображение BMP)
От него унаследовал класс View, в котором написал метод вывода текста на экран(Text) и метод Preview, в котором хочу вывести превью. Все работает, но я хочу, чтобы превью отображалось 3 секунды и пропадало. Написал в конце SDL_Delay(3000), но все получилось наоборот. Отображается 2 окна с фоном и только через 3 секунды появляется текст, который потом не пропадает.
Класс View:
void View::Text(SDL_Surface* scr, const char* message, const char* style_text,
int size, SDL_Color color, SDL_Rect dest)
{
TTF_Font* fnt = TTF_OpenFont(style_text, size);
SDL_Surface* sText = TTF_RenderUTF8_Blended(fnt, message, color);
SDL_BlitSurface(sText, NULL, scr, &dest);
SDL_FreeSurface(sText);
TTF_CloseFont(fnt);
}
void View::Preview(SDL_Surface* scr)
{
Color* color = new Color;
SDL_Rect dest1 = { 100, 500 };
Text(scr, "Olhovich I586", "preview.ttf",
50, color->red, dest1);
SDL_Rect dest2 = { 100, 550 };
Text(scr, "Course work: Simple text editor", "preview.ttf",
50, color->red, dest2);
SDL_Delay(3000);
}
Вызов метода в main:
SDL_BlitSurface(connect->background_main, NULL, connect->screen_main, NULL);
SDL_BlitSurface(connect->background_menu, NULL, connect->screen_menu, NULL);
view->Preview(connect->screen_main);
SDL_UpdateWindowSurface(connect->window_main);
SDL_UpdateWindowSurface(connect->window_menu);