[5] | 1 | // Copyright (C) 2012-2013 ChaosForge / Kornel Kisielewicz
|
---|
| 2 | // http://chaosforge.org/
|
---|
| 3 | //
|
---|
| 4 | // This file is part of NV Libraries.
|
---|
| 5 | // For conditions of distribution and use, see copyright notice in nv.hh
|
---|
| 6 |
|
---|
| 7 | #include "nv/lib/sdl_image.hh"
|
---|
| 8 |
|
---|
| 9 | #if defined( NV_SDL_DYNAMIC )
|
---|
| 10 |
|
---|
| 11 | #include "nv/library.hh"
|
---|
| 12 |
|
---|
| 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;
|
---|
| 35 |
|
---|
| 36 | bool nv::load_sdl_image_library( const char* path )
|
---|
| 37 | {
|
---|
| 38 | # define NV_SDL_IMAGE_LOAD( symbol ) *(void **) (&symbol) = sdl_image_library.get(#symbol);
|
---|
| 39 | static nv::library sdl_image_library( path );
|
---|
| 40 |
|
---|
| 41 | NV_SDL_IMAGE_LOAD( IMG_Linked_Version );
|
---|
| 42 | NV_SDL_IMAGE_LOAD( IMG_Init );
|
---|
| 43 | NV_SDL_IMAGE_LOAD( IMG_Quit );
|
---|
| 44 | NV_SDL_IMAGE_LOAD( IMG_LoadTyped_RW );
|
---|
| 45 | NV_SDL_IMAGE_LOAD( IMG_Load );
|
---|
| 46 | NV_SDL_IMAGE_LOAD( IMG_Load_RW );
|
---|
| 47 | NV_SDL_IMAGE_LOAD( IMG_isICO );
|
---|
| 48 | NV_SDL_IMAGE_LOAD( IMG_isCUR );
|
---|
| 49 | NV_SDL_IMAGE_LOAD( IMG_isBMP );
|
---|
| 50 | NV_SDL_IMAGE_LOAD( IMG_isGIF );
|
---|
| 51 | NV_SDL_IMAGE_LOAD( IMG_isJPG );
|
---|
| 52 | NV_SDL_IMAGE_LOAD( IMG_isPNG );
|
---|
| 53 | NV_SDL_IMAGE_LOAD( IMG_isTIF );
|
---|
| 54 | NV_SDL_IMAGE_LOAD( IMG_LoadICO_RW );
|
---|
| 55 | NV_SDL_IMAGE_LOAD( IMG_LoadCUR_RW );
|
---|
| 56 | NV_SDL_IMAGE_LOAD( IMG_LoadBMP_RW );
|
---|
| 57 | NV_SDL_IMAGE_LOAD( IMG_LoadGIF_RW );
|
---|
| 58 | NV_SDL_IMAGE_LOAD( IMG_LoadJPG_RW );
|
---|
| 59 | NV_SDL_IMAGE_LOAD( IMG_LoadPNG_RW );
|
---|
| 60 | NV_SDL_IMAGE_LOAD( IMG_LoadTGA_RW );
|
---|
| 61 | NV_SDL_IMAGE_LOAD( IMG_LoadTIF_RW );
|
---|
| 62 |
|
---|
| 63 | # undef NV_SDL_IMAGE_LOAD
|
---|
| 64 | return true;
|
---|
| 65 | }
|
---|
| 66 | #endif
|
---|