#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" #include "helper.h" #ifndef aTHX_ #define aTHX_ #endif #include MODULE = SDL::Palette PACKAGE = SDL::Palette PREFIX = palette_ =for documentation SDL_Palette -- Color palette for 8-bit pixel formats typedef struct{ int ncolors; SDL_Color *colors } SDL_Palette; =cut int palette_ncolors ( palette ) SDL_Palette *palette CODE: RETVAL = palette->ncolors; OUTPUT: RETVAL AV * palette_colors ( palette ) SDL_Palette *palette CODE: RETVAL = (AV*)sv_2mortal((SV*)newAV()); int i; for(i = 0; i < palette->ncolors; i++) av_push( RETVAL, cpy2bag( (SDL_Color *)(palette->colors + i), sizeof(SDL_Color *), sizeof(SDL_Color), "SDL::Color" ) ); OUTPUT: RETVAL SV * palette_color_index ( palette, index ) SDL_Palette *palette int index PREINIT: char * CLASS = "SDL::Color"; CODE: RETVAL = cpy2bag( (SDL_Color *)(palette->colors + index), sizeof(SDL_Color *), sizeof(SDL_Color), "SDL::Color" ); OUTPUT: RETVAL void palette_DESTROY ( bag ) SV *bag CODE: objDESTROY(bag, safefree);