Mi idea es hacer un sistemita de iluminacion pero no puedo hacerlo, ayer encontre un codigo en este lugar que modificaba el color de los pixel y como lo que habia intentado hacer no funciono intente usar parte de ese codigo, pero me tira error en el momento en que uso el SDL_DisplayFormatAlpha les dejo en codigo para que lo vean y si pueden ayudarme les estare agradecido.
- Código: Seleccionar todo
- SDL_Surface* screen = SDL_SetVideoMode(640, 480, 16,SDL_HWSURFACE|SDL_DOUBLEBUF);
 void put_pixel(SDL_Surface *_ima, int x, int y, Uint32 pixel)
 {
 int bpp = _ima->format->BytesPerPixel;
 Uint8 *p = (Uint8 *)_ima->pixels + y * _ima->pitch + x*bpp;
 switch (bpp)
 {
 case 1:
 *p = pixel;
 break;
 case 2:
 *(Uint16 *)p = pixel;
 break;
 case 3:
 if (SDL_BYTEORDER == SDL_BIG_ENDIAN)
 {
 p[0]=(pixel >> 16) & 0xff;
 p[1]=(pixel >> 8) & 0xff;
 p[2]=pixel & 0xff;
 }
 else
 {
 p[0]=pixel & 0xff;
 p[1]=(pixel >> 8) & 0xff;
 p[2]=(pixel >> 16) & 0xff;
 }
 break;
 case 4:
 *(Uint32 *) p = pixel;
 break;
 }
 }
 void get_pixel_color (SDL_Surface * imagen, int x, int y, SDL_Color * color)
 {
 int bpp = imagen->format->BytesPerPixel;
 Uint8 *p = (Uint8 *)imagen->pixels + y * imagen->pitch + x * bpp;
 SDL_GetRGBA (* (Uint32 *) p, imagen->format,
 &(color->r),
 &(color->g),
 &(color->b),
 &(color->unused)
 );
 }
 void set_pixel_color (SDL_Surface * imagen, int x, int y, SDL_Color * color)
 {
 Uint32 pixel;
 pixel = SDL_MapRGBA (imagen->format, color->r, color->g, color->b,
 color->unused);
 put_pixel (imagen, x, y, pixel);
 }
 void ini_mi (int m[640][480],int x){ //Inicializa la matris que tendra los valores de transaprencia en cada parte.
 int i,j;
 for (j=0;j<640;j++){
 for(i=0;i<480>Aca me tira Fallo de Segmento
 SDL_Color color;
 color.r = 0;
 color.g = 0;
 color.b = 0;
 if (SDL_MUSTLOCK (mi))
 {
 if (SDL_LockSurface (mi) < 0)
 return NULL;
 }
 for (j=0;j<640;j++){
 for(i=0;i<480;i++){
 color.unused = m[j][i];
 set_pixel_color (dst,j,i,&color);
 }
 }
 if (SDL_MUSTLOCK (mi))
 SDL_UnlockSurface (mi);
 return dst;
 }
Esta es el .h que estoy haciendo, la funcion iluminar recibe un PNG. Desde ya muchas gracias.



 .
.