My program was working fine and then I moved some things around. Now it consistently crashes at SDL_GetRGBA().
SDL_Color *color_to_rgb(long color)
{
SDL_Color *RGB;
RGB = new SDL_Color;
[check for NULL]
SDL_GetRGBA (color, pixelformat, &RGB->r, &RGB->g, &RGB->b, &RGB->a);
return RGB;
}
Pixelformat is set as follows:
SDL_Surface *t2;
if((t2 = SDL_LoadBMP(buffer))==NULL)
[error and exit]
SDL_PixelFormat *pixelformat = t2->format;
Any ideas about what might be going wrong?
It’s almost certainly something pointer-related. As to what exactly, the first and best idea comes from the error message. Can you copy/paste it verbatim here?
I ran it in the debugger to get something useful.
Thread 1 received signal SIGSEV, Segmentation fault.
0x000007fecd50abb9 in SDL_DYNAPI_entry ()
from c:.…SDL2.dll
Yeah, segmentation fault is a pointer problem. SDL_DYNAPI_entry
suggests that the problem is probably (but I’m not 100% certain about this) not in the code you presented here, but rather something’s going wrong with the dynamic library loading.
I think.
Can someone who knows the dynapi stuff better than me have a look at this?
I was looking through the code and found a place where I was accessing the wrong array. I fixed that, and things appear to be back to normal. Thanks for the responses.