/*
 *  call-seq:
 *     colorkey  ->  [r,g,b]  or  nil
 *
 *  Return the colorkey of the surface in the form [r,g,b] (or +nil+ if there
 *  is no key). The colorkey of a surface is the exact color which will be
 *  ignored when the surface is blitted, effectively turning that color
 *  transparent. This is often used to make a blue (for example) background
 *  on an image seem transparent.
 */
VALUE rbgm_surface_get_colorkey( VALUE self )
{
        SDL_Surface *surf;
        Uint32 colorkey;
        Uint8 r,g,b;

        Data_Get_Struct(self, SDL_Surface, surf);
        colorkey = surf->format->colorkey;
        if((int *)colorkey == NULL)
                return Qnil;
        SDL_GetRGB(colorkey, surf->format, &r, &g, &b);
        return rb_ary_new3(3,UINT2NUM(r),UINT2NUM(g),UINT2NUM(b));
}