2011-03-11 5 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(); 

두 개의 정지 이미지를 사용하여 분할 화면 효과를 얻길 바랍니다. 그러나 첫 번째 이미지가 화면 절반에 표시되고 다른 이미지는 비어 있습니다.

나는 Rect x &으로 주위를 어지럽 혔다. 이미지의 위치가 변경되지 않고 대신에보기 사각형의 크기와 같다. 어떤 아이디어?

답변

5

SDL_BlitSurface은 두 개의 직사각형, 즉 원본과 대상 중 하나를 취합니다.

소스 두 번째 매개 변수 인 직사각형은 원본 표면 (이 경우 이미지)에서 그릴 부분입니다.

대상 네 번째 매개 변수 인 직사각형은 대상 표면에 그릴 위치입니다.

둘 모두에 대해 동일한 직사각형을 전달하면 원하는 것은 아닐 수 있습니다. 전체 이미지 만 표시하려면 소스 사각형에 NULL을 전달하십시오.

+0

물론! 고마워, 고쳐 줘. – peacemaker