По примеру из хабра создал окно и вывел в нем картинку bmp . Все работает. По аналогии создал второе окно и попытался уже в двух окнах вывести две разные картинки. Два окна создаются, но картинка отображается только в одном. В чем может быть проблема?
#include <iostream>
#include <SDL2/SDL.h>
const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;
SDL_Window *win = NULL;
SDL_Surface *scr = NULL;
SDL_Surface *smile = NULL;
SDL_Window *win2 = NULL;
SDL_Surface *scr2 = NULL;
SDL_Surface *smile2 = NULL;
int init() {
if (SDL_Init(SDL_INIT_VIDEO) != 0) {
return 1;
}
win = SDL_CreateWindow("lab1_part1", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN);
if (win == NULL) {
return 1;
}
win2 = SDL_CreateWindow("lab1_part1!", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN);
if (win2 == NULL) {
return 1;
}
scr = SDL_GetWindowSurface(win);
scr2 = SDL_GetWindowSurface(win);
return 0;
}
int load() {
smile = SDL_LoadBMP("/Users/semenolhovic/Xcode/sdl2_test/hello_world.bmp");
smile2 = SDL_LoadBMP("/Users/semenolhovic/Xcode/sdl2_test/hello.bmp");
if (smile == NULL) {
return 1;
}
if (smile2 == NULL) {
return 1;
}
return 0;
}
void quit() {
SDL_FreeSurface(smile);
SDL_FreeSurface(smile2);
smile = NULL;
smile2 = NULL;
SDL_DestroyWindow(win);
SDL_DestroyWindow(win2);
SDL_Quit();
}
int main (int argc, char ** args) {
if (init() == 1) {
return 1;
}
if (load() == 1) {
return 1;
}
SDL_BlitSurface(smile, NULL, scr, NULL);
SDL_BlitSurface(smile2, NULL, scr2, NULL);
SDL_UpdateWindowSurface(win);
SDL_UpdateWindowSurface(win2);
SDL_Delay(2000);
SDL_Event windowEvent;
while ( true )
{
if ( SDL_PollEvent( &windowEvent ) )
{
if ( SDL_QUIT == windowEvent.type )
{
break;
}
}
}
quit();
return 0;
}
IDE Xcode