Jump to content

  • Log In with Google      Sign In   
  • Create Account

Banner advertising on our site currently available from just $5!


1. Learn about the promo. 2. Sign up for GDNet+. 3. Set up your advert!


codeboyjimmy

Member Since 08 Feb 2012
Offline Last Active Mar 26 2012 11:57 PM

Topics I've Started

How to copy a certain portion of the screen to SDL_Surface

08 February 2012 - 01:28 AM

I am a beginner in SDL graphics. I am trying to copy a certain portion of the screen to SDL_Surface. And I tried using this code but it didn't work out

SDL_Surface* original=NULL;
SDL_Rect rct;
rct.x=90;
rct.y=70;
rct.w=100;
rct.h=100;


SDL_BlitSurface(screen,&rct,original,NULL);

//It should blit the area of the screen bounded by rct at 0,0 of the original

apply_surface(500,100,original,screen);

//now it should blit the original at 500,100 of the screen

SDL_Flip(screen);

but nothing was blitted on the screen.


but the same code worked out well when it was written this way


SDL_Surface* original=NULL;
SDL_Rect rct;
rct.x=90;
rct.y=70;
rct.w=100;
rct.h=100;

original=IMG_Load("pics/picture1.png"); //I loaded a picture in the original

SDL_BlitSurface(screen,&rct,original,NULL);

apply_surface(500,100,original,screen);

SDL_Flip(screen);

And it worked out very well. It blitted a small part of my window i.e. screen to 500,100 of the screen

So I think there must be something wrong with my understanding about surface blitting function.
I am using SDL 1.2.14 and Code::Blocks for IDE.

And if there is a better way to do what I am trying to do, then please suggest

Thank you in advance.

PARTNERS