/*  call-seq:
 *     Screen.get_resolution  ->  [width, height]
 *
 *  Returns the pixel dimensions of the user's display (i.e. monitor).
 *  (That is not the same as Screen#size, which only measures the
 *  Rubygame window.) You can use this information to detect
 *  how large of a Screen can fit on the user's display.
 *
 *  This method can _only_ be used when there is no open Screen instance.
 *  This method raises SDLError if there is a Screen instance (i.e.
 *  you have done Screen.new before). This is a limitation of the SDL
 *  function SDL_GetVideoInfo, which behaves differently when a Screen
 *  is open than when it is closed.
 *
 *  This method will also raise SDLError if it cannot get the display
 *  size for some other reason.
 *
 */
VALUE rbgm_screen_getresolution(VALUE module)
{
  VALUE array;
  const SDL_VideoInfo* hw;
  init_video_system();

  /* Test for existing Screen */
  SDL_Surface *surface;
  surface = SDL_GetVideoSurface();
  if(surface != NULL)
        {
                rb_raise(eSDLError, "You cannot get resolution when there is " \
             "an open Screen. See the docs for the reason.");
        }

  hw = SDL_GetVideoInfo();
  if(hw==NULL)
        {
                rb_raise(eSDLError,"Couldn't get video info: %s",SDL_GetError());
        }

  array = rb_ary_new();
  rb_ary_push(array, INT2NUM(hw->current_w));
  rb_ary_push(array, INT2NUM(hw->current_h));
  return array;
}