Mercurial > sdl-ios-xcode
annotate test/testloadso.c @ 4207:a673f44949d6 SDL-1.2
Fixed bug #562
this patch by Diego Pettenò <flameeyes@gentoo.org> for SDL-1.2:
The attached patch applies over latest ~arch SDL version, and allows to use the
xinerama support to launch an application full screened on the head "0".
The SDL_VIDEO_FULLSCREEN_HEAD environment variable sets the head on which the
full screen will be displayed, but if you set it to 0, the code simply ignores
it as unset. My patch changes the unset value to -1, so that the 0 value can be
used correctly. Without this, trying to get fullscreen on head 0 would get the
same result than not having xinerama enabled at all.
http://sources.gentoo.org/media-libs/libsdl/files/libsdl-1.2.11-xinerama-head-0.patch
SDL-1.3 doesnt seem to have any code like this, but it's still good for SDL-1.2
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Mon, 21 Sep 2009 07:20:51 +0000 |
parents | f1699aecb65d |
children | 2c835d58faad |
rev | line source |
---|---|
3892
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
1 |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
2 /* Test program to test dynamic loading with the loadso subsystem. |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
3 */ |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
4 |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
5 #include <stdio.h> |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
6 #include <stdlib.h> |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
7 |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
8 #include "SDL.h" |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
9 |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
10 typedef int (*fntype)(const char *); |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
11 |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
12 int main(int argc, char *argv[]) |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
13 { |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
14 int retval = 0; |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
15 int hello = 0; |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
16 const char *libname = NULL; |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
17 const char *symname = NULL; |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
18 void *lib = NULL; |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
19 fntype fn = NULL; |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
20 |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
21 if (argc != 3) { |
3893
f1699aecb65d
Man, who let this moron near printf()?! :)
Ryan C. Gordon <icculus@icculus.org>
parents:
3892
diff
changeset
|
22 const char *app = argv[0]; |
f1699aecb65d
Man, who let this moron near printf()?! :)
Ryan C. Gordon <icculus@icculus.org>
parents:
3892
diff
changeset
|
23 fprintf(stderr, "USAGE: %s <library> <functionname>\n", app); |
f1699aecb65d
Man, who let this moron near printf()?! :)
Ryan C. Gordon <icculus@icculus.org>
parents:
3892
diff
changeset
|
24 fprintf(stderr, " %s --hello <lib with puts()>\n", app); |
3892
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
25 return 1; |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
26 } |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
27 |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
28 /* Initialize SDL */ |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
29 if ( SDL_Init(0) < 0 ) { |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
30 fprintf(stderr, "Couldn't initialize SDL: %s\n",SDL_GetError()); |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
31 return 2; |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
32 } |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
33 |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
34 if (strcmp(argv[1], "--hello") == 0) { |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
35 hello = 1; |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
36 libname = argv[2]; |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
37 symname = "puts"; |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
38 } else { |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
39 libname = argv[1]; |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
40 symname = argv[2]; |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
41 } |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
42 |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
43 lib = SDL_LoadObject(libname); |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
44 if (lib == NULL) { |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
45 fprintf(stderr, "SDL_LoadObject('%s') failed: %s\n", |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
46 libname, SDL_GetError()); |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
47 retval = 3; |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
48 } else { |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
49 fn = (fntype) SDL_LoadFunction(lib, symname); |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
50 if (fn == NULL) { |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
51 fprintf(stderr, "SDL_LoadFunction('%s') failed: %s\n", |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
52 symname, SDL_GetError()); |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
53 retval = 4; |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
54 } else { |
3893
f1699aecb65d
Man, who let this moron near printf()?! :)
Ryan C. Gordon <icculus@icculus.org>
parents:
3892
diff
changeset
|
55 printf("Found %s in %s at %p\n", symname, libname, fn); |
3892
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
56 if (hello) { |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
57 printf("Calling function...\n"); |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
58 fflush(stdout); |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
59 fn(" HELLO, WORLD!\n"); |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
60 printf("...apparently, we survived. :)\n"); |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
61 printf("Unloading library...\n"); |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
62 fflush(stdout); |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
63 } |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
64 } |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
65 SDL_UnloadObject(lib); |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
66 } |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
67 SDL_Quit(); |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
68 return(0); |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
69 } |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
70 |
b25dd008167b
Added a test program for loadso subsystem.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
71 |