Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Mas Problemes En Sdl

Iniciado por AlexHdez, 10 de Mayo de 2004, 04:06:50 PM

« anterior - próximo »

AlexHdez

 Buenas, siento molestarles de nuevo, pero tengo mas problemas en tiempo de ejecución que no se abordar, :(

Os copio la parte del codigo que falla:

SS2DL.h

class Frame

{

public:

SDL_Surface *frame;
SDL_Surface *InitFrame;
void FUnLoad();
void FLoad(char *path, int x, int y, int h, int w);

};


SS2DL.cpp

void Frame::FLoad(char *path, int x, int y, int h, int w)

{

SDL_Rect inicio;

inicio.x = x;
inicio.y = y;
inicio.h = h;
inicio.w = w;

InitFrame = IMG_Load(path);
SDL_BlitSurface(InitFrame, &inicio, frame, NULL); ------------------------> Aqui falla, access violation
SDL_SetColorKey(frame, SDL_SRCCOLORKEY | SDL_RLEACCEL, SDL_MapRGB(frame->format,255,0,0));
frame = SDL_DisplayFormat(frame);

}


Puede que sea una chorrada pero llevo dos horas dandole vueltas.

Gracias de antemano

Un saludo

sés

 Cuando haces el "blit", frame aun no ha sido inicializado.
Soy indeciso... ¿o no?

AlexHdez

 Como inicializado? frame es una superficie, y se inicia en SDL_Surface *frame; no? si no es asi corregidme please.

Un saludo

sés

 
Cita de: "AlexHdez"Como inicializado? frame es una superficie, y se inicia en SDL_Surface *frame; no? si no es asi corregidme please.
Fíjate que no es del tipo SDL_Surface, si no un PUNTERO a SDL_Surface.
Con eso lo único que haces es declarar un puntero. Ese puntero puede valer NULL o CUALQUIER COSA, pero no apuntará a nada válido y, mucho menos, a una SDL_Surface.

Las superficies en SDL (si no me falla la memoria) se crean con SDL_CreateSurface(....).
Soy indeciso... ¿o no?

AlexHdez

 void Frame::FLoad(char *path, int x, int y, int h, int w)

{

SDL_Rect inicio;

inicio.x = x;
inicio.y = y;
inicio.h = h;
inicio.w = w;

InitFrame = IMG_Load(path);

frame = SDL_CreateRGBSurface(SDL_HWSURFACE, w, h, 8, 0, 0, 0, 0);

SDL_BlitSurface(InitFrame, &inicio, frame, NULL); ------------------------> Aqui falla, access violation
SDL_SetColorKey(frame, SDL_SRCCOLORKEY | SDL_RLEACCEL, SDL_MapRGB(frame->format,255,0,0));
frame = SDL_DisplayFormat(frame);

}


Sigue dando error, :S

AlexHdez

 Vale ya esta el error ya no esta en esa parte del codigo, sorry y muchas gracias!

sés

Soy indeciso... ¿o no?






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.