Added VideoInfo as an object with appropriate docs
Kartik Thakore [Fri, 23 Oct 2009 18:21:19 +0000 (14:21 -0400)]
Build.PL
lib/SDL/VideoInfo.pm [new file with mode: 0644]
src/Core/objects/VideoInfo.xs
typemap

index f297f5a..c8b3f8a 100644 (file)
--- a/Build.PL
+++ b/Build.PL
@@ -84,6 +84,14 @@ my %subsystems =
                },
                libraries => [qw( SDL )],
        },
+       VideoInfo => {
+               file      => {
+                       from  => 'src/Core/objects/VideoInfo.xs',
+                       to    => 'lib/SDL/VideoInfo.xs',
+               },
+               libraries => [qw( SDL )],
+       },
+
        TTF_Font => {
                file      => {
                        from  => 'src/TTF/objects/TTF_Font.xs',
diff --git a/lib/SDL/VideoInfo.pm b/lib/SDL/VideoInfo.pm
new file mode 100644 (file)
index 0000000..680ee65
--- /dev/null
@@ -0,0 +1,112 @@
+package SDL::VideoInfo;
+use strict;
+use warnings;
+require Exporter;
+require DynaLoader;
+our @ISA = qw(Exporter DynaLoader);
+bootstrap SDL::VideoInfo;
+
+1;
+
+__END__
+
+=pod
+
+=head1 NAME
+
+SDL::VideoInfo - Video Target Information 
+
+=head1 SYNOPSIS
+
+       my $video_info = SDL::Video::get_video_info();
+
+VideoInfo is only accessible C<SDL::Video::get_video_info>. This module only provides getters to the struct C<SDL_VideoInfo>.
+
+
+=head1 DESCRIPTION
+
+This object is a read-only structure and is returned by C<SDL::Video::get_video_info>. It contains information on either the best available mode if called before C<SDL::Video::set_video_mode> or the current video mode if called after C<SDL::Video::set_video_mode>. 
+
+=head1 METHODS
+
+
+=head2 hw_available
+
+       $video_info->hw_available() # 1 if Hardware Accelerated Surfaces available      
+
+Is it possible to create hardware surfaces ?
+
+=head2 wm_available
+
+       $video_info->wm_available() # 1 if Window Manager available     
+
+Is there a window manager available ?
+
+=head2 blit_hw
+       
+       $video_info->blit_hw() 
+
+Are hardware to hardware blits accelerated ?
+
+=head2 blit_hw_CC
+
+       $video_info->blit_hw_CC()       
+
+Are hardware to hardware colorkey blits accelerated ?
+
+=head2 blit_hw_A
+
+       $video_info->blit_hw_A()        
+
+Are hardware to hardware alpha blits accelerated ?
+
+=head2 blit_sw
+       
+       $video_info->blit_sw()
+
+Are software to hardware blits accelerated ?
+
+=head2 blit_sw_CC
+
+       $video_info->blit_sw_CC()
+       
+
+Are software to hardware colorkey blits accelerated ?
+
+=head2 blit_sw_A       
+
+       $video_info->blit_sw_A()
+
+Are software to hardware alpha blits accelerated ?
+
+=head2 blit_fill
+
+       $video_info->blit_fill()        
+
+Are color fills accelerated ?
+
+=head2 video_mem
+       
+       my $video_mem = $video_info->video_mem();
+
+Total amount of video memory in Kilobytes, should be accessed only if hw_available == 1, otherwise it is equal to 0
+
+=head2 vfmt
+
+       my $vd_pixel_format = $video_info->vfmt();
+               
+
+C<SDL::PixelFormat> of the video device
+
+=head2 current_w, current_h
+
+       $video_info->current_w();
+       $video_info->current_h();       
+
+Width and height of the current video mode, or of the desktop mode if C<SDL_GetVideoInfo> was called before C<SDL::Video::set_video_mode> (available since SDL 1.2.10)
+
+=head1 SEE ALSO
+
+L<SDL::Video>, L<SDL::PixelFormat>
+
+=cut
index 44276d7..d7e5947 100644 (file)
@@ -36,7 +36,9 @@ typedef struct{
 
 Uint32
 videoinfo_hw_available( videoinfo )
+
        SDL_VideoInfo *videoinfo
+       
        CODE:
                RETVAL = videoinfo->hw_available;
        OUTPUT:
@@ -44,7 +46,9 @@ videoinfo_hw_available( videoinfo )
 
 Uint32
 videoinfo_wm_available( videoinfo )
+
        SDL_VideoInfo *videoinfo
+       
        CODE:
                RETVAL = videoinfo->wm_available;
        OUTPUT:
@@ -52,7 +56,9 @@ videoinfo_wm_available( videoinfo )
 
 Uint32
 videoinfo_blit_hw( videoinfo )
+
        SDL_VideoInfo *videoinfo
+       
        CODE:
                RETVAL = videoinfo->blit_hw;
        OUTPUT:
@@ -60,7 +66,9 @@ videoinfo_blit_hw( videoinfo )
 
 Uint32
 videoinfo_blit_hw_CC( videoinfo )
+
        SDL_VideoInfo *videoinfo
+       
        CODE:
                RETVAL = videoinfo->blit_hw_CC;
        OUTPUT:
@@ -69,7 +77,9 @@ videoinfo_blit_hw_CC( videoinfo )
 
 Uint32
 videoinfo_blit_hw_A( videoinfo )
+
        SDL_VideoInfo *videoinfo
+       
        CODE:
                RETVAL = videoinfo->blit_hw_A;
        OUTPUT:
@@ -77,7 +87,9 @@ videoinfo_blit_hw_A( videoinfo )
 
 Uint32
 videoinfo_blit_sw( videoinfo )
+
        SDL_VideoInfo *videoinfo
+       
        CODE:
                RETVAL = videoinfo->blit_sw;
        OUTPUT:
@@ -85,7 +97,9 @@ videoinfo_blit_sw( videoinfo )
 
 Uint32
 videoinfo_blit_sw_CC( videoinfo )
+
        SDL_VideoInfo *videoinfo
+       
        CODE:
                RETVAL = videoinfo->blit_sw_CC;
        OUTPUT:
@@ -94,7 +108,9 @@ videoinfo_blit_sw_CC( videoinfo )
 
 Uint32
 videoinfo_blit_sw_A( videoinfo )
+
        SDL_VideoInfo *videoinfo
+       
        CODE:
                RETVAL = videoinfo->blit_sw_A;
        OUTPUT:
@@ -102,7 +118,9 @@ videoinfo_blit_sw_A( videoinfo )
 
 Uint32
 videoinfo_blit_fill( videoinfo )
+
        SDL_VideoInfo *videoinfo
+       
        CODE:
                RETVAL = videoinfo->blit_fill;
        OUTPUT:
@@ -110,7 +128,9 @@ videoinfo_blit_fill( videoinfo )
 
 Uint32
 videoinfo_video_mem( videoinfo )
+
        SDL_VideoInfo *videoinfo
+       
        CODE:
                RETVAL = videoinfo->video_mem;
        OUTPUT:
@@ -119,7 +139,13 @@ videoinfo_video_mem( videoinfo )
 
 SDL_PixelFormat *
 videoinfo_vfmt( videoinfo )
+
        SDL_VideoInfo *videoinfo
+
+       PREINIT:
+       
+               char* CLASS = "SDL::VideoFormat";       
+       
        CODE:
                RETVAL = videoinfo->vfmt;
        OUTPUT:
@@ -127,17 +153,21 @@ videoinfo_vfmt( videoinfo )
 
 int
 videoinfo_current_w( videoinfo )
+
        SDL_VideoInfo *videoinfo
+       
        CODE:
-               RETVAL = videoinfor->current_w;
+               RETVAL = videoinfo->current_w;
        OUTPUT:
                RETVAL
 
 int
 videoinfo_current_h( videoinfo )
+
        SDL_VideoInfo *videoinfo
+       
        CODE:
-               RETVAL = videoinfor->current_h;
+               RETVAL = videoinfo->current_h;
        OUTPUT:
                RETVAL
 
diff --git a/typemap b/typemap
index 146a6ae..ca2a9a0 100644 (file)
--- a/typemap
+++ b/typemap
@@ -23,6 +23,7 @@ SDL_Rect *            O_OBJECT
 SDL_Color *            O_OBJECT
 SDL_Palette *          T_PTR
 SDL_PixelFormat *      O_OBJECT
+SDL_VideoInfo *                O_OBJECT
 SDL_Cursor *           T_PTR
 SDL_AudioSpec *                T_PTR
 SDL_AudioCVT *         T_PTR