source: trunk/src/lib/sdl_image.cc @ 5

Last change on this file since 5 was 5, checked in by epyon, 12 years ago
  • nv/lib/*.hh - dynamic/static/shared headers for OpenGL, Lua, SDL and SDL_image
  • nv/lib/*.hh - implementation for dynamic versions
  • all libraries may be used in dynamic, static or shared mode, depending on defines
  • static mode is inclusion of the library into the executable
  • shared mode is the usual compile time linking to a shared library
  • dynamic mode is runtime linking at will
File size: 2.8 KB
RevLine 
[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 */
14const SDL_version * (NV_SDL_APIENTRY *IMG_Linked_Version) (void) = nullptr;
15int (NV_SDL_APIENTRY *IMG_Init) (int flags) = nullptr;
16void (NV_SDL_APIENTRY *IMG_Quit) (void) = nullptr;
17SDL_Surface * (NV_SDL_APIENTRY *IMG_LoadTyped_RW) (SDL_RWops *src, int freesrc, char *type) = nullptr;
18SDL_Surface * (NV_SDL_APIENTRY *IMG_Load) (const char *file) = nullptr;
19SDL_Surface * (NV_SDL_APIENTRY *IMG_Load_RW) (SDL_RWops *src, int freesrc) = nullptr;
20int (NV_SDL_APIENTRY *IMG_isICO) (SDL_RWops *src) = nullptr;
21int (NV_SDL_APIENTRY *IMG_isCUR) (SDL_RWops *src) = nullptr;
22int (NV_SDL_APIENTRY *IMG_isBMP) (SDL_RWops *src) = nullptr;
23int (NV_SDL_APIENTRY *IMG_isGIF) (SDL_RWops *src) = nullptr;
24int (NV_SDL_APIENTRY *IMG_isJPG) (SDL_RWops *src) = nullptr;
25int (NV_SDL_APIENTRY *IMG_isPNG) (SDL_RWops *src) = nullptr;
26int (NV_SDL_APIENTRY *IMG_isTIF) (SDL_RWops *src) = nullptr;
27SDL_Surface * (NV_SDL_APIENTRY *IMG_LoadICO_RW) (SDL_RWops *src) = nullptr;
28SDL_Surface * (NV_SDL_APIENTRY *IMG_LoadCUR_RW) (SDL_RWops *src) = nullptr;
29SDL_Surface * (NV_SDL_APIENTRY *IMG_LoadBMP_RW) (SDL_RWops *src) = nullptr;
30SDL_Surface * (NV_SDL_APIENTRY *IMG_LoadGIF_RW) (SDL_RWops *src) = nullptr;
31SDL_Surface * (NV_SDL_APIENTRY *IMG_LoadJPG_RW) (SDL_RWops *src) = nullptr;
32SDL_Surface * (NV_SDL_APIENTRY *IMG_LoadPNG_RW) (SDL_RWops *src) = nullptr;
33SDL_Surface * (NV_SDL_APIENTRY *IMG_LoadTGA_RW) (SDL_RWops *src) = nullptr;
34SDL_Surface * (NV_SDL_APIENTRY *IMG_LoadTIF_RW) (SDL_RWops *src) = nullptr;
35
36bool 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
Note: See TracBrowser for help on using the repository browser.