Mercurial > sdl-ios-xcode
view test/testloadso.c @ 2429:2c55b72ba46e gsoc2008_iphone
testdyngles is exactly what it sounds like -- a version of testdyngl that uses OpenGL ES calls instead of OpenGL. Was necessary to create because glOrtho is called glOrthof in OpenGL ES, and OpenGL ES doesn't have glBegin() type semantics for specifying geometry.
author | Holmes Futrell <hfutrell@umail.ucsb.edu> |
---|---|
date | Fri, 15 Aug 2008 00:52:52 +0000 |
parents | 2c835d58faad |
children | 9de326b3099c |
line wrap: on
line source
/* Test program to test dynamic loading with the loadso subsystem. */ #include <stdio.h> #include <stdlib.h> #include "SDL.h" typedef int (*fntype) (const char *); int main(int argc, char *argv[]) { int retval = 0; int hello = 0; const char *libname = NULL; const char *symname = NULL; void *lib = NULL; fntype fn = NULL; if (argc != 3) { const char *app = argv[0]; fprintf(stderr, "USAGE: %s <library> <functionname>\n", app); fprintf(stderr, " %s --hello <lib with puts()>\n", app); return 1; } /* Initialize SDL */ if (SDL_Init(0) < 0) { fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); return 2; } if (strcmp(argv[1], "--hello") == 0) { hello = 1; libname = argv[2]; symname = "puts"; } else { libname = argv[1]; symname = argv[2]; } lib = SDL_LoadObject(libname); if (lib == NULL) { fprintf(stderr, "SDL_LoadObject('%s') failed: %s\n", libname, SDL_GetError()); retval = 3; } else { fn = (fntype) SDL_LoadFunction(lib, symname); if (fn == NULL) { fprintf(stderr, "SDL_LoadFunction('%s') failed: %s\n", symname, SDL_GetError()); retval = 4; } else { printf("Found %s in %s at %p\n", symname, libname, fn); if (hello) { printf("Calling function...\n"); fflush(stdout); fn(" HELLO, WORLD!\n"); printf("...apparently, we survived. :)\n"); printf("Unloading library...\n"); fflush(stdout); } } SDL_UnloadObject(lib); } SDL_Quit(); return (0); }