2011-03-11 157 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