› Foros › Multiplataforma › Desarrollo
[...]
int main(int argc,char* argv[]) {
SDL_Init(SDL_INIT_VIDEO);
atexit(SDL_Quit);
SDL_Surface* main = SDL_SetVideMode(320,240,32,SDL_SWSURFACE);
SDL_QuitSubSystem(SDL_INIT_VIDEO);
SDL_InitSubSystem(SDL_INIT_VIDEO);
SDL_Surface* main = SDL_SetVideMode(320,240,32,SDL_SWSURFACE | SDL_FULLSCREEN);
return 0;
}
==7620== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 681 from 4)
==7620== malloc/free: in use at exit: 121,112 bytes in 999 blocks.
==7620== malloc/free: 27,027 allocs, 26,028 frees, 5,599,540 bytes allocated.
==7620== For counts of detected errors, rerun with: -v
==7620== searching for pointers to 999 not-freed blocks.
==7620== checked 781,128 bytes.
==7620==
==7620== LEAK SUMMARY:
==7620== definitely lost: 800 bytes in 24 blocks.
==7620== possibly lost: 0 bytes in 0 blocks.
==7620== still reachable: 120,312 bytes in 975 blocks.
==7620== suppressed: 0 bytes in 0 blocks.
pantalla = SDL_SetVideoMode(PANTALLAX, PANTALLAY, 16, flags);
pantalla_copia = SDL_CreateRGBSurface(flags,pantalla->w,pantalla->h,pantalla->format->BitsPerPixel,0,0,0,0);
if(event.key.keysym.sym == SDLK_SPACE )
{
//copiamos a pantalla_copia
SDL_BlitSurface(pantalla,NULL,pantalla_copia,NULL);
//cambiamos
flags^=SDL_HWSURFACE | SDL_DOUBLEBUF | SDL_FULLSCREEN;
pantalla = SDL_SetVideoMode(PANTALLAX, PANTALLAY, 16,flags);
//rebliteamos la pantalla
SDL_BlitSurface(pantalla_copia,NULL,pantalla,NULL);
int *aPtr;
aPtr = new Class();
aPtr = new Class();
zheo escribió:¿Qué pasa con la estructura SDL_Surface que creas en la primera llamada cuando le asignas el valor de la nueva SDL_Surface en la segunda llamada?
O dicho de otro modo.
¿qué pasa con estos punteros?int *aPtr;
aPtr = new Class();
aPtr = new Class();
Prueba liberando la superficie de vídeo con SDL_FreeSurface()
zheo escribió:Por cierto, en tu código defines el puntero llamado main dos veces
#include "SDL/SDL.h"
int main(int argc,char* argv[]) {
SDL_Init(SDL_INIT_VIDEO);
atexit(SDL_Quit);
SDL_Surface* main = SDL_SetVideoMode (320,240,16,SDL_SWSURFACE);
//SDL_FreeSurface(main); //no necesario, pero si quereis probar...
return 0;
}
parrincrisis escribió:Si, a mi tambien me pasa. ¿Lo estas probando en un ordenador mas o menos nuevo? A mi me pasa ultimamente con casi todas las librerias y he llegado a la conclusion de que sera mi portatil( a lo mejor el driver de la grafica intel), de hecho mi proyecto de fin de carrera me ha dado estos problemas tanto OpenAL como Ogre3D, y finalmente los he tenido que dejar por imposible y rezar porque no petara el juego en la presentacion .
Elelegido escribió:Es la 1.2.12. Yo esto también lo estoy trabajando con el VS08 por eso de que sea multiplataforma y tal, pero ahí no encuentro ninguna herramienta de análisis de memoria gratuita, que el IBM Purify roza los 1000€ xD. En Windows por tanto, no se si ocurre, porque haciendo el mismo tipo de pruebas que hago en Linux, el programa no se cuelga (aún).
Lo de seguir la traza, no se a que te refieres exactamente... a que haga la traza del código de la SDL?