annotate include/SDL_loadso.h @ 2763:6fc50bdd88c0

Some cleanups on the new XInput code. One or two things got moved around, but largely this is hooked up correctly in the Unix configure system now: it can be dynamically loaded and fallback gracefully if not available, or libXi can be directly linked to libSDL. XInput support can be --disable'd from the configure script, too (defaults to enabled). Please note that while the framework is in place to gracefully fallback, the current state of the source requires XInput. We'll need to adjust a few things still to correct this.
author Ryan C. Gordon <icculus@icculus.org>
date Wed, 17 Sep 2008 08:20:57 +0000
parents c121d94672cb
children 99210400e8b9
rev   line source
648
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
1 /*
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
2 SDL - Simple DirectMedia Layer
1312
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 769
diff changeset
3 Copyright (C) 1997-2006 Sam Lantinga
648
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
4
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
5 This library is free software; you can redistribute it and/or
1312
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 769
diff changeset
6 modify it under the terms of the GNU Lesser General Public
648
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
7 License as published by the Free Software Foundation; either
1312
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 769
diff changeset
8 version 2.1 of the License, or (at your option) any later version.
648
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
9
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
10 This library is distributed in the hope that it will be useful,
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1312
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 769
diff changeset
13 Lesser General Public License for more details.
648
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
14
1312
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 769
diff changeset
15 You should have received a copy of the GNU Lesser General Public
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 769
diff changeset
16 License along with this library; if not, write to the Free Software
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 769
diff changeset
17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
648
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
18
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
19 Sam Lantinga
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
20 slouken@libsdl.org
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
21 */
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
22
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1358
diff changeset
23 /**
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1358
diff changeset
24 * \file SDL_loadso.h
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1358
diff changeset
25 *
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1358
diff changeset
26 * System dependent library loading routines
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1358
diff changeset
27 *
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1358
diff changeset
28 * Some things to keep in mind:
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1358
diff changeset
29 * - These functions only work on C function names. Other languages may
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1358
diff changeset
30 * have name mangling and intrinsic language support that varies from
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1358
diff changeset
31 * compiler to compiler.
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1358
diff changeset
32 * - Make sure you declare your function pointers with the same calling
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1358
diff changeset
33 * convention as the actual library function. Your code will crash
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1358
diff changeset
34 * mysteriously if you do not do this.
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1358
diff changeset
35 * - Avoid namespace collisions. If you load a symbol from the library,
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1358
diff changeset
36 * it is not defined whether or not it goes into the global symbol
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1358
diff changeset
37 * namespace for the application. If it does and it conflicts with
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1358
diff changeset
38 * symbols in your code or other shared libraries, you will not get
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1358
diff changeset
39 * the results you expect. :)
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1358
diff changeset
40 */
649
81c74904f51f Added some notes from the benefit of my experience. :)
Sam Lantinga <slouken@libsdl.org>
parents: 648
diff changeset
41
648
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
42 #ifndef _SDL_loadso_h
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
43 #define _SDL_loadso_h
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
44
1356
67114343400d *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 1312
diff changeset
45 #include "SDL_stdinc.h"
1358
c71e05b4dc2e More header massaging... works great on Windows. ;-)
Sam Lantinga <slouken@libsdl.org>
parents: 1356
diff changeset
46 #include "SDL_error.h"
1356
67114343400d *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 1312
diff changeset
47
648
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
48 #include "begin_code.h"
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
49 /* Set up for C function definitions, even when using C++ */
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
50 #ifdef __cplusplus
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1358
diff changeset
51 /* *INDENT-OFF* */
648
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
52 extern "C" {
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1358
diff changeset
53 /* *INDENT-ON* */
648
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
54 #endif
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
55
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
56 /* This function dynamically loads a shared object and returns a pointer
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
57 * to the object handle (or NULL if there was an error).
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
58 * The 'sofile' parameter is a system dependent name of the object file.
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
59 */
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1358
diff changeset
60 extern DECLSPEC void *SDLCALL SDL_LoadObject(const char *sofile);
648
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
61
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
62 /* Given an object handle, this function looks up the address of the
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
63 * named function in the shared object and returns it. This address
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
64 * is no longer valid after calling SDL_UnloadObject().
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
65 */
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1358
diff changeset
66 extern DECLSPEC void *SDLCALL SDL_LoadFunction(void *handle,
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1358
diff changeset
67 const char *name);
648
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
68
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
69 /* Unload a shared object from memory */
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
70 extern DECLSPEC void SDLCALL SDL_UnloadObject(void *handle);
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
71
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
72 /* Ends C function definitions when using C++ */
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
73 #ifdef __cplusplus
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1358
diff changeset
74 /* *INDENT-OFF* */
648
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
75 }
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1358
diff changeset
76 /* *INDENT-ON* */
648
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
77 #endif
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
78 #include "close_code.h"
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
79
12a21d82a060 Exposed SDL_LoadObject(), SDL_LoadFunction(), and SDL_UnloadObject() APIs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
80 #endif /* _SDL_loadso_h */
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1358
diff changeset
81
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1358
diff changeset
82 /* vi: set ts=4 sw=4 expandtab: */