#include "rescaler.h" SDL_Surface *screensurface; void hInit_rescaler(SDL_Surface *screen){ screensurface=screen; return; } void hSDL_UpdateRect(SDL_Surface *surface, Sint32 x, Sint32 y, Sint32 w, Sint32 h){ int m,n; int a, b,bb, sa=0, sb=0,t; m=y; a=(int)(y*0.857143); //Cada 6 bb=(int)(x*0.952381);//Cada 20 while(mpixels + //We start from pixel 0x0 of the surface, and use chars to move byte by byte ( screensurface->pitch * a ) + b //Where is the pixel we are interested in writing ) = //The pixel from below will get assigned to the pixel from above *(Uint32*) ( ( char* )surface->pixels + ( surface->pitch * m ) + n ); b+=4; sb++; }else{ sb=0; } n+=4; } a++; sa++; }else{ sa=0; } m++; } SDL_UpdateRect(screensurface, (int)(x*0.952381), (int)(y*0.857143), (int)(w*0.952381), (int)(h*0.857143)); return; } /* void hSDL_UpdateRect(SDL_Surface *surface, Sint32 x, Sint32 y, Sint32 w, Sint32 h){ int n,m; float fn, fm; m=y; fm=y*0.857143; while(mpixels + //We start from pixel 0x0 of the surface, and use chars to move byte by byte ( screensurface->pitch * (int)fm ) + ( 4 * (int)fn ) //Where is the pixel we are interested in writing ) = //The pixel from below will get assigned to the pixel from above *(Uint32*) ( ( char* )surface->pixels + ( surface->pitch * m ) + ( 4 * n ) ); n++; fn+=0.952381; } m++; fm+=0.857143; } SDL_UpdateRect(screensurface, (int)(x*0.952381), (int)(y*0.857143), (int)(w*0.952381), (int)(h*0.857143)); return; } */ int hSDL_Flip(SDL_Surface* screen){ return SDL_Flip(screensurface); }