From: Kartik Thakore Date: Fri, 23 Oct 2009 18:21:19 +0000 (-0400) Subject: Added VideoInfo as an object with appropriate docs X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=sdlgit%2FSDL_perl.git;a=commitdiff_plain;h=f1ad86be2247706265075553334715bf1d3b0d6b Added VideoInfo as an object with appropriate docs --- diff --git a/Build.PL b/Build.PL index f297f5a..c8b3f8a 100644 --- 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 index 0000000..680ee65 --- /dev/null +++ b/lib/SDL/VideoInfo.pm @@ -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. This module only provides getters to the struct C. + + +=head1 DESCRIPTION + +This object is a read-only structure and is returned by C. It contains information on either the best available mode if called before C or the current video mode if called after C. + +=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 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 was called before C (available since SDL 1.2.10) + +=head1 SEE ALSO + +L, L + +=cut diff --git a/src/Core/objects/VideoInfo.xs b/src/Core/objects/VideoInfo.xs index 44276d7..d7e5947 100644 --- a/src/Core/objects/VideoInfo.xs +++ b/src/Core/objects/VideoInfo.xs @@ -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 --- 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