Mercurial > sdl-ios-xcode
annotate test/testloadso.c @ 4593:3892fe2f6537
Fixed so many things. See the changelog listed below.
1. Use SDL_X11_HAVE_XRENDER to check for RENDER at runtime.
2. Added lots of comments.
3. Added checks and lots of calls to SDL_SetError().
4. Fixed X11_CreateTexture() so that the pixmap and image created
are for the format specified by the user and not the window
format. This is only for the RENDER case.
5. The above change required that functions to convert SDL
pixel format enums to Visuals and XRenderPictFormats be added.
6. Fixed lots of 'style' issues.
author | Sunny Sachanandani <sunnysachanandani@gmail.com> |
---|---|
date | Sat, 17 Jul 2010 15:38:24 +0530 |
parents | 9de326b3099c |
children |
rev | line source |
---|---|
2067
dcdb175c2829
Merged r2899:2900 from SDL-1.2 branch to trunk: testloadso program.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
1 |
3338 | 2 /* Test program to test dynamic loading with the loadso subsystem. |
2067
dcdb175c2829
Merged r2899:2900 from SDL-1.2 branch to trunk: testloadso program.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
3 */ |
dcdb175c2829
Merged r2899:2900 from SDL-1.2 branch to trunk: testloadso program.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
4 |
dcdb175c2829
Merged r2899:2900 from SDL-1.2 branch to trunk: testloadso program.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
5 #include <stdio.h> |
dcdb175c2829
Merged r2899:2900 from SDL-1.2 branch to trunk: testloadso program.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
6 #include <stdlib.h> |
3338 | 7 #include <string.h> |
2067
dcdb175c2829
Merged r2899:2900 from SDL-1.2 branch to trunk: testloadso program.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
8 |
dcdb175c2829
Merged r2899:2900 from SDL-1.2 branch to trunk: testloadso program.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
9 #include "SDL.h" |
dcdb175c2829
Merged r2899:2900 from SDL-1.2 branch to trunk: testloadso program.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
10 |
2120 | 11 typedef int (*fntype) (const char *); |
2067
dcdb175c2829
Merged r2899:2900 from SDL-1.2 branch to trunk: testloadso program.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
12 |
2120 | 13 int |
14 main(int argc, char *argv[]) | |
2067
dcdb175c2829
Merged r2899:2900 from SDL-1.2 branch to trunk: testloadso program.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
15 { |
2120 | 16 int retval = 0; |
17 int hello = 0; | |
18 const char *libname = NULL; | |
19 const char *symname = NULL; | |
20 void *lib = NULL; | |
21 fntype fn = NULL; | |
2067
dcdb175c2829
Merged r2899:2900 from SDL-1.2 branch to trunk: testloadso program.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
22 |
2120 | 23 if (argc != 3) { |
24 const char *app = argv[0]; | |
25 fprintf(stderr, "USAGE: %s <library> <functionname>\n", app); | |
26 fprintf(stderr, " %s --hello <lib with puts()>\n", app); | |
27 return 1; | |
28 } | |
2067
dcdb175c2829
Merged r2899:2900 from SDL-1.2 branch to trunk: testloadso program.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
29 |
2120 | 30 /* Initialize SDL */ |
31 if (SDL_Init(0) < 0) { | |
32 fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); | |
33 return 2; | |
34 } | |
2067
dcdb175c2829
Merged r2899:2900 from SDL-1.2 branch to trunk: testloadso program.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
35 |
2120 | 36 if (strcmp(argv[1], "--hello") == 0) { |
37 hello = 1; | |
38 libname = argv[2]; | |
39 symname = "puts"; | |
40 } else { | |
41 libname = argv[1]; | |
42 symname = argv[2]; | |
43 } | |
2067
dcdb175c2829
Merged r2899:2900 from SDL-1.2 branch to trunk: testloadso program.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
44 |
2120 | 45 lib = SDL_LoadObject(libname); |
46 if (lib == NULL) { | |
47 fprintf(stderr, "SDL_LoadObject('%s') failed: %s\n", | |
48 libname, SDL_GetError()); | |
49 retval = 3; | |
50 } else { | |
51 fn = (fntype) SDL_LoadFunction(lib, symname); | |
52 if (fn == NULL) { | |
53 fprintf(stderr, "SDL_LoadFunction('%s') failed: %s\n", | |
54 symname, SDL_GetError()); | |
55 retval = 4; | |
56 } else { | |
57 printf("Found %s in %s at %p\n", symname, libname, fn); | |
58 if (hello) { | |
59 printf("Calling function...\n"); | |
60 fflush(stdout); | |
61 fn(" HELLO, WORLD!\n"); | |
62 printf("...apparently, we survived. :)\n"); | |
63 printf("Unloading library...\n"); | |
64 fflush(stdout); | |
65 } | |
66 } | |
67 SDL_UnloadObject(lib); | |
68 } | |
69 SDL_Quit(); | |
70 return (0); | |
2067
dcdb175c2829
Merged r2899:2900 from SDL-1.2 branch to trunk: testloadso program.
Ryan C. Gordon <icculus@icculus.org>
parents:
diff
changeset
|
71 } |