SDL Image Split Screen - PullRequest
       8

SDL Image Split Screen

4 голосов
/ 11 марта 2011

Попытка вывести на экран два изображения, каждое из которых занимает половину экрана. Вот код, который я использую:

SDL_Init(SDL_INIT_VIDEO);
SDL_Surface* pScreen = SDL_SetVideoMode(1280,720,16, SDL_FULLSCREEN );
SDL_ShowCursor(SDL_DISABLE);
//load two images
SDL_Surface* pImage1 = IMG_Load("/media/x01.JPG");
SDL_Surface* pImage2 = IMG_Load("/media/x02.JPG");

//create two rectangles for left and right of screen
SDL_Rect leftR;
SDL_Rect rightR;
leftR.x = 600;
leftR.y = 0;
leftR.w = 640;
leftR.h = 720;
rightR.x = 640;
rightR.y = 0;
rightR.w = 640;
rightR.h = 720;

//display
SDL_BlitSurface(pImage1,&leftR,pScreen,&leftR);
SDL_BlitSurface(pImage2,&rightR,pScreen,&rightR);
SDL_Flip(pScreen);

//free image surfaces
SDL_FreeSurface(pImage1);
SDL_FreeSurface(pImage2);

//wait to see what's on screen...
sleep(5);

//close SDL
SDL_Quit();

Я надеюсь добиться эффекта разделения экрана с двумя статическими изображениями. Однако все, что происходит, это то, что первое изображение отображается на одной половине экрана, а другая пуста.

Я попытался поиграться с Rect x & y, и кажется, что положение изображения не меняется, но вместо этого изменяется размер прямоугольника просмотра. Есть идеи?

1 Ответ

6 голосов
/ 11 марта 2011

SDL_BlitSurface принимает два прямоугольника, один для источника и один для пункта назначения.

Прямоугольник source , который является вторым параметром, является частью поверхности источника(в данном случае ваше изображение) для рисования.

Прямоугольник destination , который является четвертым параметром, - это место для рисования на поверхности назначения.

You 'пропускаем один и тот же прямоугольник для обоих, что, вероятно, не то, что вы хотите.Если вы просто хотите отобразить все изображение, передайте NULL для исходного прямоугольника.

...