PDA

Ver la versión completa : mejora de velocidad



boubou
26/06/2005, 20:43
Buenas, estaba yo haciendo una chorrada para la gp y resulta que me va lenta xDDD

esta hecha en sdl, pego aqui un trozo de codigo.

A ver si me podeis aydar a optimizar el codigo ;).


#include "global.h"

SDL_Surface *luchador[9999];
SDL_Rect r[9999];
SDL_Surface *backg;
SDL_Rect r2;
int back=0;
SDL_Surface *dest;

void load_background(char *file){

backg=SDL_LoadBMP(file);
r2.w = backg->w;
r2.h = backg->h;
r2.x=0;
r2.y=0;
back=1;
}


void load_luch(char *file,int n){

luchador[n]=SDL_LoadBMP(file);


SDL_SetColorKey (luchador[n], (SDL_SRCCOLORKEY | SDL_RLEACCEL) ,SDL_MapRGB(luchador[n] -> format,0, 0, 0));

}

void luch_set_position(int n,int x,int y){

r[n].w = luchador[n]->w;
r[n].h = luchador[n]->h;
r[n].x=x;
r[n].y=y;

}
void render_luch(int n,SDL_Surface *surf){
SDL_BlitSurface(luchador[n], NULL, surf, &r[n]);
SDL_UpdateRects(luchador[n],1,&r[n]);
}
void render_background(SDL_Surface *surf){

if(back==1){SDL_BlitSurface(backg, NULL, surf, &r2);
SDL_UpdateRects(backg,1,&r2);
}

}

void flip(SDL_Surface *surf){



SDL_Flip(surf);

}


void free_luch(int n){

SDL_FreeSurface(luchador[n]);
luchador[n]=NULL;

}

Aiken
27/06/2005, 00:30
9999 surfaces? que burrada no? :D aunque no creo que sea la razon.

apuesto a que estas trabajando a 16bits .... yo probe una cosa tonta a 16bits y me iba bastante lento

- Prueba el ultimo port de sdl, creo que era la beta3
- Prueba a 8bits (aunque lo mismo tienes que cambiar las imagenes y tal)

PD. Como me alegra ver que hay gente que trababa con sdl-gp32, crei que era el unico :D todo el mundo con el fenix :D

Aiken

oankali
27/06/2005, 08:30
[...]

PD. Como me alegra ver que hay gente que trababa con sdl-gp32, crei que era el unico :D todo el mundo con el fenix :D

Aiken

Bueno, no todos estan con el fenix :D, ni con SDL tampoco :p

boubou
29/06/2005, 18:10
Ahhh gracias!! ;)