this should be `struct SDL_Surface`