Changeset 90

Show
Ignore:
Timestamp:
02/20/05 01:08:56 (4 years ago)
Author:
aldacron
Message:

* Added Derelict*_Unload functions to each package so that libraries can be unloaded at will.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/DerelictAL/derelict/openal/al.d

    r80 r90  
    247247} 
    248248 
     249public void DerelictAL_Unload() 
     250{ 
     251    if(hal !== null) 
     252        ExeModule_Release(hal); 
     253    if(exeModuleInited) 
     254    { 
     255        ExeModule_Uinit(); 
     256        exeModuleInited = false; 
     257    } 
     258} 
     259 
    249260version(Windows) 
    250261{ 
     
    266277static ~this() 
    267278{ 
    268     if(exeModuleInited) 
    269     { 
    270         ExeModule_Release(hal); 
    271         ExeModule_Uninit(); 
    272     } 
    273 
     279    DerelictAL_Unload(); 
     280
  • trunk/DerelictGL/derelict/opengl/gl.d

    r84 r90  
    4343public void DerelictGL_Load(char[] libName) 
    4444{ 
    45    internalLoad(libName); 
     45    internalLoad(libName); 
    4646    loadPlatformGL(); 
    4747    loadGL(); 
     
    5656} 
    5757 
     58public void DerelictGL_Unload() 
     59{ 
     60    internalCleanup(); 
     61} 
     62 
    5863 
    5964static ~this() 
    6065{ 
    61    internalCleanup(); 
     66   DerelictGL_Unload(); 
    6267} 
  • trunk/DerelictGL/derelict/opengl/internal.d

    r83 r90  
    1616package void internalLoad(char[] libName) 
    1717{ 
    18    if(hlib !== null) 
     18    if(hlib !== null) 
    1919        return; 
    2020 
     
    2828    if(hlib is null) 
    2929        throw new Exception("Failed to load the shared library " ~ libName); 
    30      
     30 
    3131} 
    3232 
    3333package void internalCleanup() 
    3434{ 
    35     ExeModule_Release(hlib); 
     35    if(hlib !== null) 
     36        ExeModule_Release(hlib); 
    3637    if(exeModuleInited) 
     38    { 
    3739        ExeModule_Uninit(); 
     40        exeModuleInited = false; 
     41    } 
    3842} 
  • trunk/DerelictGLFW/derelict/glfw/glfw.d

    r89 r90  
    8585} 
    8686 
    87 static ~this() 
    88 
     87public void DerelictGLFW_Unload() 
     88
     89    if(hglfw) 
     90        ExeModule_Release(hglfw); 
    8991    if(exeModuleInited) 
    9092    { 
    91         ExeModule_Release(hglfw); 
    9293        ExeModule_Uninit(); 
     94        exeModuleInited = false; 
    9395    } 
    9496} 
    9597 
    96 version(Windows)  
    97     extern(Windows): 
     98static ~this() 
     99
     100    DerelictGLFW_Unload(); 
     101
     102 
     103version(Windows) 
     104    extern(Windows): 
    98105else 
    99    extern(C): 
     106    extern(C): 
    100107 
    101108//----------------------------------------------------------- 
  • trunk/DerelictGLU/derelict/opengl/glu.d

    r84 r90  
    130130} 
    131131 
     132public void DerelictGLU_Unload() 
     133{ 
     134    if(hglu !== null) 
     135        ExeModule_Release(hglu); 
     136} 
     137 
    132138 
    133139static ~this() 
    134140{ 
    135     ExeModule_Release(hglu); 
     141    DerelictGLU_Unload(); 
    136142} 
    137143 
  • trunk/DerelictSDL/derelict/sdl/sdl.d

    r80 r90  
    331331} 
    332332 
     333public void DerelictSDL_Unload() 
     334{ 
     335    if(hsdl !== null) 
     336        ExeModule_Release(hsdl); 
     337    if(exeModuleInited) 
     338    { 
     339        ExeModule_Uninit(); 
     340        exeModuleInited = false; 
     341    } 
     342} 
     343 
    333344static ~this() 
    334345{ 
    335  if(exeModuleInited) 
    336  { 
    337   ExeModule_Release(hsdl); 
    338   ExeModule_Uninit(); 
    339  } 
    340 
     346    DerelictSDL_Unload(); 
     347
  • trunk/DerelictSDLImage/derelict/sdl/image.d

    r80 r90  
    142142} 
    143143 
     144public void DerelictSDLImage_Unload() 
     145{ 
     146    if(hsdlImg !== null) 
     147        ExeModule_Release(hsdlImg); 
     148} 
     149 
    144150static ~this() 
    145151{ 
    146     ExeModule_Release(hsdlImg); 
     152    DerelictSDLImage_Unload(); 
    147153} 
    148154 
  • trunk/DerelictSDLMixer/derelict/sdl/mixer.d

    r80 r90  
    344344} 
    345345 
     346public void DerelictSDLMixer_Unload() 
     347{ 
     348    if(hsdlMixer !== null) 
     349        ExeModule_Release(hsdlMixer); 
     350} 
     351 
    346352static ~this() 
    347353{ 
    348    ExeModule_Release(hsdlMixer); 
    349 } 
     354   DerelictSDLMixer_Unload(); 
     355} 
  • trunk/DerelictSDLNet/derelict/sdl/net.d

    r80 r90  
    3131struct IPaddress 
    3232{ 
    33    Uint32 host; 
    34    Uint16 port; 
     33    Uint32 host; 
     34    Uint16 port; 
    3535} 
    3636 
    3737typedef void* TCPsocket; 
    3838 
    39 const uint INADDR_ANY          = 0x00000000; 
    40 const uint INADDR_NONE         = 0xFFFFFFFF; 
    41 const uint INADDR_BROADCAST        = 0xFFFFFFFF; 
    42  
    43 const uint SDLNET_MAX_UDPCHANNELS          = 32; 
    44 const uint SDLNET_MAX_UDPADDRESSES         = 4; 
     39const uint INADDR_ANY           = 0x00000000; 
     40const uint INADDR_NONE          = 0xFFFFFFFF; 
     41const uint INADDR_BROADCAST     = 0xFFFFFFFF; 
     42 
     43const uint SDLNET_MAX_UDPCHANNELS           = 32; 
     44const uint SDLNET_MAX_UDPADDRESSES          = 4; 
    4545 
    4646typedef void* UDPsocket; 
     
    4848struct UDPpacket 
    4949{ 
    50    int channel; 
    51    Uint8 *data; 
    52    int len; 
    53    int maxlen; 
    54    int status; 
    55    IPaddress address; 
     50    int channel; 
     51    Uint8 *data; 
     52    int len; 
     53    int maxlen; 
     54    int status; 
     55    IPaddress address; 
    5656} 
    5757 
     
    6060struct _SDLNet_GenericSocket 
    6161{ 
    62    int ready; 
     62    int ready; 
    6363} 
    6464alias _SDLNet_GenericSocket* SDLNet_GenericSocket; 
     
    7272int SDLNet_TCP_AddSocket(SDLNet_SocketSet set, TCPsocket sock) 
    7373{ 
    74    return SDLNet_AddSocket(set, cast(SDLNet_GenericSocket)sock); 
     74    return SDLNet_AddSocket(set, cast(SDLNet_GenericSocket)sock); 
    7575} 
    7676 
    7777int SDLNet_TCP_DelSocket(SDLNet_SocketSet set, TCPsocket sock) 
    7878{ 
    79    return SDLNet_DelSocket(set, cast(SDLNet_GenericSocket)sock); 
     79    return SDLNet_DelSocket(set, cast(SDLNet_GenericSocket)sock); 
    8080} 
    8181 
    8282int SDLNet_UDP_AddSocket(SDLNet_SocketSet set, UDPsocket sock) 
    8383{ 
    84    return SDLNet_AddSocket(set, cast(SDLNet_GenericSocket)sock); 
     84    return SDLNet_AddSocket(set, cast(SDLNet_GenericSocket)sock); 
    8585} 
    8686 
    8787int SDLNet_UDP_DelSocket(SDLNet_SocketSet set, UDPsocket sock) 
    8888{ 
    89    return SDLNet_DelSocket(set, cast(SDLNet_GenericSocket)sock); 
     89    return SDLNet_DelSocket(set, cast(SDLNet_GenericSocket)sock); 
    9090} 
    9191 
    9292bit SDLNet_SocketReady(TCPsocket sock) 
    9393{ 
    94     return ((sock !== null) && (cast(SDLNet_GenericSocket)sock).ready);  
     94    return ((sock !== null) && (cast(SDLNet_GenericSocket)sock).ready); 
    9595} 
    9696 
    9797bit SDLNet_SocketReady(UDPsocket sock) 
    9898{ 
    99    return ((sock !== null) && (cast(SDLNet_GenericSocket)sock).ready); 
     99    return ((sock !== null) && (cast(SDLNet_GenericSocket)sock).ready); 
    100100} 
    101101 
    102102void SDLNet_Write16(Uint16 value, void* areap) 
    103103{ 
    104    Uint16* areap16 = cast(Uint16*)areap; 
    105    *areap16 = SDL_SwapBE16(value); 
     104    Uint16* areap16 = cast(Uint16*)areap; 
     105    *areap16 = SDL_SwapBE16(value); 
    106106} 
    107107 
    108108Uint16 SDLNet_Read16(void *areap) 
    109109{ 
    110    Uint16* areap16 = cast(Uint16*)areap; 
    111    return SDL_SwapBE16(*areap16); 
     110    Uint16* areap16 = cast(Uint16*)areap; 
     111    return SDL_SwapBE16(*areap16); 
    112112} 
    113113 
    114114void SDLNet_Write32(Uint32 value, void* areap) 
    115115{ 
    116    Uint32* areap32 = cast(Uint32*)areap; 
    117     *areap32 = SDL_SwapBE32(value);  
     116    Uint32* areap32 = cast(Uint32*)areap; 
     117    *areap32 = SDL_SwapBE32(value); 
    118118} 
    119119 
    120120Uint32 SDLNet_Read32(void* areap) 
    121121{ 
    122    Uint32* areap32 = cast(Uint32*)areap; 
    123    return SDL_SwapBE32(*areap32); 
     122    Uint32* areap32 = cast(Uint32*)areap; 
     123    return SDL_SwapBE32(*areap32); 
    124124} 
    125125 
     
    131131typedef int function() pfSDLNet_Init; 
    132132typedef void function() pfSDLNet_Quit; 
    133 pfSDLNet_Init          SDLNet_Init; 
    134 pfSDLNet_Quit          SDLNet_Quit; 
     133pfSDLNet_Init           SDLNet_Init; 
     134pfSDLNet_Quit           SDLNet_Quit; 
    135135 
    136136typedef int function(IPaddress*, char*, Uint16) pfSDLNet_ResolveHost; 
    137137typedef char* function(IPaddress*) pfSDLNet_ResolveIP; 
    138 pfSDLNet_ResolveHost       SDLNet_ResolveHost; 
    139 pfSDLNet_ResolveIP         SDLNet_ResolveIP; 
     138pfSDLNet_ResolveHost        SDLNet_ResolveHost; 
     139pfSDLNet_ResolveIP          SDLNet_ResolveIP; 
    140140 
    141141typedef TCPsocket function(IPaddress*) pfSDLNet_TCP_Open; 
     
    145145typedef int function(TCPsocket,void*,int) pfSDLNet_TCP_Recv; 
    146146typedef void function(TCPsocket) pfSDLNet_TCP_Close; 
    147 pfSDLNet_TCP_Open          SDLNet_TCP_Open; 
    148 pfSDLNet_TCP_Accept            SDLNet_TCP_Accept; 
    149 pfSDLNet_TCP_GetPeerAddress    SDLNet_TCP_GetPeerAddress; 
    150 pfSDLNet_TCP_Send          SDLNet_TCP_Send; 
    151 pfSDLNet_TCP_Recv          SDLNet_TCP_Recv; 
    152 pfSDLNet_TCP_Close         SDLNet_TCP_Close; 
     147pfSDLNet_TCP_Open           SDLNet_TCP_Open; 
     148pfSDLNet_TCP_Accept         SDLNet_TCP_Accept; 
     149pfSDLNet_TCP_GetPeerAddress SDLNet_TCP_GetPeerAddress; 
     150pfSDLNet_TCP_Send           SDLNet_TCP_Send; 
     151pfSDLNet_TCP_Recv           SDLNet_TCP_Recv; 
     152pfSDLNet_TCP_Close          SDLNet_TCP_Close; 
    153153 
    154154typedef UDPpacket* function(int) pfSDLNet_AllocPacket; 
     
    157157typedef UDPpacket** function(int,int) pfSDLNet_AllocPacketV; 
    158158typedef void function(UDPpacket**) pfSDLNet_FreePacketV; 
    159 pfSDLNet_AllocPacket       SDLNet_AllocPacket; 
    160 pfSDLNet_ResizePacket      SDLNet_ResizePacket; 
    161 pfSDLNet_FreePacket            SDLNet_FreePacket; 
    162 pfSDLNet_AllocPacketV      SDLNet_AllocPacketV; 
    163 pfSDLNet_FreePacketV       SDLNet_FreePacketV; 
     159pfSDLNet_AllocPacket        SDLNet_AllocPacket; 
     160pfSDLNet_ResizePacket       SDLNet_ResizePacket; 
     161pfSDLNet_FreePacket         SDLNet_FreePacket; 
     162pfSDLNet_AllocPacketV       SDLNet_AllocPacketV; 
     163pfSDLNet_FreePacketV        SDLNet_FreePacketV; 
    164164 
    165165typedef UDPsocket function(Uint16) pfSDLNet_UDP_Open; 
     
    172172typedef int function(UDPsocket,UDPpacket*) pfSDLNet_UDP_Recv; 
    173173typedef void function(UDPsocket) pfSDLNet_UDP_Close; 
    174 pfSDLNet_UDP_Open          SDLNet_UDP_Open; 
    175 pfSDLNet_UDP_Bind          SDLNet_UDP_Bind; 
    176 pfSDLNet_UDP_Unbind            SDLNet_UDP_Unbind; 
    177 pfSDLNet_UDP_GetPeerAddress    SDLNet_UDP_GetPeerAddress; 
    178 pfSDLNet_UDP_SendV         SDLNet_UDP_SendV; 
    179 pfSDLNet_UDP_Send          SDLNet_UDP_Send; 
    180 pfSDLNet_UDP_RecvV         SDLNet_UDP_RecvV; 
    181 pfSDLNet_UDP_Recv          SDLNet_UDP_Recv; 
    182 pfSDLNet_UDP_Close         SDLNet_UDP_Close; 
     174pfSDLNet_UDP_Open           SDLNet_UDP_Open; 
     175pfSDLNet_UDP_Bind           SDLNet_UDP_Bind; 
     176pfSDLNet_UDP_Unbind         SDLNet_UDP_Unbind; 
     177pfSDLNet_UDP_GetPeerAddress SDLNet_UDP_GetPeerAddress; 
     178pfSDLNet_UDP_SendV          SDLNet_UDP_SendV; 
     179pfSDLNet_UDP_Send           SDLNet_UDP_Send; 
     180pfSDLNet_UDP_RecvV          SDLNet_UDP_RecvV; 
     181pfSDLNet_UDP_Recv           SDLNet_UDP_Recv; 
     182pfSDLNet_UDP_Close          SDLNet_UDP_Close; 
    183183 
    184184typedef SDLNet_SocketSet function(int) pfSDLNet_AllocSocketSet; 
     
    187187typedef int function(SDLNet_SocketSet,Uint32) pfSDLNet_CheckSockets; 
    188188typedef void function(SDLNet_SocketSet) pfSDLNet_FreeSocketSet; 
    189 pfSDLNet_AllocSocketSet        SDLNet_AllocSocketSet; 
    190 pfSDLNet_AddSocket         SDLNet_AddSocket; 
    191 pfSDLNet_DelSocket         SDLNet_DelSocket; 
    192 pfSDLNet_CheckSockets      SDLNet_CheckSockets; 
    193 pfSDLNet_FreeSocketSet     SDLNet_FreeSocketSet; 
     189pfSDLNet_AllocSocketSet     SDLNet_AllocSocketSet; 
     190pfSDLNet_AddSocket          SDLNet_AddSocket; 
     191pfSDLNet_DelSocket          SDLNet_DelSocket; 
     192pfSDLNet_CheckSockets       SDLNet_CheckSockets; 
     193pfSDLNet_FreeSocketSet      SDLNet_FreeSocketSet; 
    194194 
    195195/* 
     
    198198typedef Uint16 function(void*) pfSDLNet_Read16; 
    199199typedef Uint32 function(void*) pfSDLNet_Read32; 
    200 pfSDLNet_Write16           SDLNet_Write16; 
    201 pfSDLNet_Write32           SDLNet_Write32; 
    202 pfSDLNet_Read16                SDLNet_Read16; 
    203 pfSDLNet_Read32                SDLNet_Read32; 
     200pfSDLNet_Write16            SDLNet_Write16; 
     201pfSDLNet_Write32            SDLNet_Write32; 
     202pfSDLNet_Read16             SDLNet_Read16; 
     203pfSDLNet_Read32             SDLNet_Read32; 
    204204*/ 
    205205 
     
    213213private void* getProc(char[] procname) 
    214214{ 
    215    void *symbol = ExeModule_GetSymbol(hsdlNet, procname); 
    216    if(symbol is null) 
    217        throw new Exception("Failed to load SDLNet proc address " ~ procname); 
    218    return symbol; 
     215    void *symbol = ExeModule_GetSymbol(hsdlNet, procname); 
     216    if(symbol is null) 
     217        throw new Exception("Failed to load SDLNet proc address " ~ procname); 
     218    return symbol; 
    219219} 
    220220 
    221221private void load() 
    222222{ 
    223    SDLNet_Init = cast(pfSDLNet_Init)getProc("SDLNet_Init"); 
    224    SDLNet_Quit = cast(pfSDLNet_Quit)getProc("SDLNet_Quit"); 
    225    SDLNet_ResolveHost = cast(pfSDLNet_ResolveHost)getProc("SDLNet_ResolveHost"); 
    226    SDLNet_ResolveIP = cast(pfSDLNet_ResolveIP)getProc("SDLNet_ResolveIP"); 
    227    SDLNet_TCP_Open = cast(pfSDLNet_TCP_Open)getProc("SDLNet_TCP_Open"); 
    228    SDLNet_TCP_Accept = cast(pfSDLNet_TCP_Accept)getProc("SDLNet_TCP_Accept"); 
    229    SDLNet_TCP_GetPeerAddress = cast(pfSDLNet_TCP_GetPeerAddress)getProc("SDLNet_TCP_GetPeerAddress"); 
    230    SDLNet_TCP_Send = cast(pfSDLNet_TCP_Send)getProc("SDLNet_TCP_Send"); 
    231    SDLNet_TCP_Recv = cast(pfSDLNet_TCP_Recv)getProc("SDLNet_TCP_Recv"); 
    232    SDLNet_TCP_Close = cast(pfSDLNet_TCP_Close)getProc("SDLNet_TCP_Close"); 
    233    SDLNet_AllocPacket = cast(pfSDLNet_AllocPacket)getProc("SDLNet_AllocPacket"); 
    234    SDLNet_ResizePacket = cast(pfSDLNet_ResizePacket)getProc("SDLNet_ResizePacket"); 
    235    SDLNet_FreePacket = cast(pfSDLNet_FreePacket)getProc("SDLNet_FreePacket"); 
    236    SDLNet_AllocPacketV = cast(pfSDLNet_AllocPacketV)getProc("SDLNet_AllocPacketV"); 
    237    SDLNet_FreePacketV = cast(pfSDLNet_FreePacketV)getProc("SDLNet_FreePacketV"); 
    238    SDLNet_UDP_Open = cast(pfSDLNet_UDP_Open)getProc("SDLNet_UDP_Open"); 
    239    SDLNet_UDP_Bind = cast(pfSDLNet_UDP_Bind)getProc("SDLNet_UDP_Bind"); 
    240    SDLNet_UDP_Unbind = cast(pfSDLNet_UDP_Unbind)getProc("SDLNet_UDP_Unbind"); 
    241    SDLNet_UDP_GetPeerAddress = cast(pfSDLNet_UDP_GetPeerAddress)getProc("SDLNet_UDP_GetPeerAddress"); 
    242    SDLNet_UDP_SendV = cast(pfSDLNet_UDP_SendV)getProc("SDLNet_UDP_SendV"); 
    243    SDLNet_UDP_Send = cast(pfSDLNet_UDP_Send)getProc("SDLNet_UDP_Send"); 
    244    SDLNet_UDP_RecvV = cast(pfSDLNet_UDP_RecvV)getProc("SDLNet_UDP_RecvV"); 
    245    SDLNet_UDP_Recv = cast(pfSDLNet_UDP_Recv)getProc("SDLNet_UDP_Recv"); 
    246    SDLNet_UDP_Close = cast(pfSDLNet_UDP_Close)getProc("SDLNet_UDP_Close"); 
    247    SDLNet_AllocSocketSet = cast(pfSDLNet_AllocSocketSet)getProc("SDLNet_AllocSocketSet"); 
    248    SDLNet_AddSocket = cast(pfSDLNet_AddSocket)getProc("SDLNet_AddSocket"); 
    249    SDLNet_DelSocket = cast(pfSDLNet_DelSocket)getProc("SDLNet_DelSocket"); 
    250    SDLNet_CheckSockets = cast(pfSDLNet_CheckSockets)getProc("SDLNet_CheckSockets"); 
    251    SDLNet_FreeSocketSet = cast(pfSDLNet_FreeSocketSet)getProc("SDLNet_FreeSocketSet"); 
     223    SDLNet_Init = cast(pfSDLNet_Init)getProc("SDLNet_Init"); 
     224    SDLNet_Quit = cast(pfSDLNet_Quit)getProc("SDLNet_Quit"); 
     225    SDLNet_ResolveHost = cast(pfSDLNet_ResolveHost)getProc("SDLNet_ResolveHost"); 
     226    SDLNet_ResolveIP = cast(pfSDLNet_ResolveIP)getProc("SDLNet_ResolveIP"); 
     227    SDLNet_TCP_Open = cast(pfSDLNet_TCP_Open)getProc("SDLNet_TCP_Open"); 
     228    SDLNet_TCP_Accept = cast(pfSDLNet_TCP_Accept)getProc("SDLNet_TCP_Accept"); 
     229    SDLNet_TCP_GetPeerAddress = cast(pfSDLNet_TCP_GetPeerAddress)getProc("SDLNet_TCP_GetPeerAddress"); 
     230    SDLNet_TCP_Send = cast(pfSDLNet_TCP_Send)getProc("SDLNet_TCP_Send"); 
     231    SDLNet_TCP_Recv = cast(pfSDLNet_TCP_Recv)getProc("SDLNet_TCP_Recv"); 
     232    SDLNet_TCP_Close = cast(pfSDLNet_TCP_Close)getProc("SDLNet_TCP_Close"); 
     233    SDLNet_AllocPacket = cast(pfSDLNet_AllocPacket)getProc("SDLNet_AllocPacket"); 
     234    SDLNet_ResizePacket = cast(pfSDLNet_ResizePacket)getProc("SDLNet_ResizePacket"); 
     235    SDLNet_FreePacket = cast(pfSDLNet_FreePacket)getProc("SDLNet_FreePacket"); 
     236    SDLNet_AllocPacketV = cast(pfSDLNet_AllocPacketV)getProc("SDLNet_AllocPacketV"); 
     237    SDLNet_FreePacketV = cast(pfSDLNet_FreePacketV)getProc("SDLNet_FreePacketV"); 
     238    SDLNet_UDP_Open = cast(pfSDLNet_UDP_Open)getProc("SDLNet_UDP_Open"); 
     239    SDLNet_UDP_Bind = cast(pfSDLNet_UDP_Bind)getProc("SDLNet_UDP_Bind"); 
     240    SDLNet_UDP_Unbind = cast(pfSDLNet_UDP_Unbind)getProc("SDLNet_UDP_Unbind"); 
     241    SDLNet_UDP_GetPeerAddress = cast(pfSDLNet_UDP_GetPeerAddress)getProc("SDLNet_UDP_GetPeerAddress"); 
     242    SDLNet_UDP_SendV = cast(pfSDLNet_UDP_SendV)getProc("SDLNet_UDP_SendV"); 
     243    SDLNet_UDP_Send = cast(pfSDLNet_UDP_Send)getProc("SDLNet_UDP_Send"); 
     244    SDLNet_UDP_RecvV = cast(pfSDLNet_UDP_RecvV)getProc("SDLNet_UDP_RecvV"); 
     245    SDLNet_UDP_Recv = cast(pfSDLNet_UDP_Recv)getProc("SDLNet_UDP_Recv"); 
     246    SDLNet_UDP_Close = cast(pfSDLNet_UDP_Close)getProc("SDLNet_UDP_Close"); 
     247    SDLNet_AllocSocketSet = cast(pfSDLNet_AllocSocketSet)getProc("SDLNet_AllocSocketSet"); 
     248    SDLNet_AddSocket = cast(pfSDLNet_AddSocket)getProc("SDLNet_AddSocket"); 
     249    SDLNet_DelSocket = cast(pfSDLNet_DelSocket)getProc("SDLNet_DelSocket"); 
     250    SDLNet_CheckSockets = cast(pfSDLNet_CheckSockets)getProc("SDLNet_CheckSockets"); 
     251    SDLNet_FreeSocketSet = cast(pfSDLNet_FreeSocketSet)getProc("SDLNet_FreeSocketSet"); 
    252252} 
    253253 
    254254public void DerelictSDLNet_Load(char[] libName) 
    255255{ 
    256    if(hsdlNet !== null) 
    257        return; 
    258          
    259    hsdlNet = ExeModule_Load(libName); 
    260          
    261    if(hsdlNet is null) 
    262        throw new Exception("Failed to load the SDL_net shared library."); 
    263          
    264    load(); 
     256    if(hsdlNet !== null) 
     257        return; 
     258 
     259    hsdlNet = ExeModule_Load(libName); 
     260 
     261    if(hsdlNet is null) 
     262        throw new Exception("Failed to load the SDL_net shared library."); 
     263 
     264    load(); 
    265265} 
    266266 
    267267public void DerelictSDLNet_Load() 
    268268{ 
    269     version(Windows) 
    270         DerelictSDLNet_Load("SDL_net.dll"); 
    271     version(linux) 
    272         DerelictSDLNet_Load("libSDL_net.so"); 
     269    version(Windows) 
     270        DerelictSDLNet_Load("SDL_net.dll"); 
     271    version(linux) 
     272        DerelictSDLNet_Load("libSDL_net.so"); 
     273
     274 
     275public void DerelictSDLNet_Unload() 
     276
     277    if(hsdlNet !== null) 
     278        ExeModule_Release(hsdlNet); 
    273279} 
    274280 
    275281static ~this() 
    276282{ 
    277    ExeModule_Release(hsdlNet); 
    278 } 
     283    DerelictSDLNet_Unload(); 
     284} 
  • trunk/DerelictSDLttf/derelict/sdl/ttf.d

    r80 r90  
    2525/* This library is a wrapper around the excellent FreeType 2.0 library, 
    2626   available at: 
    27    http://www.freetype.org/ 
     27    http://www.freetype.org/ 
    2828*/ 
    2929 
     
    4343void SDL_TTF_VERSION(SDL_version* X) 
    4444{ 
    45    X.major = SDL_TTF_MAJOR_VERSION; 
    46    X.minor = SDL_TTF_MINOR_VERSION; 
    47    X.patch = SDL_TTF_PATCHLEVEL; 
     45    X.major = SDL_TTF_MAJOR_VERSION; 
     46    X.minor = SDL_TTF_MINOR_VERSION; 
     47    X.patch = SDL_TTF_PATCHLEVEL; 
    4848} 
    4949 
     
    146146pfTTF_RenderGlyph_Shaded                TTF_RenderGlyph_Shaded; 
    147147pfTTF_RenderText_Blended                TTF_RenderText_Blended; 
    148 pfTTF_RenderUTF8_Blended       TTF_RenderUTF8_Blended; 
     148pfTTF_RenderUTF8_Blended        TTF_RenderUTF8_Blended; 
    149149pfTTF_RenderUNICODE_Blended             TTF_RenderUNICODE_Blended; 
    150150pfTTF_RenderGlyph_Blended               TTF_RenderGlyph_Blended; 
     
    219219        return; 
    220220 
    221     hsdlttf = ExeModule_Load(libName);     
    222          
     221    hsdlttf = ExeModule_Load(libName); 
     222 
    223223    if(hsdlttf is null) 
    224        throw new Exception("Failed to load the SDL_ttf shared library."); 
     224        throw new Exception("Failed to load the SDL_ttf shared library."); 
    225225 
    226226    load(); 
     
    229229public void DerelictSDLttf_Load() 
    230230{ 
    231     version(Windows) 
    232         DerelictSDLttf_Load("SDL_ttf.dll"); 
    233     version(linux) 
    234         DerelictSDLttf_Load("libSDL_ttf.so"); 
     231    version(Windows) 
     232        DerelictSDLttf_Load("SDL_ttf.dll"); 
     233    version(linux) 
     234        DerelictSDLttf_Load("libSDL_ttf.so"); 
     235
     236 
     237public void DerelictSDLttf_Unload() 
     238
     239    if(hsdlttf !== null) 
     240        ExeModule_Release(hsdlttf); 
    235241} 
    236242 
    237243static ~this() 
    238244{ 
    239    ExeModule_Release(hsdlttf); 
    240 } 
     245    DerelictSDLttf_Unload(); 
     246}