Ignore:
Timestamp:
07/17/13 05:20:15 (12 years ago)
Author:
epyon
Message:
  • sdl and sdl_image - using new function loading method
  • sdl - started modifing towards 2.0 support
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/lib/sdl_image.cc

    r109 r168  
    1111#include "nv/library.hh"
    1212
    13 /* SDL_image.h functions */
    14 const SDL_version * (NV_SDL_APIENTRY *IMG_Linked_Version) (void) = nullptr;
    15 int (NV_SDL_APIENTRY *IMG_Init) (int flags) = nullptr;
    16 void (NV_SDL_APIENTRY *IMG_Quit) (void) = nullptr;
    17 SDL_Surface * (NV_SDL_APIENTRY *IMG_LoadTyped_RW) (SDL_RWops *src, int freesrc, char *type) = nullptr;
    18 SDL_Surface * (NV_SDL_APIENTRY *IMG_Load) (const char *file) = nullptr;
    19 SDL_Surface * (NV_SDL_APIENTRY *IMG_Load_RW) (SDL_RWops *src, int freesrc) = nullptr;
    20 int (NV_SDL_APIENTRY *IMG_isICO) (SDL_RWops *src) = nullptr;
    21 int (NV_SDL_APIENTRY *IMG_isCUR) (SDL_RWops *src) = nullptr;
    22 int (NV_SDL_APIENTRY *IMG_isBMP) (SDL_RWops *src) = nullptr;
    23 int (NV_SDL_APIENTRY *IMG_isGIF) (SDL_RWops *src) = nullptr;
    24 int (NV_SDL_APIENTRY *IMG_isJPG) (SDL_RWops *src) = nullptr;
    25 int (NV_SDL_APIENTRY *IMG_isPNG) (SDL_RWops *src) = nullptr;
    26 int (NV_SDL_APIENTRY *IMG_isTIF) (SDL_RWops *src) = nullptr;
    27 SDL_Surface * (NV_SDL_APIENTRY *IMG_LoadICO_RW) (SDL_RWops *src) = nullptr;
    28 SDL_Surface * (NV_SDL_APIENTRY *IMG_LoadCUR_RW) (SDL_RWops *src) = nullptr;
    29 SDL_Surface * (NV_SDL_APIENTRY *IMG_LoadBMP_RW) (SDL_RWops *src) = nullptr;
    30 SDL_Surface * (NV_SDL_APIENTRY *IMG_LoadGIF_RW) (SDL_RWops *src) = nullptr;
    31 SDL_Surface * (NV_SDL_APIENTRY *IMG_LoadJPG_RW) (SDL_RWops *src) = nullptr;
    32 SDL_Surface * (NV_SDL_APIENTRY *IMG_LoadPNG_RW) (SDL_RWops *src) = nullptr;
    33 SDL_Surface * (NV_SDL_APIENTRY *IMG_LoadTGA_RW) (SDL_RWops *src) = nullptr;
    34 SDL_Surface * (NV_SDL_APIENTRY *IMG_LoadTIF_RW) (SDL_RWops *src) = nullptr;
     13#define NV_SDL_FUN( rtype, fname, fparams ) rtype (NV_SDL_APIENTRY *fname) fparams = nullptr;
     14#include <nv/lib/detail/sdl_image_functions.inc>
     15#undef NV_SDL_FUN
    3516
    3617bool nv::load_sdl_image_library( const char* path )
    3718{
    38 #       define NV_SDL_IMAGE_LOAD( symbol ) *(void **) (&symbol) = sdl_image_library.get(#symbol);
    3919        static nv::library sdl_image_library;
    4020        if ( sdl_image_library.is_open() ) return true;
    4121        sdl_image_library.open( path );
    4222
    43         NV_SDL_IMAGE_LOAD( IMG_Linked_Version );
    44         NV_SDL_IMAGE_LOAD( IMG_Init );
    45         NV_SDL_IMAGE_LOAD( IMG_Quit );
    46         NV_SDL_IMAGE_LOAD( IMG_LoadTyped_RW );
    47         NV_SDL_IMAGE_LOAD( IMG_Load );
    48         NV_SDL_IMAGE_LOAD( IMG_Load_RW );
    49         NV_SDL_IMAGE_LOAD( IMG_isICO );
    50         NV_SDL_IMAGE_LOAD( IMG_isCUR );
    51         NV_SDL_IMAGE_LOAD( IMG_isBMP );
    52         NV_SDL_IMAGE_LOAD( IMG_isGIF );
    53         NV_SDL_IMAGE_LOAD( IMG_isJPG );
    54         NV_SDL_IMAGE_LOAD( IMG_isPNG );
    55         NV_SDL_IMAGE_LOAD( IMG_isTIF );
    56         NV_SDL_IMAGE_LOAD( IMG_LoadICO_RW );
    57         NV_SDL_IMAGE_LOAD( IMG_LoadCUR_RW );
    58         NV_SDL_IMAGE_LOAD( IMG_LoadBMP_RW );
    59         NV_SDL_IMAGE_LOAD( IMG_LoadGIF_RW );
    60         NV_SDL_IMAGE_LOAD( IMG_LoadJPG_RW );
    61         NV_SDL_IMAGE_LOAD( IMG_LoadPNG_RW );
    62         NV_SDL_IMAGE_LOAD( IMG_LoadTGA_RW );
    63         NV_SDL_IMAGE_LOAD( IMG_LoadTIF_RW );
     23#       define NV_SDL_FUN( rtype, fname, fparams ) *(void **) (&fname) = sdl_image_library.get(#fname);
     24#       include <nv/lib/detail/sdl_image_functions.inc>
     25#       undef NV_SDL_FUN
    6426
    65 #       undef NV_SDL_IMAGE_LOAD
    6627        return true;
    6728}
Note: See TracChangeset for help on using the changeset viewer.