RETVAL
-HV *
+SDL_VideoInfo*
video_get_video_info()
+ PREINIT:
+ char* CLASS = "SDL::VideoInfo";
+ CODE:
+ RETVAL = (SDL_VideoInfo *) SDL_GetVideoInfo();
+
+ OUTPUT:
+ RETVAL
+
+SV *
+video_video_driver_name( )
+
CODE:
- HV *hv;
- SDL_VideoInfo *info;
- info = (SDL_VideoInfo *) safemalloc ( sizeof(SDL_VideoInfo));
- memcpy(info,SDL_GetVideoInfo(),sizeof(SDL_VideoInfo));
- hv = newHV();
- hv_store(hv,"hw_available",strlen("hw_available"),
- newSViv(info->hw_available),0);
- hv_store(hv,"wm_available",strlen("wm_available"),
- newSViv(info->wm_available),0);
- hv_store(hv,"blit_hw",strlen("blit_hw"),
- newSViv(info->blit_hw),0);
- hv_store(hv,"blit_hw_CC",strlen("blit_hw_CC"),
- newSViv(info->blit_hw_CC),0);
- hv_store(hv,"blit_hw_A",strlen("blit_hw_A"),
- newSViv(info->blit_hw_A),0);
- hv_store(hv,"blit_sw",strlen("blit_sw"),
- newSViv(info->blit_sw),0);
- hv_store(hv,"blit_sw_CC",strlen("blit_sw_CC"),
- newSViv(info->blit_sw_CC),0);
- hv_store(hv,"blit_sw_A",strlen("blit_sw_A"),
- newSViv(info->blit_sw_A),0);
- hv_store(hv,"blit_fill",strlen("blit_fill"),
- newSViv(info->blit_fill),0);
- hv_store(hv,"video_mem",strlen("video_mem"),
- newSViv(info->video_mem),0);
- RETVAL = hv;
- OUTPUT:
+ char buffer[1024];
+ if ( SDL_VideoDriverName(buffer, 1024) != NULL )
+ {
+ RETVAL = newSVpv(buffer, 0);
+ }
+ else
+ XSRETURN_UNDEF;
+ OUTPUT:
RETVAL
+
+AV*
+list_modes ( format, flags )
+ Uint32 flags
+ SDL_PixelFormat *format
+ CODE:
+ SDL_Rect **mode;
+ RETVAL = newAV();
+ mode = SDL_ListModes(format,flags);
+ if (mode == (SDL_Rect**)-1 ) {
+ av_push(RETVAL,newSVpv("all",0));
+ } else if (! mode ) {
+ av_push(RETVAL,newSVpv("none",0));
+ } else {
+ for (;*mode;mode++) {
+ av_push(RETVAL,newSViv(PTR2IV(*mode)));
+ }
+ }
+ OUTPUT:
+ RETVAL
+
+
+
+