Hola gente,
estoy liadete con un error bastante curioso, intento hacer que, dada una surface, unas coordenadas X e Y de esa surface y un color ya creado con SDL_Color, un pixel se ponga de un determinado color.
En concreto la funcion es esta:
void SetPixel ( SDL_Surface* pSurface , int x , int y , SDL_Color color )
{
//convert color
Uint32 col = SDL_MapRGB ( pSurface->format , color.r , color.g , color.b ) ;
//determine position
char* pPosition = ( char* ) pSurface->pixels ;
//offset by y
pPosition += ( pSurface->pitch * y ) ;
//offset by x
pPosition += ( pSurface->format->BytesPerPixel * x ) ;
//copy pixel data
memcpy ( pPosition , &col , pSurface->format->BytesPerPixel ) ;
}
Sacada de http://www.gamedev.net/reference/programming/features/sdl2/page5.asp
Funcionar funciona, porque me sale la pantalla llena de pixeles coloreados. Pero siempre termina dandome Segmentation Fault (SDL Parachute Deployed).
Tal y como indican en la web, uso SDL_LockSurface y SDL_UnlockSurface antes de comenzar nada.
¿Alguna idea de que puede ser?
estoy liadete con un error bastante curioso, intento hacer que, dada una surface, unas coordenadas X e Y de esa surface y un color ya creado con SDL_Color, un pixel se ponga de un determinado color.
En concreto la funcion es esta:
void SetPixel ( SDL_Surface* pSurface , int x , int y , SDL_Color color )
{
//convert color
Uint32 col = SDL_MapRGB ( pSurface->format , color.r , color.g , color.b ) ;
//determine position
char* pPosition = ( char* ) pSurface->pixels ;
//offset by y
pPosition += ( pSurface->pitch * y ) ;
//offset by x
pPosition += ( pSurface->format->BytesPerPixel * x ) ;
//copy pixel data
memcpy ( pPosition , &col , pSurface->format->BytesPerPixel ) ;
}
Sacada de http://www.gamedev.net/reference/programming/features/sdl2/page5.asp
Funcionar funciona, porque me sale la pantalla llena de pixeles coloreados. Pero siempre termina dandome Segmentation Fault (SDL Parachute Deployed).
Tal y como indican en la web, uso SDL_LockSurface y SDL_UnlockSurface antes de comenzar nada.
¿Alguna idea de que puede ser?
