2011-03-11 111 views
3

試圖在屏幕上顯示兩個圖像,每個佔用屏幕的一半。這裏是我使用的代碼:SDL圖像分割屏幕

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(); 

我希望能實現與兩個靜態圖像分屏效果。然而,所發生的只是第一個圖像顯示在屏幕的一半上,另一個是空白的。

我已經嘗試過使用矩形x & y,看起來圖像的位置不會改變,而是觀察矩形的大小。有任何想法嗎?

回答

5

SDL_BlitSurface需要兩個矩形,一個用於源,另一個用於目標。

來源矩形,這是第二個參數,是繪製源表面的哪部分(在這種情況下,您的圖像)。

目的地矩形是第四個參數,它是繪製目標表面的地方。

您正在爲兩者傳遞相同的矩形,這可能不是您想要的。如果您只想顯示整個圖像,請爲源矩形傳遞NULL。

+0

當然!謝謝你,修正它。 – peacemaker 2011-03-11 11:59:22