Description: port import/ code to D language version 2
  With this patch the code is accapted by GDC 4.8 without triggering deprecation
  warnings/errors.
Author: Peter De Wachter <pdewacht@gmail.com>

--- a/import/SDL.d
+++ b/import/SDL.d
@@ -20,18 +20,28 @@
     slouken@devolution.com
 */
 
-import SDL_types;
-import SDL_getenv;
-import SDL_error;
-import SDL_rwops;
-import SDL_timer;
-import SDL_audio;
-import SDL_cdrom;
-import SDL_joystick;
-import SDL_events;
-import SDL_video;
-import SDL_byteorder;
-import SDL_version;
+public import SDL_keysym_;
+public import SDL_version_;
+public import SDL_active;
+public import SDL_audio;
+public import SDL_byteorder;
+public import SDL_cdrom;
+public import SDL_copying;
+public import SDL_endian;
+public import SDL_error;
+public import SDL_events;
+public import SDL_getenv;
+public import SDL_joystick;
+public import SDL_keyboard;
+public import SDL_mouse;
+public import SDL_mutex;
+public import SDL_quit;
+public import SDL_rwops;
+public import SDL_syswm;
+public import SDL_thread;
+public import SDL_timer;
+public import SDL_types;
+public import SDL_video;
 
 extern(C):
 
@@ -73,18 +83,3 @@
  */
 void SDL_Quit();
 
-void SDL_SetModuleHandle(void *hInst);
-extern(Windows) void* GetModuleHandle(char*);
-
-static this()
-{
-	/* Load SDL dynamic link library */
-	if (SDL_Init(SDL_INIT_NOPARACHUTE) < 0)
-		throw new Error("Error loading SDL");
-	SDL_SetModuleHandle(GetModuleHandle(null));
-}
-
-static ~this()
-{
-	SDL_Quit();
-}
\ No newline at end of file
--- a/import/SDL_audio.d
+++ b/import/SDL_audio.d
@@ -24,6 +24,7 @@
 import SDL_error;
 import SDL_rwops;
 import SDL_byteorder;
+import std.string;
 
 extern(C):
 
@@ -42,7 +43,7 @@
 	   Once the callback returns, the buffer will no longer be valid.
 	   Stereo samples are stored in a LRLRLR ordering.
 	*/
-	void (*callback)(void *userdata, Uint8 *stream, int len);
+	void function(void *userdata, Uint8 *stream, int len) callback;
 	void  *userdata;
 }
 
@@ -74,7 +75,7 @@
 	int    len_cvt;			/* Length of converted audio buffer */
 	int    len_mult;		/* buffer must be len*len_mult big */
 	double len_ratio; 	/* Given len, final size is len*len_ratio */
-	void (*filters[10])(SDL_AudioCVT *cvt, Uint16 format);
+	void function(SDL_AudioCVT *cvt, Uint16 format)[10] filters;
 	int filter_index;		/* Current audio conversion function */
 }
 
@@ -161,7 +162,7 @@
  * This function loads a WAVE from the data source, automatically freeing
  * that source if 'freesrc' is non-zero.  For example, to load a WAVE file,
  * you could do:
- *	SDL_LoadWAV_RW(SDL_RWFromFile("sample.wav", "rb"), 1, ...);
+ *	SDL_LoadWAV_RW(SDL_RWFromFile("sample.wav", toStringz("rb")), 1, ...);
  * 
  * If this function succeeds, it returns the given SDL_AudioSpec,
  * filled with the audio data format of the wave data, and sets
@@ -178,7 +179,7 @@
 		 SDL_AudioSpec *spec, Uint8 **audio_buf, Uint32 *audio_len);
 
 /* Compatibility convenience function -- loads a WAV from a file */
-SDL_AudioSpec *SDL_LoadWAV(char* file, SDL_AudioSpec* spec,
+SDL_AudioSpec *SDL_LoadWAV(const(char)* file, SDL_AudioSpec* spec,
 		Uint8 **audio_buf, Uint32 *audio_len)
 {		
 	return SDL_LoadWAV_RW(SDL_RWFromFile(file, "rb"), 1, spec,
--- a/import/SDL_cdrom.d
+++ b/import/SDL_cdrom.d
@@ -49,7 +49,7 @@
 }
 
 /* Given a status, returns true if there's a disk in the drive */
-bit CD_INDRIVE(int status) { return status > 0; }
+bool CD_INDRIVE(int status) { return status > 0; }
 
 struct SDL_CDtrack {
 	Uint8 id;		/* Track number */
--- a/import/SDL_endian.d
+++ b/import/SDL_endian.d
@@ -47,7 +47,7 @@
 */
 
 Uint16 SDL_Swap16(Uint16 D) {
-	return((D<<8)|(D>>8));
+	return cast(Uint16)((D<<8)|(D>>8));
 }
 
 Uint32 SDL_Swap32(Uint32 D) {
@@ -57,9 +57,9 @@
 Uint64 SDL_Swap64(Uint64 val) {
 	Uint32 hi, lo;
 	/* Separate into high and low 32-bit values and swap them */
-	lo = (Uint32)(val&0xFFFFFFFF);
+	lo = cast(Uint32)(val&0xFFFFFFFF);
 	val >>= 32;
-	hi = (Uint32)(val&0xFFFFFFFF);
+	hi = cast(Uint32)(val&0xFFFFFFFF);
 	val = SDL_Swap32(lo);
 	val <<= 32;
 	val |= SDL_Swap32(hi);
--- a/import/SDL_events.d
+++ b/import/SDL_events.d
@@ -271,7 +271,7 @@
 
   The filter is protypted as:
 */
-alias int (*SDL_EventFilter)(SDL_Event *event);
+alias int function(SDL_Event *event) SDL_EventFilter;
 /*
   If the filter returns 1, then the event will be added to the internal queue.
   If it returns 0, then the event will be dropped from the queue, but the 
@@ -304,8 +304,8 @@
   If 'state' is set to SDL_QUERY, SDL_EventState() will return the 
   current processing state of the specified event.
 */
-const uint SDL_QUERY	= -1;
-const uint SDL_IGNORE	= 0;
-const uint SDL_DISABLE	= 0;
-const uint SDL_ENABLE	= 1;
+const int SDL_QUERY	= -1;
+const int SDL_IGNORE	= 0;
+const int SDL_DISABLE	= 0;
+const int SDL_ENABLE	= 1;
 Uint8 SDL_EventState(Uint8 type, int state);
--- a/import/SDL_getenv.d
+++ b/import/SDL_getenv.d
@@ -2,6 +2,7 @@
 
 extern(C):
 
+/+
 /* Put a variable of the form "name=value" into the environment */
 int SDL_putenv(char *variable);
 int putenv(char* X) { return SDL_putenv(X); }
@@ -9,3 +10,4 @@
 /* Retrieve a variable named "name" from the environment */
 char *SDL_getenv(char *name);
 char *getenv(char* X) { return SDL_getenv(X); }
++/
--- a/import/SDL_keyboard.d
+++ b/import/SDL_keyboard.d
@@ -26,7 +26,7 @@
 // !!! A hack! struct SDL_keysym is defined in this module,
 // !!! so we need to resolve the nameclash...
 // !!! Definitely won't work on *NIX but for now will do.
-import SDL_Keysym;
+import SDL_keysym_;
 
 extern(C):
 
--- a/import/SDL_mixer.d
+++ b/import/SDL_mixer.d
@@ -22,7 +22,7 @@
 
 // convert to D by shinichiro.h
 
-/* $Id: SDL_mixer.d,v 1.1.1.1 2003/09/19 14:55:49 kenta Exp $ */
+/* $Id: SDL_mixer.d,v 1.1.1.1 2006/11/19 07:54:54 kenta Exp $ */
 
 import SDL;
 
@@ -104,10 +104,10 @@
 
 /* Load a wave file or a music (.mod .s3m .it .xm) file */
 	Mix_Chunk * Mix_LoadWAV_RW(SDL_RWops *src, int freesrc);
-	Mix_Chunk * Mix_LoadWAV(char *file) {
+	Mix_Chunk * Mix_LoadWAV(const(char) *file) {
 		return Mix_LoadWAV_RW(SDL_RWFromFile(file, "rb"), 1);
 	}
-	Mix_Music * Mix_LoadMUS(char *file);
+	Mix_Music * Mix_LoadMUS(const(char) *file);
 
 /* Load a wave file of the mixer format from a memory buffer */
 	Mix_Chunk * Mix_QuickLoad_WAV(Uint8 *mem);
@@ -128,19 +128,17 @@
    This can be used to provide real-time visual display of the audio stream
    or add a custom mixer filter for the stream data.
 */
-	void Mix_SetPostMix(void (*mix_func)
-						(void *udata, Uint8 *stream, int len), void *arg);
+	void Mix_SetPostMix(void function(void *udata, Uint8 *stream, int len) mix_func, void *arg);
 
 /* Add your own music player or additional mixer function.
    If 'mix_func' is NULL, the default music player is re-enabled.
 */
-	void Mix_HookMusic(void (*mix_func)
-					   (void *udata, Uint8 *stream, int len), void *arg);
+	void Mix_HookMusic(void function(void *udata, Uint8 *stream, int len) mix_func, void *arg);
 
 /* Add your own callback when the music has finished playing.
    This callback is only called if the music finishes naturally.
 */
-	void Mix_HookMusicFinished(void (*music_finished)());
+	void Mix_HookMusicFinished(void function() music_finished);
 
 /* Get a pointer to the user data for the current music hook */
 	void * Mix_GetMusicHookData();
@@ -153,7 +151,7 @@
  *  inside the audio callback, or SDL_mixer will explicitly lock the audio
  *  before calling your callback.
  */
-	void Mix_ChannelFinished(void (*channel_finished)(int channel));
+	void Mix_ChannelFinished(void function(int channel) channel_finished);
 
 
 /* Special Effects API by ryan c. gordon. (icculus@linuxgames.com) */
@@ -177,7 +175,7 @@
  *
  * DO NOT EVER call SDL_LockAudio() from your callback function!
  */
-	typedef void (*Mix_EffectFunc_t)(int chan, void *stream, int len, void *udata);
+	alias void function(int chan, void *stream, int len, void *udata) Mix_EffectFunc_t;
 
 /*
  * This is a callback that signifies that a channel has finished all its
@@ -188,7 +186,7 @@
  *
  * DO NOT EVER call SDL_LockAudio() from your callback function!
  */
-	typedef void (*Mix_EffectDone_t)(int chan, void *udata);
+	alias void function(int chan, void *udata) Mix_EffectDone_t;
 
 
 /* Register a special effect function. At mixing time, the channel data is
@@ -510,7 +508,7 @@
 	int Mix_PlayingMusic();
 
 /* Stop music and set external music playback command */
-	int Mix_SetMusicCMD(char *command);
+	int Mix_SetMusicCMD(const(char) *command);
 
 /* Synchro value is set by MikMod from modules while playing */
 	int Mix_SetSynchroValue(int value);
--- a/import/SDL_mouse.d
+++ b/import/SDL_mouse.d
@@ -109,6 +109,8 @@
 const uint SDL_BUTTON_LEFT		= 1;
 const uint SDL_BUTTON_MIDDLE	= 2;
 const uint SDL_BUTTON_RIGHT		= 3;
+const uint SDL_BUTTON_WHEELUP	= 4;
+const uint SDL_BUTTON_WHEELDOWN	= 5;
 const uint SDL_BUTTON_LMASK		= SDL_PRESSED << (SDL_BUTTON_LEFT - 1);
 const uint SDL_BUTTON_MMASK		= SDL_PRESSED << (SDL_BUTTON_MIDDLE - 1);
 const uint SDL_BUTTON_RMASK		= SDL_PRESSED << (SDL_BUTTON_RIGHT - 1);
--- a/import/SDL_quit.d
+++ b/import/SDL_quit.d
@@ -40,8 +40,8 @@
 */
 
 /* There are no functions directly affecting the quit event */
-bit SDL_QuitRequested()
+bool SDL_QuitRequested()
 {
 	SDL_PumpEvents();
-	return SDL_PeepEvents(null, 0, SDL_PEEKEVENT, SDL_QUITMASK);
+	return 0 != SDL_PeepEvents(null, 0, SDL_PEEKEVENT, SDL_QUITMASK);
 }
--- a/import/SDL_rwops.d
+++ b/import/SDL_rwops.d
@@ -35,22 +35,22 @@
 		SEEK_SET, SEEK_CUR, SEEK_END
 	   Returns the final offset in the data source.
 	 */
-	int (*seek)(SDL_RWops *context, int offset, int whence);
+	int function(SDL_RWops *context, int offset, int whence) seek;
 
 	/* Read up to 'num' objects each of size 'objsize' from the data
 	   source to the area pointed at by 'ptr'.
 	   Returns the number of objects read, or -1 if the read failed.
 	 */
-	int (*read)(SDL_RWops *context, void *ptr, int size, int maxnum);
+	int function(SDL_RWops *context, void *ptr, int size, int maxnum) read;
 
 	/* Write exactly 'num' objects each of size 'objsize' from the area
 	   pointed at by 'ptr' to data source.
 	   Returns 'num', or -1 if the write failed.
 	 */
-	int (*write)(SDL_RWops *context, void *ptr, int size, int num);
+	int function(SDL_RWops *context, void *ptr, int size, int num) write;
 
 	/* Close and free an allocated SDL_FSops structure */
-	int (*close)(SDL_RWops *context);
+	int function(SDL_RWops *context) close;
 
 	Uint32 type;
 	union {
@@ -72,7 +72,7 @@
 
 /* Functions to create SDL_RWops structures from various data sources */
 
-SDL_RWops * SDL_RWFromFile(char *file, char *mode);
+SDL_RWops * SDL_RWFromFile(const(char)* file, const(char)* mode);
 
 SDL_RWops * SDL_RWFromFP(void *fp, int autoclose);
 
@@ -84,35 +84,25 @@
 /* Macros to easily read and write from an SDL_RWops structure */
 int SDL_RWseek(SDL_RWops *ctx, int offset, int whence)
 {
-	int (*seek)(SDL_RWops *context, int offset, int whence);
-	seek = ctx.seek;
-	return (*seek)(ctx, offset, whence);
+	return ctx.seek(ctx, offset, whence);
 }
 
 int SDL_RWtell(SDL_RWops *ctx)
 {
-	int (*seek)(SDL_RWops *context, int offset, int whence);
-	seek = ctx.seek;
-	return (*seek)(ctx, 0, 1);
+	return ctx.seek(ctx, 0, 1);
 }
 
 int SDL_RWread(SDL_RWops *ctx, void* ptr, int size, int n)
 {
-	int (*read)(SDL_RWops *context, void *ptr, int size, int maxnum);
-	read = ctx.read;
-	return (*read)(ctx, ptr, size, n);
+	return ctx.read(ctx, ptr, size, n);
 }
 
 int SDL_RWwrite(SDL_RWops *ctx, void* ptr, int size, int n)
 {
-	int (*write)(SDL_RWops *context, void *ptr, int size, int num);
-	write = ctx.write;
-	return (*write)(ctx, ptr, size, n);
+	return ctx.write(ctx, ptr, size, n);
 }
 
 int SDL_RWclose(SDL_RWops *ctx)
 {
-	int (*close)(SDL_RWops *context);
-	close = ctx.close;
-	return (*close)(ctx);
+	return ctx.close(ctx);
 }
--- a/import/SDL_syswm.d
+++ b/import/SDL_syswm.d
@@ -22,7 +22,7 @@
 
 /* Include file for SDL custom system window manager hooks */
 
-import SDL_version;
+import SDL_version_;
 
 extern(C):
 
--- a/import/SDL_thread.d
+++ b/import/SDL_thread.d
@@ -34,7 +34,7 @@
 struct SDL_Thread { }
 
 /* Create a thread */
-SDL_Thread * SDL_CreateThread(int (*fn)(void *), void *data);
+SDL_Thread * SDL_CreateThread(int function(void *) fn, void *data);
 
 /* Get the 32-bit thread identifier for the current thread */
 Uint32 SDL_ThreadID();
--- a/import/SDL_timer.d
+++ b/import/SDL_timer.d
@@ -39,7 +39,7 @@
 void SDL_Delay(Uint32 ms);
 
 /* Function prototype for the timer callback function */
-alias Uint32 (*SDL_TimerCallback)(Uint32 interval);
+alias Uint32 function(Uint32 interval) SDL_TimerCallback;
 
 /* Set a callback to run after the specified number of milliseconds has
  * elapsed. The callback function is passed the current timer interval
@@ -79,7 +79,7 @@
  * passed in, the periodic alarm continues, otherwise a new alarm is
  * scheduled.  If the callback returns 0, the periodic alarm is cancelled.
  */
-alias Uint32 (*SDL_NewTimerCallback)(Uint32 interval, void *param);
+alias Uint32 function(Uint32 interval, void *param) SDL_NewTimerCallback;
 
 /* Definition of the timer ID type */
 alias void *SDL_TimerID;
--- a/import/SDL_types.d
+++ b/import/SDL_types.d
@@ -33,7 +33,7 @@
 alias ushort	Uint16;
 alias short	Sint16;
 alias uint	Uint32;
-alias int		Sint32;
+alias int	Sint32;
 
 alias ulong	Uint64;
 alias long	Sint64;
--- a/import/SDL_video.d
+++ b/import/SDL_video.d
@@ -74,9 +74,9 @@
 	Uint8  alpha;
 }
 
-/* typedef for private surface blitting functions */
-typedef int (*SDL_blit)(SDL_Surface *src, SDL_Rect *srcrect,
-			SDL_Surface *dst, SDL_Rect *dstrect);
+/* alias for private surface blitting functions */
+alias int function(SDL_Surface *src, SDL_Rect *srcrect,
+			SDL_Surface *dst, SDL_Rect *dstrect) SDL_blit;
 
 /* This structure should be treated as read-only, except for 'pixels',
    which, if not NULL, contains the raw pixel data for the surface.
@@ -132,7 +132,7 @@
 const uint SDL_PREALLOC	= 0x01000000;	/* Surface uses preallocated memory */
 
 /* Evaluates to true if the surface needs to be locked before access */
-bit SDL_MUSTLOCK(SDL_Surface *surface)
+bool SDL_MUSTLOCK(SDL_Surface *surface)
 {
 	return surface.offset || ((surface.flags &
 		(SDL_HWSURFACE | SDL_ASYNCBLIT | SDL_RLEACCEL)) != 0);
@@ -186,7 +186,7 @@
 	/* Special flags */
 	union
 	{
-		bit hw_overlay;
+		bool hw_overlay;
 		Uint32 _dummy;
 	}
 //		Uint32 hw_overlay :1;	/* Flag: This overlay hardware accelerated? */
@@ -540,7 +540,7 @@
 SDL_Surface * SDL_LoadBMP_RW(SDL_RWops *src, int freesrc);
 
 /* Convenience macro -- load a surface from a file */
-SDL_Surface * SDL_LoadBMP(char* file)
+SDL_Surface * SDL_LoadBMP(const(char)* file)
 {
 	return SDL_LoadBMP_RW(SDL_RWFromFile(file, "rb"), 1);
 }
@@ -554,7 +554,7 @@
 		(SDL_Surface *surface, SDL_RWops *dst, int freedst);
 
 /* Convenience macro -- save a surface to a file */
-int SDL_SaveBMP(SDL_Surface *surface, char* file)
+int SDL_SaveBMP(SDL_Surface *surface, const(char)* file)
 {
 	return SDL_SaveBMP_RW(surface, SDL_RWFromFile(file, "wb"), 1);
 }
@@ -837,7 +837,7 @@
 /*
  * Sets/Gets the title and icon text of the display window
  */
-void SDL_WM_SetCaption(char *title, char *icon);
+void SDL_WM_SetCaption(const(char) *title, char *icon);
 void SDL_WM_GetCaption(char **title, char **icon);
 
 /*
--- a/import/opengl.d
+++ b/import/opengl.d
@@ -1,6 +1,4 @@
-import windows;
-
-extern(Windows):
+extern(System):
 
 alias uint GLenum;
 alias ubyte GLboolean;
@@ -161,6 +159,7 @@
 const uint GL_3_BYTES                    = 0x1408;
 const uint GL_4_BYTES                    = 0x1409;
 const uint GL_DOUBLE                     = 0x140A;
+const uint GL_UNSIGNED_INT_8_8_8_8_REV   = 0x8367;
 
 /* DepthFunction */
 /*      GL_NEVER */
@@ -1111,376 +1110,369 @@
 
 /*************************************************************/
 
-extern(Windows) void /*APIENTRY*/glAccum (GLenum op, GLfloat value);
-extern(Windows) void /*APIENTRY*/glAlphaFunc (GLenum func, GLclampf ref);
-extern(Windows) GLboolean /*APIENTRY*/glAreTexturesResident (GLsizei n, GLuint *textures, GLboolean *residences);
-extern(Windows) void /*APIENTRY*/glArrayElement (GLint i);
-extern(Windows) void /*APIENTRY*/glBegin (GLenum mode);
-extern(Windows) void /*APIENTRY*/glBindTexture (GLenum target, GLuint texture);
-extern(Windows) void /*APIENTRY*/glBitmap (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, GLubyte *bitmap);
-extern(Windows) void /*APIENTRY*/glBlendFunc (GLenum sfactor, GLenum dfactor);
-extern(Windows) void /*APIENTRY*/glCallList (GLuint list);
-extern(Windows) void /*APIENTRY*/glCallLists (GLsizei n, GLenum type, GLvoid *lists);
-extern(Windows) void /*APIENTRY*/glClear (GLbitfield mask);
-extern(Windows) void /*APIENTRY*/glClearAccum (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
-extern(Windows) void /*APIENTRY*/glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
-extern(Windows) void /*APIENTRY*/glClearDepth (GLclampd depth);
-extern(Windows) void /*APIENTRY*/glClearIndex (GLfloat c);
-extern(Windows) void /*APIENTRY*/glClearStencil (GLint s);
-extern(Windows) void /*APIENTRY*/glClipPlane (GLenum plane, GLdouble *equation);
-extern(Windows) void /*APIENTRY*/glColor3b (GLbyte red, GLbyte green, GLbyte blue);
-extern(Windows) void /*APIENTRY*/glColor3bv (GLbyte *v);
-extern(Windows) void /*APIENTRY*/glColor3d (GLdouble red, GLdouble green, GLdouble blue);
-extern(Windows) void /*APIENTRY*/glColor3dv (GLdouble *v);
-extern(Windows) void /*APIENTRY*/glColor3f (GLfloat red, GLfloat green, GLfloat blue);
-extern(Windows) void /*APIENTRY*/glColor3fv (GLfloat *v);
-extern(Windows) void /*APIENTRY*/glColor3i (GLint red, GLint green, GLint blue);
-extern(Windows) void /*APIENTRY*/glColor3iv (GLint *v);
-extern(Windows) void /*APIENTRY*/glColor3s (GLshort red, GLshort green, GLshort blue);
-extern(Windows) void /*APIENTRY*/glColor3sv (GLshort *v);
-extern(Windows) void /*APIENTRY*/glColor3ub (GLubyte red, GLubyte green, GLubyte blue);
-extern(Windows) void /*APIENTRY*/glColor3ubv (GLubyte *v);
-extern(Windows) void /*APIENTRY*/glColor3ui (GLuint red, GLuint green, GLuint blue);
-extern(Windows) void /*APIENTRY*/glColor3uiv (GLuint *v);
-extern(Windows) void /*APIENTRY*/glColor3us (GLushort red, GLushort green, GLushort blue);
-extern(Windows) void /*APIENTRY*/glColor3usv (GLushort *v);
-extern(Windows) void /*APIENTRY*/glColor4b (GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
-extern(Windows) void /*APIENTRY*/glColor4bv (GLbyte *v);
-extern(Windows) void /*APIENTRY*/glColor4d (GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
-extern(Windows) void /*APIENTRY*/glColor4dv (GLdouble *v);
-extern(Windows) void /*APIENTRY*/glColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
-extern(Windows) void /*APIENTRY*/glColor4fv (GLfloat *v);
-extern(Windows) void /*APIENTRY*/glColor4i (GLint red, GLint green, GLint blue, GLint alpha);
-extern(Windows) void /*APIENTRY*/glColor4iv (GLint *v);
-extern(Windows) void /*APIENTRY*/glColor4s (GLshort red, GLshort green, GLshort blue, GLshort alpha);
-extern(Windows) void /*APIENTRY*/glColor4sv (GLshort *v);
-extern(Windows) void /*APIENTRY*/glColor4ub (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
-extern(Windows) void /*APIENTRY*/glColor4ubv (GLubyte *v);
-extern(Windows) void /*APIENTRY*/glColor4ui (GLuint red, GLuint green, GLuint blue, GLuint alpha);
-extern(Windows) void /*APIENTRY*/glColor4uiv (GLuint *v);
-extern(Windows) void /*APIENTRY*/glColor4us (GLushort red, GLushort green, GLushort blue, GLushort alpha);
-extern(Windows) void /*APIENTRY*/glColor4usv (GLushort *v);
-extern(Windows) void /*APIENTRY*/glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
-extern(Windows) void /*APIENTRY*/glColorMaterial (GLenum face, GLenum mode);
-extern(Windows) void /*APIENTRY*/glColorPointer (GLint size, GLenum type, GLsizei stride, GLvoid *pointer);
-extern(Windows) void /*APIENTRY*/glCopyPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum type);
-extern(Windows) void /*APIENTRY*/glCopyTexImage1D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
-extern(Windows) void /*APIENTRY*/glCopyTexImage2D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
-extern(Windows) void /*APIENTRY*/glCopyTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
-extern(Windows) void /*APIENTRY*/glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
-extern(Windows) void /*APIENTRY*/glCullFace (GLenum mode);
-extern(Windows) void /*APIENTRY*/glDeleteLists (GLuint list, GLsizei range);
-extern(Windows) void /*APIENTRY*/glDeleteTextures (GLsizei n, GLuint *textures);
-extern(Windows) void /*APIENTRY*/glDepthFunc (GLenum func);
-extern(Windows) void /*APIENTRY*/glDepthMask (GLboolean flag);
-extern(Windows) void /*APIENTRY*/glDepthRange (GLclampd zNear, GLclampd zFar);
-extern(Windows) void /*APIENTRY*/glDisable (GLenum cap);
-extern(Windows) void /*APIENTRY*/glDisableClientState (GLenum array);
-extern(Windows) void /*APIENTRY*/glDrawArrays (GLenum mode, GLint first, GLsizei count);
-extern(Windows) void /*APIENTRY*/glDrawBuffer (GLenum mode);
-extern(Windows) void /*APIENTRY*/glDrawElements (GLenum mode, GLsizei count, GLenum type, GLvoid *indices);
-extern(Windows) void /*APIENTRY*/glDrawPixels (GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
-extern(Windows) void /*APIENTRY*/glEdgeFlag (GLboolean flag);
-extern(Windows) void /*APIENTRY*/glEdgeFlagPointer (GLsizei stride, GLvoid *pointer);
-extern(Windows) void /*APIENTRY*/glEdgeFlagv (GLboolean *flag);
-extern(Windows) void /*APIENTRY*/glEnable (GLenum cap);
-extern(Windows) void /*APIENTRY*/glEnableClientState (GLenum array);
-extern(Windows) void /*APIENTRY*/glEnd ();
-extern(Windows) void /*APIENTRY*/glEndList ();
-extern(Windows) void /*APIENTRY*/glEvalCoord1d (GLdouble u);
-extern(Windows) void /*APIENTRY*/glEvalCoord1dv (GLdouble *u);
-extern(Windows) void /*APIENTRY*/glEvalCoord1f (GLfloat u);
-extern(Windows) void /*APIENTRY*/glEvalCoord1fv (GLfloat *u);
-extern(Windows) void /*APIENTRY*/glEvalCoord2d (GLdouble u, GLdouble v);
-extern(Windows) void /*APIENTRY*/glEvalCoord2dv (GLdouble *u);
-extern(Windows) void /*APIENTRY*/glEvalCoord2f (GLfloat u, GLfloat v);
-extern(Windows) void /*APIENTRY*/glEvalCoord2fv (GLfloat *u);
-extern(Windows) void /*APIENTRY*/glEvalMesh1 (GLenum mode, GLint i1, GLint i2);
-extern(Windows) void /*APIENTRY*/glEvalMesh2 (GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
-extern(Windows) void /*APIENTRY*/glEvalPoint1 (GLint i);
-extern(Windows) void /*APIENTRY*/glEvalPoint2 (GLint i, GLint j);
-extern(Windows) void /*APIENTRY*/glFeedbackBuffer (GLsizei size, GLenum type, GLfloat *buffer);
-extern(Windows) void /*APIENTRY*/glFinish ();
-extern(Windows) void /*APIENTRY*/glFlush ();
-extern(Windows) void /*APIENTRY*/glFogf (GLenum pname, GLfloat param);
-extern(Windows) void /*APIENTRY*/glFogfv (GLenum pname, GLfloat *params);
-extern(Windows) void /*APIENTRY*/glFogi (GLenum pname, GLint param);
-extern(Windows) void /*APIENTRY*/glFogiv (GLenum pname, GLint *params);
-extern(Windows) void /*APIENTRY*/glFrontFace (GLenum mode);
-extern(Windows) void /*APIENTRY*/glFrustum (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
-extern(Windows) GLuint /*APIENTRY*/glGenLists (GLsizei range);
-extern(Windows) void /*APIENTRY*/glGenTextures (GLsizei n, GLuint *textures);
-extern(Windows) void /*APIENTRY*/glGetBooleanv (GLenum pname, GLboolean *params);
-extern(Windows) void /*APIENTRY*/glGetClipPlane (GLenum plane, GLdouble *equation);
-extern(Windows) void /*APIENTRY*/glGetDoublev (GLenum pname, GLdouble *params);
-extern(Windows) GLenum /*APIENTRY*/glGetError ();
-extern(Windows) void /*APIENTRY*/glGetFloatv (GLenum pname, GLfloat *params);
-extern(Windows) void /*APIENTRY*/glGetIntegerv (GLenum pname, GLint *params);
-extern(Windows) void /*APIENTRY*/glGetLightfv (GLenum light, GLenum pname, GLfloat *params);
-extern(Windows) void /*APIENTRY*/glGetLightiv (GLenum light, GLenum pname, GLint *params);
-extern(Windows) void /*APIENTRY*/glGetMapdv (GLenum target, GLenum query, GLdouble *v);
-extern(Windows) void /*APIENTRY*/glGetMapfv (GLenum target, GLenum query, GLfloat *v);
-extern(Windows) void /*APIENTRY*/glGetMapiv (GLenum target, GLenum query, GLint *v);
-extern(Windows) void /*APIENTRY*/glGetMaterialfv (GLenum face, GLenum pname, GLfloat *params);
-extern(Windows) void /*APIENTRY*/glGetMaterialiv (GLenum face, GLenum pname, GLint *params);
-extern(Windows) void /*APIENTRY*/glGetPixelMapfv (GLenum map, GLfloat *values);
-extern(Windows) void /*APIENTRY*/glGetPixelMapuiv (GLenum map, GLuint *values);
-extern(Windows) void /*APIENTRY*/glGetPixelMapusv (GLenum map, GLushort *values);
-extern(Windows) void /*APIENTRY*/glGetPointerv (GLenum pname, GLvoid* *params);
-extern(Windows) void /*APIENTRY*/glGetPolygonStipple (GLubyte *mask);
-extern(Windows) GLubyte * /*APIENTRY*/glGetString (GLenum name);
-extern(Windows) void /*APIENTRY*/glGetTexEnvfv (GLenum target, GLenum pname, GLfloat *params);
-extern(Windows) void /*APIENTRY*/glGetTexEnviv (GLenum target, GLenum pname, GLint *params);
-extern(Windows) void /*APIENTRY*/glGetTexGendv (GLenum coord, GLenum pname, GLdouble *params);
-extern(Windows) void /*APIENTRY*/glGetTexGenfv (GLenum coord, GLenum pname, GLfloat *params);
-extern(Windows) void /*APIENTRY*/glGetTexGeniv (GLenum coord, GLenum pname, GLint *params);
-extern(Windows) void /*APIENTRY*/glGetTexImage (GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
-extern(Windows) void /*APIENTRY*/glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params);
-extern(Windows) void /*APIENTRY*/glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params);
-extern(Windows) void /*APIENTRY*/glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params);
-extern(Windows) void /*APIENTRY*/glGetTexParameteriv (GLenum target, GLenum pname, GLint *params);
-extern(Windows) void /*APIENTRY*/glHint (GLenum target, GLenum mode);
-extern(Windows) void /*APIENTRY*/glIndexMask (GLuint mask);
-extern(Windows) void /*APIENTRY*/glIndexPointer (GLenum type, GLsizei stride, GLvoid *pointer);
-extern(Windows) void /*APIENTRY*/glIndexd (GLdouble c);
-extern(Windows) void /*APIENTRY*/glIndexdv (GLdouble *c);
-extern(Windows) void /*APIENTRY*/glIndexf (GLfloat c);
-extern(Windows) void /*APIENTRY*/glIndexfv (GLfloat *c);
-extern(Windows) void /*APIENTRY*/glIndexi (GLint c);
-extern(Windows) void /*APIENTRY*/glIndexiv (GLint *c);
-extern(Windows) void /*APIENTRY*/glIndexs (GLshort c);
-extern(Windows) void /*APIENTRY*/glIndexsv (GLshort *c);
-extern(Windows) void /*APIENTRY*/glIndexub (GLubyte c);
-extern(Windows) void /*APIENTRY*/glIndexubv (GLubyte *c);
-extern(Windows) void /*APIENTRY*/glInitNames ();
-extern(Windows) void /*APIENTRY*/glInterleavedArrays (GLenum format, GLsizei stride, GLvoid *pointer);
-extern(Windows) GLboolean /*APIENTRY*/glIsEnabled (GLenum cap);
-extern(Windows) GLboolean /*APIENTRY*/glIsList (GLuint list);
-extern(Windows) GLboolean /*APIENTRY*/glIsTexture (GLuint texture);
-extern(Windows) void /*APIENTRY*/glLightModelf (GLenum pname, GLfloat param);
-extern(Windows) void /*APIENTRY*/glLightModelfv (GLenum pname, GLfloat *params);
-extern(Windows) void /*APIENTRY*/glLightModeli (GLenum pname, GLint param);
-extern(Windows) void /*APIENTRY*/glLightModeliv (GLenum pname, GLint *params);
-extern(Windows) void /*APIENTRY*/glLightf (GLenum light, GLenum pname, GLfloat param);
-extern(Windows) void /*APIENTRY*/glLightfv (GLenum light, GLenum pname, GLfloat *params);
-extern(Windows) void /*APIENTRY*/glLighti (GLenum light, GLenum pname, GLint param);
-extern(Windows) void /*APIENTRY*/glLightiv (GLenum light, GLenum pname, GLint *params);
-extern(Windows) void /*APIENTRY*/glLineStipple (GLint factor, GLushort pattern);
-extern(Windows) void /*APIENTRY*/glLineWidth (GLfloat width);
-extern(Windows) void /*APIENTRY*/glListBase (GLuint base);
-extern(Windows) void /*APIENTRY*/glLoadIdentity ();
-extern(Windows) void /*APIENTRY*/glLoadMatrixd (GLdouble *m);
-extern(Windows) void /*APIENTRY*/glLoadMatrixf (GLfloat *m);
-extern(Windows) void /*APIENTRY*/glLoadName (GLuint name);
-extern(Windows) void /*APIENTRY*/glLogicOp (GLenum opcode);
-extern(Windows) void /*APIENTRY*/glMap1d (GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, GLdouble *points);
-extern(Windows) void /*APIENTRY*/glMap1f (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, GLfloat *points);
-extern(Windows) void /*APIENTRY*/glMap2d (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble *points);
-extern(Windows) void /*APIENTRY*/glMap2f (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat *points);
-extern(Windows) void /*APIENTRY*/glMapGrid1d (GLint un, GLdouble u1, GLdouble u2);
-extern(Windows) void /*APIENTRY*/glMapGrid1f (GLint un, GLfloat u1, GLfloat u2);
-extern(Windows) void /*APIENTRY*/glMapGrid2d (GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
-extern(Windows) void /*APIENTRY*/glMapGrid2f (GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
-extern(Windows) void /*APIENTRY*/glMaterialf (GLenum face, GLenum pname, GLfloat param);
-extern(Windows) void /*APIENTRY*/glMaterialfv (GLenum face, GLenum pname, GLfloat *params);
-extern(Windows) void /*APIENTRY*/glMateriali (GLenum face, GLenum pname, GLint param);
-extern(Windows) void /*APIENTRY*/glMaterialiv (GLenum face, GLenum pname, GLint *params);
-extern(Windows) void /*APIENTRY*/glMatrixMode (GLenum mode);
-extern(Windows) void /*APIENTRY*/glMultMatrixd (GLdouble *m);
-extern(Windows) void /*APIENTRY*/glMultMatrixf (GLfloat *m);
-extern(Windows) void /*APIENTRY*/glNewList (GLuint list, GLenum mode);
-extern(Windows) void /*APIENTRY*/glNormal3b (GLbyte nx, GLbyte ny, GLbyte nz);
-extern(Windows) void /*APIENTRY*/glNormal3bv (GLbyte *v);
-extern(Windows) void /*APIENTRY*/glNormal3d (GLdouble nx, GLdouble ny, GLdouble nz);
-extern(Windows) void /*APIENTRY*/glNormal3dv (GLdouble *v);
-extern(Windows) void /*APIENTRY*/glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz);
-extern(Windows) void /*APIENTRY*/glNormal3fv (GLfloat *v);
-extern(Windows) void /*APIENTRY*/glNormal3i (GLint nx, GLint ny, GLint nz);
-extern(Windows) void /*APIENTRY*/glNormal3iv (GLint *v);
-extern(Windows) void /*APIENTRY*/glNormal3s (GLshort nx, GLshort ny, GLshort nz);
-extern(Windows) void /*APIENTRY*/glNormal3sv (GLshort *v);
-extern(Windows) void /*APIENTRY*/glNormalPointer (GLenum type, GLsizei stride, GLvoid *pointer);
-extern(Windows) void /*APIENTRY*/glOrtho (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
-extern(Windows) void /*APIENTRY*/glPassThrough (GLfloat token);
-extern(Windows) void /*APIENTRY*/glPixelMapfv (GLenum map, GLsizei mapsize, GLfloat *values);
-extern(Windows) void /*APIENTRY*/glPixelMapuiv (GLenum map, GLsizei mapsize, GLuint *values);
-extern(Windows) void /*APIENTRY*/glPixelMapusv (GLenum map, GLsizei mapsize, GLushort *values);
-extern(Windows) void /*APIENTRY*/glPixelStoref (GLenum pname, GLfloat param);
-extern(Windows) void /*APIENTRY*/glPixelStorei (GLenum pname, GLint param);
-extern(Windows) void /*APIENTRY*/glPixelTransferf (GLenum pname, GLfloat param);
-extern(Windows) void /*APIENTRY*/glPixelTransferi (GLenum pname, GLint param);
-extern(Windows) void /*APIENTRY*/glPixelZoom (GLfloat xfactor, GLfloat yfactor);
-extern(Windows) void /*APIENTRY*/glPointSize (GLfloat size);
-extern(Windows) void /*APIENTRY*/glPolygonMode (GLenum face, GLenum mode);
-extern(Windows) void /*APIENTRY*/glPolygonOffset (GLfloat factor, GLfloat units);
-extern(Windows) void /*APIENTRY*/glPolygonStipple (GLubyte *mask);
-extern(Windows) void /*APIENTRY*/glPopAttrib ();
-extern(Windows) void /*APIENTRY*/glPopClientAttrib ();
-extern(Windows) void /*APIENTRY*/glPopMatrix ();
-extern(Windows) void /*APIENTRY*/glPopName ();
-extern(Windows) void /*APIENTRY*/glPrioritizeTextures (GLsizei n, GLuint *textures, GLclampf *priorities);
-extern(Windows) void /*APIENTRY*/glPushAttrib (GLbitfield mask);
-extern(Windows) void /*APIENTRY*/glPushClientAttrib (GLbitfield mask);
-extern(Windows) void /*APIENTRY*/glPushMatrix ();
-extern(Windows) void /*APIENTRY*/glPushName (GLuint name);
-extern(Windows) void /*APIENTRY*/glRasterPos2d (GLdouble x, GLdouble y);
-extern(Windows) void /*APIENTRY*/glRasterPos2dv (GLdouble *v);
-extern(Windows) void /*APIENTRY*/glRasterPos2f (GLfloat x, GLfloat y);
-extern(Windows) void /*APIENTRY*/glRasterPos2fv (GLfloat *v);
-extern(Windows) void /*APIENTRY*/glRasterPos2i (GLint x, GLint y);
-extern(Windows) void /*APIENTRY*/glRasterPos2iv (GLint *v);
-extern(Windows) void /*APIENTRY*/glRasterPos2s (GLshort x, GLshort y);
-extern(Windows) void /*APIENTRY*/glRasterPos2sv (GLshort *v);
-extern(Windows) void /*APIENTRY*/glRasterPos3d (GLdouble x, GLdouble y, GLdouble z);
-extern(Windows) void /*APIENTRY*/glRasterPos3dv (GLdouble *v);
-extern(Windows) void /*APIENTRY*/glRasterPos3f (GLfloat x, GLfloat y, GLfloat z);
-extern(Windows) void /*APIENTRY*/glRasterPos3fv (GLfloat *v);
-extern(Windows) void /*APIENTRY*/glRasterPos3i (GLint x, GLint y, GLint z);
-extern(Windows) void /*APIENTRY*/glRasterPos3iv (GLint *v);
-extern(Windows) void /*APIENTRY*/glRasterPos3s (GLshort x, GLshort y, GLshort z);
-extern(Windows) void /*APIENTRY*/glRasterPos3sv (GLshort *v);
-extern(Windows) void /*APIENTRY*/glRasterPos4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-extern(Windows) void /*APIENTRY*/glRasterPos4dv (GLdouble *v);
-extern(Windows) void /*APIENTRY*/glRasterPos4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-extern(Windows) void /*APIENTRY*/glRasterPos4fv (GLfloat *v);
-extern(Windows) void /*APIENTRY*/glRasterPos4i (GLint x, GLint y, GLint z, GLint w);
-extern(Windows) void /*APIENTRY*/glRasterPos4iv (GLint *v);
-extern(Windows) void /*APIENTRY*/glRasterPos4s (GLshort x, GLshort y, GLshort z, GLshort w);
-extern(Windows) void /*APIENTRY*/glRasterPos4sv (GLshort *v);
-extern(Windows) void /*APIENTRY*/glReadBuffer (GLenum mode);
-extern(Windows) void /*APIENTRY*/glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
-extern(Windows) void /*APIENTRY*/glRectd (GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
-extern(Windows) void /*APIENTRY*/glRectdv (GLdouble *v1, GLdouble *v2);
-extern(Windows) void /*APIENTRY*/glRectf (GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
-extern(Windows) void /*APIENTRY*/glRectfv (GLfloat *v1, GLfloat *v2);
-extern(Windows) void /*APIENTRY*/glRecti (GLint x1, GLint y1, GLint x2, GLint y2);
-extern(Windows) void /*APIENTRY*/glRectiv (GLint *v1, GLint *v2);
-extern(Windows) void /*APIENTRY*/glRects (GLshort x1, GLshort y1, GLshort x2, GLshort y2);
-extern(Windows) void /*APIENTRY*/glRectsv (GLshort *v1, GLshort *v2);
-extern(Windows) GLint /*APIENTRY*/glRenderMode (GLenum mode);
-extern(Windows) void /*APIENTRY*/glRotated (GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
-extern(Windows) void /*APIENTRY*/glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
-extern(Windows) void /*APIENTRY*/glScaled (GLdouble x, GLdouble y, GLdouble z);
-extern(Windows) void /*APIENTRY*/glScalef (GLfloat x, GLfloat y, GLfloat z);
-extern(Windows) void /*APIENTRY*/glScissor (GLint x, GLint y, GLsizei width, GLsizei height);
-extern(Windows) void /*APIENTRY*/glSelectBuffer (GLsizei size, GLuint *buffer);
-extern(Windows) void /*APIENTRY*/glShadeModel (GLenum mode);
-extern(Windows) void /*APIENTRY*/glStencilFunc (GLenum func, GLint ref, GLuint mask);
-extern(Windows) void /*APIENTRY*/glStencilMask (GLuint mask);
-extern(Windows) void /*APIENTRY*/glStencilOp (GLenum fail, GLenum zfail, GLenum zpass);
-extern(Windows) void /*APIENTRY*/glTexCoord1d (GLdouble s);
-extern(Windows) void /*APIENTRY*/glTexCoord1dv (GLdouble *v);
-extern(Windows) void /*APIENTRY*/glTexCoord1f (GLfloat s);
-extern(Windows) void /*APIENTRY*/glTexCoord1fv (GLfloat *v);
-extern(Windows) void /*APIENTRY*/glTexCoord1i (GLint s);
-extern(Windows) void /*APIENTRY*/glTexCoord1iv (GLint *v);
-extern(Windows) void /*APIENTRY*/glTexCoord1s (GLshort s);
-extern(Windows) void /*APIENTRY*/glTexCoord1sv (GLshort *v);
-extern(Windows) void /*APIENTRY*/glTexCoord2d (GLdouble s, GLdouble t);
-extern(Windows) void /*APIENTRY*/glTexCoord2dv (GLdouble *v);
-extern(Windows) void /*APIENTRY*/glTexCoord2f (GLfloat s, GLfloat t);
-extern(Windows) void /*APIENTRY*/glTexCoord2fv (GLfloat *v);
-extern(Windows) void /*APIENTRY*/glTexCoord2i (GLint s, GLint t);
-extern(Windows) void /*APIENTRY*/glTexCoord2iv (GLint *v);
-extern(Windows) void /*APIENTRY*/glTexCoord2s (GLshort s, GLshort t);
-extern(Windows) void /*APIENTRY*/glTexCoord2sv (GLshort *v);
-extern(Windows) void /*APIENTRY*/glTexCoord3d (GLdouble s, GLdouble t, GLdouble r);
-extern(Windows) void /*APIENTRY*/glTexCoord3dv (GLdouble *v);
-extern(Windows) void /*APIENTRY*/glTexCoord3f (GLfloat s, GLfloat t, GLfloat r);
-extern(Windows) void /*APIENTRY*/glTexCoord3fv (GLfloat *v);
-extern(Windows) void /*APIENTRY*/glTexCoord3i (GLint s, GLint t, GLint r);
-extern(Windows) void /*APIENTRY*/glTexCoord3iv (GLint *v);
-extern(Windows) void /*APIENTRY*/glTexCoord3s (GLshort s, GLshort t, GLshort r);
-extern(Windows) void /*APIENTRY*/glTexCoord3sv (GLshort *v);
-extern(Windows) void /*APIENTRY*/glTexCoord4d (GLdouble s, GLdouble t, GLdouble r, GLdouble q);
-extern(Windows) void /*APIENTRY*/glTexCoord4dv (GLdouble *v);
-extern(Windows) void /*APIENTRY*/glTexCoord4f (GLfloat s, GLfloat t, GLfloat r, GLfloat q);
-extern(Windows) void /*APIENTRY*/glTexCoord4fv (GLfloat *v);
-extern(Windows) void /*APIENTRY*/glTexCoord4i (GLint s, GLint t, GLint r, GLint q);
-extern(Windows) void /*APIENTRY*/glTexCoord4iv (GLint *v);
-extern(Windows) void /*APIENTRY*/glTexCoord4s (GLshort s, GLshort t, GLshort r, GLshort q);
-extern(Windows) void /*APIENTRY*/glTexCoord4sv (GLshort *v);
-extern(Windows) void /*APIENTRY*/glTexCoordPointer (GLint size, GLenum type, GLsizei stride, GLvoid *pointer);
-extern(Windows) void /*APIENTRY*/glTexEnvf (GLenum target, GLenum pname, GLfloat param);
-extern(Windows) void /*APIENTRY*/glTexEnvfv (GLenum target, GLenum pname, GLfloat *params);
-extern(Windows) void /*APIENTRY*/glTexEnvi (GLenum target, GLenum pname, GLint param);
-extern(Windows) void /*APIENTRY*/glTexEnviv (GLenum target, GLenum pname, GLint *params);
-extern(Windows) void /*APIENTRY*/glTexGend (GLenum coord, GLenum pname, GLdouble param);
-extern(Windows) void /*APIENTRY*/glTexGendv (GLenum coord, GLenum pname, GLdouble *params);
-extern(Windows) void /*APIENTRY*/glTexGenf (GLenum coord, GLenum pname, GLfloat param);
-extern(Windows) void /*APIENTRY*/glTexGenfv (GLenum coord, GLenum pname, GLfloat *params);
-extern(Windows) void /*APIENTRY*/glTexGeni (GLenum coord, GLenum pname, GLint param);
-extern(Windows) void /*APIENTRY*/glTexGeniv (GLenum coord, GLenum pname, GLint *params);
-extern(Windows) void /*APIENTRY*/glTexImage1D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, GLvoid *pixels);
-extern(Windows) void /*APIENTRY*/glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, GLvoid *pixels);
-extern(Windows) void /*APIENTRY*/glTexParameterf (GLenum target, GLenum pname, GLfloat param);
-extern(Windows) void /*APIENTRY*/glTexParameterfv (GLenum target, GLenum pname, GLfloat *params);
-extern(Windows) void /*APIENTRY*/glTexParameteri (GLenum target, GLenum pname, GLint param);
-extern(Windows) void /*APIENTRY*/glTexParameteriv (GLenum target, GLenum pname, GLint *params);
-extern(Windows) void /*APIENTRY*/glTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, GLvoid *pixels);
-extern(Windows) void /*APIENTRY*/glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
-extern(Windows) void /*APIENTRY*/glTranslated (GLdouble x, GLdouble y, GLdouble z);
-extern(Windows) void /*APIENTRY*/glTranslatef (GLfloat x, GLfloat y, GLfloat z);
-extern(Windows) void /*APIENTRY*/glVertex2d (GLdouble x, GLdouble y);
-extern(Windows) void /*APIENTRY*/glVertex2dv (GLdouble *v);
-extern(Windows) void /*APIENTRY*/glVertex2f (GLfloat x, GLfloat y);
-extern(Windows) void /*APIENTRY*/glVertex2fv (GLfloat *v);
-extern(Windows) void /*APIENTRY*/glVertex2i (GLint x, GLint y);
-extern(Windows) void /*APIENTRY*/glVertex2iv (GLint *v);
-extern(Windows) void /*APIENTRY*/glVertex2s (GLshort x, GLshort y);
-extern(Windows) void /*APIENTRY*/glVertex2sv (GLshort *v);
-extern(Windows) void /*APIENTRY*/glVertex3d (GLdouble x, GLdouble y, GLdouble z);
-extern(Windows) void /*APIENTRY*/glVertex3dv (GLdouble *v);
-extern(Windows) void /*APIENTRY*/glVertex3f (GLfloat x, GLfloat y, GLfloat z);
-extern(Windows) void /*APIENTRY*/glVertex3fv (GLfloat *v);
-extern(Windows) void /*APIENTRY*/glVertex3i (GLint x, GLint y, GLint z);
-extern(Windows) void /*APIENTRY*/glVertex3iv (GLint *v);
-extern(Windows) void /*APIENTRY*/glVertex3s (GLshort x, GLshort y, GLshort z);
-extern(Windows) void /*APIENTRY*/glVertex3sv (GLshort *v);
-extern(Windows) void /*APIENTRY*/glVertex4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w);
-extern(Windows) void /*APIENTRY*/glVertex4dv (GLdouble *v);
-extern(Windows) void /*APIENTRY*/glVertex4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-extern(Windows) void /*APIENTRY*/glVertex4fv (GLfloat *v);
-extern(Windows) void /*APIENTRY*/glVertex4i (GLint x, GLint y, GLint z, GLint w);
-extern(Windows) void /*APIENTRY*/glVertex4iv (GLint *v);
-extern(Windows) void /*APIENTRY*/glVertex4s (GLshort x, GLshort y, GLshort z, GLshort w);
-extern(Windows) void /*APIENTRY*/glVertex4sv (GLshort *v);
-extern(Windows) void /*APIENTRY*/glVertexPointer (GLint size, GLenum type, GLsizei stride, GLvoid *pointer);
-extern(Windows) void /*APIENTRY*/glViewport (GLint x, GLint y, GLsizei width, GLsizei height);
-
+void /*APIENTRY*/glAccum (GLenum op, GLfloat value);
+void /*APIENTRY*/glAlphaFunc (GLenum func, GLclampf ref_);
+GLboolean /*APIENTRY*/glAreTexturesResident (GLsizei n, GLuint *textures, GLboolean *residences);
+void /*APIENTRY*/glArrayElement (GLint i);
+void /*APIENTRY*/glBegin (GLenum mode);
+void /*APIENTRY*/glBindTexture (GLenum target, GLuint texture);
+void /*APIENTRY*/glBitmap (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, GLubyte *bitmap);
+void /*APIENTRY*/glBlendFunc (GLenum sfactor, GLenum dfactor);
+void /*APIENTRY*/glCallList (GLuint list);
+void /*APIENTRY*/glCallLists (GLsizei n, GLenum type, GLvoid *lists);
+void /*APIENTRY*/glClear (GLbitfield mask);
+void /*APIENTRY*/glClearAccum (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void /*APIENTRY*/glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
+void /*APIENTRY*/glClearDepth (GLclampd depth);
+void /*APIENTRY*/glClearIndex (GLfloat c);
+void /*APIENTRY*/glClearStencil (GLint s);
+void /*APIENTRY*/glClipPlane (GLenum plane, GLdouble *equation);
+void /*APIENTRY*/glColor3b (GLbyte red, GLbyte green, GLbyte blue);
+void /*APIENTRY*/glColor3bv (GLbyte *v);
+void /*APIENTRY*/glColor3d (GLdouble red, GLdouble green, GLdouble blue);
+void /*APIENTRY*/glColor3dv (GLdouble *v);
+void /*APIENTRY*/glColor3f (GLfloat red, GLfloat green, GLfloat blue);
+void /*APIENTRY*/glColor3fv (GLfloat *v);
+void /*APIENTRY*/glColor3i (GLint red, GLint green, GLint blue);
+void /*APIENTRY*/glColor3iv (GLint *v);
+void /*APIENTRY*/glColor3s (GLshort red, GLshort green, GLshort blue);
+void /*APIENTRY*/glColor3sv (GLshort *v);
+void /*APIENTRY*/glColor3ub (GLubyte red, GLubyte green, GLubyte blue);
+void /*APIENTRY*/glColor3ubv (GLubyte *v);
+void /*APIENTRY*/glColor3ui (GLuint red, GLuint green, GLuint blue);
+void /*APIENTRY*/glColor3uiv (GLuint *v);
+void /*APIENTRY*/glColor3us (GLushort red, GLushort green, GLushort blue);
+void /*APIENTRY*/glColor3usv (GLushort *v);
+void /*APIENTRY*/glColor4b (GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
+void /*APIENTRY*/glColor4bv (GLbyte *v);
+void /*APIENTRY*/glColor4d (GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
+void /*APIENTRY*/glColor4dv (GLdouble *v);
+void /*APIENTRY*/glColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void /*APIENTRY*/glColor4fv (GLfloat *v);
+void /*APIENTRY*/glColor4i (GLint red, GLint green, GLint blue, GLint alpha);
+void /*APIENTRY*/glColor4iv (GLint *v);
+void /*APIENTRY*/glColor4s (GLshort red, GLshort green, GLshort blue, GLshort alpha);
+void /*APIENTRY*/glColor4sv (GLshort *v);
+void /*APIENTRY*/glColor4ub (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
+void /*APIENTRY*/glColor4ubv (GLubyte *v);
+void /*APIENTRY*/glColor4ui (GLuint red, GLuint green, GLuint blue, GLuint alpha);
+void /*APIENTRY*/glColor4uiv (GLuint *v);
+void /*APIENTRY*/glColor4us (GLushort red, GLushort green, GLushort blue, GLushort alpha);
+void /*APIENTRY*/glColor4usv (GLushort *v);
+void /*APIENTRY*/glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+void /*APIENTRY*/glColorMaterial (GLenum face, GLenum mode);
+void /*APIENTRY*/glColorPointer (GLint size, GLenum type, GLsizei stride, GLvoid *pointer);
+void /*APIENTRY*/glCopyPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum type);
+void /*APIENTRY*/glCopyTexImage1D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
+void /*APIENTRY*/glCopyTexImage2D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+void /*APIENTRY*/glCopyTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+void /*APIENTRY*/glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void /*APIENTRY*/glCullFace (GLenum mode);
+void /*APIENTRY*/glDeleteLists (GLuint list, GLsizei range);
+void /*APIENTRY*/glDeleteTextures (GLsizei n, GLuint *textures);
+void /*APIENTRY*/glDepthFunc (GLenum func);
+void /*APIENTRY*/glDepthMask (GLboolean flag);
+void /*APIENTRY*/glDepthRange (GLclampd zNear, GLclampd zFar);
+void /*APIENTRY*/glDisable (GLenum cap);
+void /*APIENTRY*/glDisableClientState (GLenum array);
+void /*APIENTRY*/glDrawArrays (GLenum mode, GLint first, GLsizei count);
+void /*APIENTRY*/glDrawBuffer (GLenum mode);
+void /*APIENTRY*/glDrawElements (GLenum mode, GLsizei count, GLenum type, GLvoid *indices);
+void /*APIENTRY*/glDrawPixels (GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
+void /*APIENTRY*/glEdgeFlag (GLboolean flag);
+void /*APIENTRY*/glEdgeFlagPointer (GLsizei stride, GLvoid *pointer);
+void /*APIENTRY*/glEdgeFlagv (GLboolean *flag);
+void /*APIENTRY*/glEnable (GLenum cap);
+void /*APIENTRY*/glEnableClientState (GLenum array);
+void /*APIENTRY*/glEnd ();
+void /*APIENTRY*/glEndList ();
+void /*APIENTRY*/glEvalCoord1d (GLdouble u);
+void /*APIENTRY*/glEvalCoord1dv (GLdouble *u);
+void /*APIENTRY*/glEvalCoord1f (GLfloat u);
+void /*APIENTRY*/glEvalCoord1fv (GLfloat *u);
+void /*APIENTRY*/glEvalCoord2d (GLdouble u, GLdouble v);
+void /*APIENTRY*/glEvalCoord2dv (GLdouble *u);
+void /*APIENTRY*/glEvalCoord2f (GLfloat u, GLfloat v);
+void /*APIENTRY*/glEvalCoord2fv (GLfloat *u);
+void /*APIENTRY*/glEvalMesh1 (GLenum mode, GLint i1, GLint i2);
+void /*APIENTRY*/glEvalMesh2 (GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
+void /*APIENTRY*/glEvalPoint1 (GLint i);
+void /*APIENTRY*/glEvalPoint2 (GLint i, GLint j);
+void /*APIENTRY*/glFeedbackBuffer (GLsizei size, GLenum type, GLfloat *buffer);
+void /*APIENTRY*/glFinish ();
+void /*APIENTRY*/glFlush ();
+void /*APIENTRY*/glFogf (GLenum pname, GLfloat param);
+void /*APIENTRY*/glFogfv (GLenum pname, GLfloat *params);
+void /*APIENTRY*/glFogi (GLenum pname, GLint param);
+void /*APIENTRY*/glFogiv (GLenum pname, GLint *params);
+void /*APIENTRY*/glFrontFace (GLenum mode);
+void /*APIENTRY*/glFrustum (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+GLuint /*APIENTRY*/glGenLists (GLsizei range);
+void /*APIENTRY*/glGenTextures (GLsizei n, GLuint *textures);
+void /*APIENTRY*/glGetBooleanv (GLenum pname, GLboolean *params);
+void /*APIENTRY*/glGetClipPlane (GLenum plane, GLdouble *equation);
+void /*APIENTRY*/glGetDoublev (GLenum pname, GLdouble *params);
+GLenum /*APIENTRY*/glGetError ();
+void /*APIENTRY*/glGetFloatv (GLenum pname, GLfloat *params);
+void /*APIENTRY*/glGetIntegerv (GLenum pname, GLint *params);
+void /*APIENTRY*/glGetLightfv (GLenum light, GLenum pname, GLfloat *params);
+void /*APIENTRY*/glGetLightiv (GLenum light, GLenum pname, GLint *params);
+void /*APIENTRY*/glGetMapdv (GLenum target, GLenum query, GLdouble *v);
+void /*APIENTRY*/glGetMapfv (GLenum target, GLenum query, GLfloat *v);
+void /*APIENTRY*/glGetMapiv (GLenum target, GLenum query, GLint *v);
+void /*APIENTRY*/glGetMaterialfv (GLenum face, GLenum pname, GLfloat *params);
+void /*APIENTRY*/glGetMaterialiv (GLenum face, GLenum pname, GLint *params);
+void /*APIENTRY*/glGetPixelMapfv (GLenum map, GLfloat *values);
+void /*APIENTRY*/glGetPixelMapuiv (GLenum map, GLuint *values);
+void /*APIENTRY*/glGetPixelMapusv (GLenum map, GLushort *values);
+void /*APIENTRY*/glGetPointerv (GLenum pname, GLvoid* *params);
+void /*APIENTRY*/glGetPolygonStipple (GLubyte *mask);
+GLubyte * /*APIENTRY*/glGetString (GLenum name);
+void /*APIENTRY*/glGetTexEnvfv (GLenum target, GLenum pname, GLfloat *params);
+void /*APIENTRY*/glGetTexEnviv (GLenum target, GLenum pname, GLint *params);
+void /*APIENTRY*/glGetTexGendv (GLenum coord, GLenum pname, GLdouble *params);
+void /*APIENTRY*/glGetTexGenfv (GLenum coord, GLenum pname, GLfloat *params);
+void /*APIENTRY*/glGetTexGeniv (GLenum coord, GLenum pname, GLint *params);
+void /*APIENTRY*/glGetTexImage (GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
+void /*APIENTRY*/glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params);
+void /*APIENTRY*/glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params);
+void /*APIENTRY*/glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params);
+void /*APIENTRY*/glGetTexParameteriv (GLenum target, GLenum pname, GLint *params);
+void /*APIENTRY*/glHint (GLenum target, GLenum mode);
+void /*APIENTRY*/glIndexMask (GLuint mask);
+void /*APIENTRY*/glIndexPointer (GLenum type, GLsizei stride, GLvoid *pointer);
+void /*APIENTRY*/glIndexd (GLdouble c);
+void /*APIENTRY*/glIndexdv (GLdouble *c);
+void /*APIENTRY*/glIndexf (GLfloat c);
+void /*APIENTRY*/glIndexfv (GLfloat *c);
+void /*APIENTRY*/glIndexi (GLint c);
+void /*APIENTRY*/glIndexiv (GLint *c);
+void /*APIENTRY*/glIndexs (GLshort c);
+void /*APIENTRY*/glIndexsv (GLshort *c);
+void /*APIENTRY*/glIndexub (GLubyte c);
+void /*APIENTRY*/glIndexubv (GLubyte *c);
+void /*APIENTRY*/glInitNames ();
+void /*APIENTRY*/glInterleavedArrays (GLenum format, GLsizei stride, GLvoid *pointer);
+GLboolean /*APIENTRY*/glIsEnabled (GLenum cap);
+GLboolean /*APIENTRY*/glIsList (GLuint list);
+GLboolean /*APIENTRY*/glIsTexture (GLuint texture);
+void /*APIENTRY*/glLightModelf (GLenum pname, GLfloat param);
+void /*APIENTRY*/glLightModelfv (GLenum pname, GLfloat *params);
+void /*APIENTRY*/glLightModeli (GLenum pname, GLint param);
+void /*APIENTRY*/glLightModeliv (GLenum pname, GLint *params);
+void /*APIENTRY*/glLightf (GLenum light, GLenum pname, GLfloat param);
+void /*APIENTRY*/glLightfv (GLenum light, GLenum pname, GLfloat *params);
+void /*APIENTRY*/glLighti (GLenum light, GLenum pname, GLint param);
+void /*APIENTRY*/glLightiv (GLenum light, GLenum pname, GLint *params);
+void /*APIENTRY*/glLineStipple (GLint factor, GLushort pattern);
+void /*APIENTRY*/glLineWidth (GLfloat width);
+void /*APIENTRY*/glListBase (GLuint base);
+void /*APIENTRY*/glLoadIdentity ();
+void /*APIENTRY*/glLoadMatrixd (GLdouble *m);
+void /*APIENTRY*/glLoadMatrixf (GLfloat *m);
+void /*APIENTRY*/glLoadName (GLuint name);
+void /*APIENTRY*/glLogicOp (GLenum opcode);
+void /*APIENTRY*/glMap1d (GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, GLdouble *points);
+void /*APIENTRY*/glMap1f (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, GLfloat *points);
+void /*APIENTRY*/glMap2d (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble *points);
+void /*APIENTRY*/glMap2f (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat *points);
+void /*APIENTRY*/glMapGrid1d (GLint un, GLdouble u1, GLdouble u2);
+void /*APIENTRY*/glMapGrid1f (GLint un, GLfloat u1, GLfloat u2);
+void /*APIENTRY*/glMapGrid2d (GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
+void /*APIENTRY*/glMapGrid2f (GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
+void /*APIENTRY*/glMaterialf (GLenum face, GLenum pname, GLfloat param);
+void /*APIENTRY*/glMaterialfv (GLenum face, GLenum pname, GLfloat *params);
+void /*APIENTRY*/glMateriali (GLenum face, GLenum pname, GLint param);
+void /*APIENTRY*/glMaterialiv (GLenum face, GLenum pname, GLint *params);
+void /*APIENTRY*/glMatrixMode (GLenum mode);
+void /*APIENTRY*/glMultMatrixd (GLdouble *m);
+void /*APIENTRY*/glMultMatrixf (GLfloat *m);
+void /*APIENTRY*/glNewList (GLuint list, GLenum mode);
+void /*APIENTRY*/glNormal3b (GLbyte nx, GLbyte ny, GLbyte nz);
+void /*APIENTRY*/glNormal3bv (GLbyte *v);
+void /*APIENTRY*/glNormal3d (GLdouble nx, GLdouble ny, GLdouble nz);
+void /*APIENTRY*/glNormal3dv (GLdouble *v);
+void /*APIENTRY*/glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz);
+void /*APIENTRY*/glNormal3fv (GLfloat *v);
+void /*APIENTRY*/glNormal3i (GLint nx, GLint ny, GLint nz);
+void /*APIENTRY*/glNormal3iv (GLint *v);
+void /*APIENTRY*/glNormal3s (GLshort nx, GLshort ny, GLshort nz);
+void /*APIENTRY*/glNormal3sv (GLshort *v);
+void /*APIENTRY*/glNormalPointer (GLenum type, GLsizei stride, GLvoid *pointer);
+void /*APIENTRY*/glOrtho (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+void /*APIENTRY*/glPassThrough (GLfloat token);
+void /*APIENTRY*/glPixelMapfv (GLenum map, GLsizei mapsize, GLfloat *values);
+void /*APIENTRY*/glPixelMapuiv (GLenum map, GLsizei mapsize, GLuint *values);
+void /*APIENTRY*/glPixelMapusv (GLenum map, GLsizei mapsize, GLushort *values);
+void /*APIENTRY*/glPixelStoref (GLenum pname, GLfloat param);
+void /*APIENTRY*/glPixelStorei (GLenum pname, GLint param);
+void /*APIENTRY*/glPixelTransferf (GLenum pname, GLfloat param);
+void /*APIENTRY*/glPixelTransferi (GLenum pname, GLint param);
+void /*APIENTRY*/glPixelZoom (GLfloat xfactor, GLfloat yfactor);
+void /*APIENTRY*/glPointSize (GLfloat size);
+void /*APIENTRY*/glPolygonMode (GLenum face, GLenum mode);
+void /*APIENTRY*/glPolygonOffset (GLfloat factor, GLfloat units);
+void /*APIENTRY*/glPolygonStipple (GLubyte *mask);
+void /*APIENTRY*/glPopAttrib ();
+void /*APIENTRY*/glPopClientAttrib ();
+void /*APIENTRY*/glPopMatrix ();
+void /*APIENTRY*/glPopName ();
+void /*APIENTRY*/glPrioritizeTextures (GLsizei n, GLuint *textures, GLclampf *priorities);
+void /*APIENTRY*/glPushAttrib (GLbitfield mask);
+void /*APIENTRY*/glPushClientAttrib (GLbitfield mask);
+void /*APIENTRY*/glPushMatrix ();
+void /*APIENTRY*/glPushName (GLuint name);
+void /*APIENTRY*/glRasterPos2d (GLdouble x, GLdouble y);
+void /*APIENTRY*/glRasterPos2dv (GLdouble *v);
+void /*APIENTRY*/glRasterPos2f (GLfloat x, GLfloat y);
+void /*APIENTRY*/glRasterPos2fv (GLfloat *v);
+void /*APIENTRY*/glRasterPos2i (GLint x, GLint y);
+void /*APIENTRY*/glRasterPos2iv (GLint *v);
+void /*APIENTRY*/glRasterPos2s (GLshort x, GLshort y);
+void /*APIENTRY*/glRasterPos2sv (GLshort *v);
+void /*APIENTRY*/glRasterPos3d (GLdouble x, GLdouble y, GLdouble z);
+void /*APIENTRY*/glRasterPos3dv (GLdouble *v);
+void /*APIENTRY*/glRasterPos3f (GLfloat x, GLfloat y, GLfloat z);
+void /*APIENTRY*/glRasterPos3fv (GLfloat *v);
+void /*APIENTRY*/glRasterPos3i (GLint x, GLint y, GLint z);
+void /*APIENTRY*/glRasterPos3iv (GLint *v);
+void /*APIENTRY*/glRasterPos3s (GLshort x, GLshort y, GLshort z);
+void /*APIENTRY*/glRasterPos3sv (GLshort *v);
+void /*APIENTRY*/glRasterPos4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void /*APIENTRY*/glRasterPos4dv (GLdouble *v);
+void /*APIENTRY*/glRasterPos4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void /*APIENTRY*/glRasterPos4fv (GLfloat *v);
+void /*APIENTRY*/glRasterPos4i (GLint x, GLint y, GLint z, GLint w);
+void /*APIENTRY*/glRasterPos4iv (GLint *v);
+void /*APIENTRY*/glRasterPos4s (GLshort x, GLshort y, GLshort z, GLshort w);
+void /*APIENTRY*/glRasterPos4sv (GLshort *v);
+void /*APIENTRY*/glReadBuffer (GLenum mode);
+void /*APIENTRY*/glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
+void /*APIENTRY*/glRectd (GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
+void /*APIENTRY*/glRectdv (GLdouble *v1, GLdouble *v2);
+void /*APIENTRY*/glRectf (GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
+void /*APIENTRY*/glRectfv (GLfloat *v1, GLfloat *v2);
+void /*APIENTRY*/glRecti (GLint x1, GLint y1, GLint x2, GLint y2);
+void /*APIENTRY*/glRectiv (GLint *v1, GLint *v2);
+void /*APIENTRY*/glRects (GLshort x1, GLshort y1, GLshort x2, GLshort y2);
+void /*APIENTRY*/glRectsv (GLshort *v1, GLshort *v2);
+GLint /*APIENTRY*/glRenderMode (GLenum mode);
+void /*APIENTRY*/glRotated (GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
+void /*APIENTRY*/glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
+void /*APIENTRY*/glScaled (GLdouble x, GLdouble y, GLdouble z);
+void /*APIENTRY*/glScalef (GLfloat x, GLfloat y, GLfloat z);
+void /*APIENTRY*/glScissor (GLint x, GLint y, GLsizei width, GLsizei height);
+void /*APIENTRY*/glSelectBuffer (GLsizei size, GLuint *buffer);
+void /*APIENTRY*/glShadeModel (GLenum mode);
+void /*APIENTRY*/glStencilFunc (GLenum func, GLint ref_, GLuint mask);
+void /*APIENTRY*/glStencilMask (GLuint mask);
+void /*APIENTRY*/glStencilOp (GLenum fail, GLenum zfail, GLenum zpass);
+void /*APIENTRY*/glTexCoord1d (GLdouble s);
+void /*APIENTRY*/glTexCoord1dv (GLdouble *v);
+void /*APIENTRY*/glTexCoord1f (GLfloat s);
+void /*APIENTRY*/glTexCoord1fv (GLfloat *v);
+void /*APIENTRY*/glTexCoord1i (GLint s);
+void /*APIENTRY*/glTexCoord1iv (GLint *v);
+void /*APIENTRY*/glTexCoord1s (GLshort s);
+void /*APIENTRY*/glTexCoord1sv (GLshort *v);
+void /*APIENTRY*/glTexCoord2d (GLdouble s, GLdouble t);
+void /*APIENTRY*/glTexCoord2dv (GLdouble *v);
+void /*APIENTRY*/glTexCoord2f (GLfloat s, GLfloat t);
+void /*APIENTRY*/glTexCoord2fv (GLfloat *v);
+void /*APIENTRY*/glTexCoord2i (GLint s, GLint t);
+void /*APIENTRY*/glTexCoord2iv (GLint *v);
+void /*APIENTRY*/glTexCoord2s (GLshort s, GLshort t);
+void /*APIENTRY*/glTexCoord2sv (GLshort *v);
+void /*APIENTRY*/glTexCoord3d (GLdouble s, GLdouble t, GLdouble r);
+void /*APIENTRY*/glTexCoord3dv (GLdouble *v);
+void /*APIENTRY*/glTexCoord3f (GLfloat s, GLfloat t, GLfloat r);
+void /*APIENTRY*/glTexCoord3fv (GLfloat *v);
+void /*APIENTRY*/glTexCoord3i (GLint s, GLint t, GLint r);
+void /*APIENTRY*/glTexCoord3iv (GLint *v);
+void /*APIENTRY*/glTexCoord3s (GLshort s, GLshort t, GLshort r);
+void /*APIENTRY*/glTexCoord3sv (GLshort *v);
+void /*APIENTRY*/glTexCoord4d (GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+void /*APIENTRY*/glTexCoord4dv (GLdouble *v);
+void /*APIENTRY*/glTexCoord4f (GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+void /*APIENTRY*/glTexCoord4fv (GLfloat *v);
+void /*APIENTRY*/glTexCoord4i (GLint s, GLint t, GLint r, GLint q);
+void /*APIENTRY*/glTexCoord4iv (GLint *v);
+void /*APIENTRY*/glTexCoord4s (GLshort s, GLshort t, GLshort r, GLshort q);
+void /*APIENTRY*/glTexCoord4sv (GLshort *v);
+void /*APIENTRY*/glTexCoordPointer (GLint size, GLenum type, GLsizei stride, GLvoid *pointer);
+void /*APIENTRY*/glTexEnvf (GLenum target, GLenum pname, GLfloat param);
+void /*APIENTRY*/glTexEnvfv (GLenum target, GLenum pname, GLfloat *params);
+void /*APIENTRY*/glTexEnvi (GLenum target, GLenum pname, GLint param);
+void /*APIENTRY*/glTexEnviv (GLenum target, GLenum pname, GLint *params);
+void /*APIENTRY*/glTexGend (GLenum coord, GLenum pname, GLdouble param);
+void /*APIENTRY*/glTexGendv (GLenum coord, GLenum pname, GLdouble *params);
+void /*APIENTRY*/glTexGenf (GLenum coord, GLenum pname, GLfloat param);
+void /*APIENTRY*/glTexGenfv (GLenum coord, GLenum pname, GLfloat *params);
+void /*APIENTRY*/glTexGeni (GLenum coord, GLenum pname, GLint param);
+void /*APIENTRY*/glTexGeniv (GLenum coord, GLenum pname, GLint *params);
+void /*APIENTRY*/glTexImage1D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, GLvoid *pixels);
+void /*APIENTRY*/glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, GLvoid *pixels);
+void /*APIENTRY*/glTexParameterf (GLenum target, GLenum pname, GLfloat param);
+void /*APIENTRY*/glTexParameterfv (GLenum target, GLenum pname, GLfloat *params);
+void /*APIENTRY*/glTexParameteri (GLenum target, GLenum pname, GLint param);
+void /*APIENTRY*/glTexParameteriv (GLenum target, GLenum pname, GLint *params);
+void /*APIENTRY*/glTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, GLvoid *pixels);
+void /*APIENTRY*/glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
+void /*APIENTRY*/glTranslated (GLdouble x, GLdouble y, GLdouble z);
+void /*APIENTRY*/glTranslatef (GLfloat x, GLfloat y, GLfloat z);
+void /*APIENTRY*/glVertex2d (GLdouble x, GLdouble y);
+void /*APIENTRY*/glVertex2dv (GLdouble *v);
+void /*APIENTRY*/glVertex2f (GLfloat x, GLfloat y);
+void /*APIENTRY*/glVertex2fv (GLfloat *v);
+void /*APIENTRY*/glVertex2i (GLint x, GLint y);
+void /*APIENTRY*/glVertex2iv (GLint *v);
+void /*APIENTRY*/glVertex2s (GLshort x, GLshort y);
+void /*APIENTRY*/glVertex2sv (GLshort *v);
+void /*APIENTRY*/glVertex3d (GLdouble x, GLdouble y, GLdouble z);
+void /*APIENTRY*/glVertex3dv (GLdouble *v);
+void /*APIENTRY*/glVertex3f (GLfloat x, GLfloat y, GLfloat z);
+void /*APIENTRY*/glVertex3fv (GLfloat *v);
+void /*APIENTRY*/glVertex3i (GLint x, GLint y, GLint z);
+void /*APIENTRY*/glVertex3iv (GLint *v);
+void /*APIENTRY*/glVertex3s (GLshort x, GLshort y, GLshort z);
+void /*APIENTRY*/glVertex3sv (GLshort *v);
+void /*APIENTRY*/glVertex4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+void /*APIENTRY*/glVertex4dv (GLdouble *v);
+void /*APIENTRY*/glVertex4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+void /*APIENTRY*/glVertex4fv (GLfloat *v);
+void /*APIENTRY*/glVertex4i (GLint x, GLint y, GLint z, GLint w);
+void /*APIENTRY*/glVertex4iv (GLint *v);
+void /*APIENTRY*/glVertex4s (GLshort x, GLshort y, GLshort z, GLshort w);
+void /*APIENTRY*/glVertex4sv (GLshort *v);
+void /*APIENTRY*/glVertexPointer (GLint size, GLenum type, GLsizei stride, GLvoid *pointer);
+void /*APIENTRY*/glViewport (GLint x, GLint y, GLsizei width, GLsizei height);
 
-extern(Windows):
 
 /* EXT_vertex_array */
-typedef void (* PFNGLARRAYELEMENTEXTPROC) (GLint i);
-typedef void (* PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count);
-typedef void (* PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, GLvoid *pointer);
-typedef void (* PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, GLvoid *pointer);
-typedef void (* PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, GLvoid *pointer);
-typedef void (* PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, GLvoid *pointer);
-typedef void (* PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, GLvoid *pointer);
-typedef void (* PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, GLboolean *pointer);
-typedef void (* PFNGLGETPOINTERVEXTPROC) (GLenum pname, GLvoid* *params);
-typedef void (* PFNGLARRAYELEMENTARRAYEXTPROC)(GLenum mode, GLsizei count, GLvoid* pi);
+alias void function(GLint i) PFNGLARRAYELEMENTEXTPROC;
+alias void function(GLenum mode, GLint first, GLsizei count) PFNGLDRAWARRAYSEXTPROC;
+alias void function(GLint size, GLenum type, GLsizei stride, GLsizei count, GLvoid *pointer) PFNGLVERTEXPOINTEREXTPROC;
+alias void function(GLenum type, GLsizei stride, GLsizei count, GLvoid *pointer) PFNGLNORMALPOINTEREXTPROC;
+alias void function(GLint size, GLenum type, GLsizei stride, GLsizei count, GLvoid *pointer) PFNGLCOLORPOINTEREXTPROC;
+alias void function(GLenum type, GLsizei stride, GLsizei count, GLvoid *pointer) PFNGLINDEXPOINTEREXTPROC;
+alias void function(GLint size, GLenum type, GLsizei stride, GLsizei count, GLvoid *pointer) PFNGLTEXCOORDPOINTEREXTPROC;
+alias void function(GLsizei stride, GLsizei count, GLboolean *pointer) PFNGLEDGEFLAGPOINTEREXTPROC;
+alias void function(GLenum pname, GLvoid* *params) PFNGLGETPOINTERVEXTPROC;
+alias void function(GLenum mode, GLsizei count, GLvoid* pi) PFNGLARRAYELEMENTARRAYEXTPROC;
 
 /* WIN_draw_range_elements */
-typedef void (* PFNGLDRAWRANGEELEMENTSWINPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, GLvoid *indices);
+alias void function(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, GLvoid *indices) PFNGLDRAWRANGEELEMENTSWINPROC;
 
 /* WIN_swap_hint */
-typedef void (* PFNGLADDSWAPHINTRECTWINPROC)  (GLint x, GLint y, GLsizei width, GLsizei height);
+alias void function(GLint x, GLint y, GLsizei width, GLsizei height) PFNGLADDSWAPHINTRECTWINPROC;
 
 /* EXT_paletted_texture */
-typedef void (* PFNGLCOLORTABLEEXTPROC)
-    (GLenum target, GLenum internalFormat, GLsizei width, GLenum format,
-     GLenum type, GLvoid *data);
-typedef void (* PFNGLCOLORSUBTABLEEXTPROC)
-    (GLenum target, GLsizei start, GLsizei count, GLenum format,
-     GLenum type, GLvoid *data);
-typedef void (* PFNGLGETCOLORTABLEEXTPROC)
-    (GLenum target, GLenum format, GLenum type, GLvoid *data);
-typedef void (* PFNGLGETCOLORTABLEPARAMETERIVEXTPROC)
-    (GLenum target, GLenum pname, GLint *params);
-typedef void (* PFNGLGETCOLORTABLEPARAMETERFVEXTPROC)
-    (GLenum target, GLenum pname, GLfloat *params);
+alias void function(GLenum target, GLenum internalFormat, GLsizei width, GLenum format,
+     GLenum type, GLvoid *data) PFNGLCOLORTABLEEXTPROC;
+alias void function(GLenum target, GLsizei start, GLsizei count, GLenum format,
+     GLenum type, GLvoid *data) PFNGLCOLORSUBTABLEEXTPROC;
+alias void function(GLenum target, GLenum format, GLenum type, GLvoid *data) PFNGLGETCOLORTABLEEXTPROC;
+alias void function(GLenum target, GLenum pname, GLint *params) PFNGLGETCOLORTABLEPARAMETERIVEXTPROC;
+alias void function(GLenum target, GLenum pname, GLfloat *params) PFNGLGETCOLORTABLEPARAMETERFVEXTPROC;
 
-import openglu;
\ No newline at end of file
+//import openglu;
--- a/import/openglu.d
+++ b/import/openglu.d
@@ -1,6 +1,6 @@
 import opengl;
 
-extern(Windows):
+extern(System):
 
 GLubyte* gluErrorString (
     GLenum   errCode);
@@ -28,7 +28,7 @@
     GLdouble y, 
     GLdouble width, 
     GLdouble height, 
-    GLint[4]    viewport);
+    ref GLint[4] viewport);
 
 void gluLookAt (
     GLdouble eyex, 
@@ -45,9 +45,9 @@
     GLdouble        objx, 
     GLdouble        objy, 
     GLdouble        objz,  
-    GLdouble[16]    modelMatrix, 
-    GLdouble[16]    projMatrix, 
-    GLint[4]        viewport, 
+    ref GLdouble[16] modelMatrix, 
+    ref GLdouble[16] projMatrix, 
+    ref GLint[4]    viewport, 
     GLdouble        *winx, 
     GLdouble        *winy, 
     GLdouble        *winz);
@@ -56,8 +56,8 @@
     GLdouble       winx, 
     GLdouble       winy, 
     GLdouble       winz, 
-    GLdouble[16]   modelMatrix, 
-    GLdouble[16]   projMatrix, 
+    ref GLdouble[16] modelMatrix, 
+    ref GLdouble[16] projMatrix, 
     GLint[4]       viewport, 
     GLdouble       *objx, 
     GLdouble       *objy, 
@@ -157,7 +157,7 @@
 void gluQuadricCallback (
     GLUquadric          *qobj, 
     GLenum              which, 
-    void                (* fn)());
+    void                function() fn);
 
 GLUtesselator*  gluNewTess(          
     );
@@ -174,7 +174,7 @@
 
 void  gluTessVertex(       
     GLUtesselator       *tess,
-    GLdouble[3]         coords, 
+    ref GLdouble[3]     coords, 
     void                *data );
 
 void  gluTessEndContour(   
@@ -197,7 +197,7 @@
 void  gluTessCallback(     
     GLUtesselator       *tess,
     GLenum              which, 
-    void                ( *fn)());
+    void                function() fn);
 
 void  gluGetTessProperty(  
     GLUtesselator       *tess,
@@ -260,9 +260,9 @@
 void 
 gluLoadSamplingMatrices (
     GLUnurbs            *nobj, 
-    GLfloat[16]     modelMatrix, 
-    GLfloat[16]     projMatrix, 
-    GLint[4]        viewport );
+    ref GLfloat[16]     modelMatrix, 
+    ref GLfloat[16]     projMatrix, 
+    ref GLint[4]        viewport );
 
 void 
 gluNurbsProperty (
@@ -280,37 +280,37 @@
 gluNurbsCallback (
     GLUnurbs            *nobj, 
     GLenum              which, 
-    void                (* fn)() );
+    void                function() fn );
 
 
 /****            function prototypes    ****/
 
 /* gluQuadricCallback */
-typedef void (* GLUquadricErrorProc) (GLenum);
+alias void function(GLenum) GLUquadricErrorProc;
 
 /* gluTessCallback */
-typedef void (* GLUtessBeginProc)        (GLenum);
-typedef void (* GLUtessEdgeFlagProc)     (GLboolean);
-typedef void (* GLUtessVertexProc)       (void *);
-typedef void (* GLUtessEndProc)          ();
-typedef void (* GLUtessErrorProc)        (GLenum);
-typedef void (* GLUtessCombineProc)      (GLdouble[3],
-                                                  void*[4], 
-                                                  GLfloat[4],
-                                                  void** );
-typedef void (* GLUtessBeginDataProc)    (GLenum, void *);
-typedef void (* GLUtessEdgeFlagDataProc) (GLboolean, void *);
-typedef void (* GLUtessVertexDataProc)   (void *, void *);
-typedef void (* GLUtessEndDataProc)      (void *);
-typedef void (* GLUtessErrorDataProc)    (GLenum, void *);
-typedef void (* GLUtessCombineDataProc)  (GLdouble[3],
-                                                  void*[4], 
-                                                  GLfloat[4],
-                                                  void**,
-                                                  void* );
+alias void function(GLenum) GLUtessBeginProc;
+alias void function(GLboolean) GLUtessEdgeFlagProc;
+alias void function(void *) GLUtessVertexProc;
+alias void function() GLUtessEndProc;
+alias void function(GLenum) GLUtessErrorProc;
+alias void function(ref GLdouble[3],
+                    ref void*[4], 
+                    ref GLfloat[4],
+                    void**) GLUtessCombineProc;
+alias void function(GLenum, void *) GLUtessBeginDataProc;
+alias void function(GLboolean, void *) GLUtessEdgeFlagDataProc;
+alias void function(void *, void *) GLUtessVertexDataProc;
+alias void function(void *) GLUtessEndDataProc;
+alias void function(GLenum, void *) GLUtessErrorDataProc;
+alias void function(ref GLdouble[3],
+                    ref void*[4], 
+                    ref GLfloat[4],
+                    void**,
+                    void*) GLUtessCombineDataProc;
 
 /* gluNurbsCallback */
-typedef void (* GLUnurbsErrorProc)   (GLenum);
+alias void function(GLenum) GLUnurbsErrorProc;
 
 
 /****           Generic constants               ****/
@@ -357,7 +357,6 @@
 
 /****           Tesselation constants           ****/
 
-//const extended GLU_TESS_MAX_COORD            = 1.0e150;
 const real GLU_TESS_MAX_COORD            = 1.0e150;
 
 /* TessProperty */
--- /dev/null
+++ b/import/SDL_keysym_.d
@@ -0,0 +1,308 @@
+/*
+    SDL - Simple DirectMedia Layer
+    Copyright (C) 1997, 1998, 1999, 2000, 2001  Sam Lantinga
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public
+    License along with this library; if not, write to the Free
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+    Sam Lantinga
+    slouken@devolution.com
+*/
+
+/* What we really want is a mapping of every raw key on the keyboard.
+   To support international keyboards, we use the range 0xA1 - 0xFF
+   as international virtual keycodes.  We'll follow in the footsteps of X11...
+   The names of the keys
+ */
+ 
+alias int SDLKey;
+enum {
+	/* The keyboard syms have been cleverly chosen to map to ASCII */
+	SDLK_UNKNOWN		= 0,
+	SDLK_FIRST		= 0,
+	SDLK_BACKSPACE		= 8,
+	SDLK_TAB		= 9,
+	SDLK_CLEAR		= 12,
+	SDLK_RETURN		= 13,
+	SDLK_PAUSE		= 19,
+	SDLK_ESCAPE		= 27,
+	SDLK_SPACE		= 32,
+	SDLK_EXCLAIM		= 33,
+	SDLK_QUOTEDBL		= 34,
+	SDLK_HASH		= 35,
+	SDLK_DOLLAR		= 36,
+	SDLK_AMPERSAND		= 38,
+	SDLK_QUOTE		= 39,
+	SDLK_LEFTPAREN		= 40,
+	SDLK_RIGHTPAREN		= 41,
+	SDLK_ASTERISK		= 42,
+	SDLK_PLUS		= 43,
+	SDLK_COMMA		= 44,
+	SDLK_MINUS		= 45,
+	SDLK_PERIOD		= 46,
+	SDLK_SLASH		= 47,
+	SDLK_0			= 48,
+	SDLK_1			= 49,
+	SDLK_2			= 50,
+	SDLK_3			= 51,
+	SDLK_4			= 52,
+	SDLK_5			= 53,
+	SDLK_6			= 54,
+	SDLK_7			= 55,
+	SDLK_8			= 56,
+	SDLK_9			= 57,
+	SDLK_COLON		= 58,
+	SDLK_SEMICOLON		= 59,
+	SDLK_LESS		= 60,
+	SDLK_EQUALS		= 61,
+	SDLK_GREATER		= 62,
+	SDLK_QUESTION		= 63,
+	SDLK_AT			= 64,
+	/* 
+	   Skip uppercase letters
+	 */
+	SDLK_LEFTBRACKET	= 91,
+	SDLK_BACKSLASH		= 92,
+	SDLK_RIGHTBRACKET	= 93,
+	SDLK_CARET		= 94,
+	SDLK_UNDERSCORE		= 95,
+	SDLK_BACKQUOTE		= 96,
+	SDLK_a			= 97,
+	SDLK_b			= 98,
+	SDLK_c			= 99,
+	SDLK_d			= 100,
+	SDLK_e			= 101,
+	SDLK_f			= 102,
+	SDLK_g			= 103,
+	SDLK_h			= 104,
+	SDLK_i			= 105,
+	SDLK_j			= 106,
+	SDLK_k			= 107,
+	SDLK_l			= 108,
+	SDLK_m			= 109,
+	SDLK_n			= 110,
+	SDLK_o			= 111,
+	SDLK_p			= 112,
+	SDLK_q			= 113,
+	SDLK_r			= 114,
+	SDLK_s			= 115,
+	SDLK_t			= 116,
+	SDLK_u			= 117,
+	SDLK_v			= 118,
+	SDLK_w			= 119,
+	SDLK_x			= 120,
+	SDLK_y			= 121,
+	SDLK_z			= 122,
+	SDLK_DELETE		= 127,
+	/* End of ASCII mapped keysyms */
+
+	/* International keyboard syms */
+	SDLK_WORLD_0		= 160,		/* 0xA0 */
+	SDLK_WORLD_1		= 161,
+	SDLK_WORLD_2		= 162,
+	SDLK_WORLD_3		= 163,
+	SDLK_WORLD_4		= 164,
+	SDLK_WORLD_5		= 165,
+	SDLK_WORLD_6		= 166,
+	SDLK_WORLD_7		= 167,
+	SDLK_WORLD_8		= 168,
+	SDLK_WORLD_9		= 169,
+	SDLK_WORLD_10		= 170,
+	SDLK_WORLD_11		= 171,
+	SDLK_WORLD_12		= 172,
+	SDLK_WORLD_13		= 173,
+	SDLK_WORLD_14		= 174,
+	SDLK_WORLD_15		= 175,
+	SDLK_WORLD_16		= 176,
+	SDLK_WORLD_17		= 177,
+	SDLK_WORLD_18		= 178,
+	SDLK_WORLD_19		= 179,
+	SDLK_WORLD_20		= 180,
+	SDLK_WORLD_21		= 181,
+	SDLK_WORLD_22		= 182,
+	SDLK_WORLD_23		= 183,
+	SDLK_WORLD_24		= 184,
+	SDLK_WORLD_25		= 185,
+	SDLK_WORLD_26		= 186,
+	SDLK_WORLD_27		= 187,
+	SDLK_WORLD_28		= 188,
+	SDLK_WORLD_29		= 189,
+	SDLK_WORLD_30		= 190,
+	SDLK_WORLD_31		= 191,
+	SDLK_WORLD_32		= 192,
+	SDLK_WORLD_33		= 193,
+	SDLK_WORLD_34		= 194,
+	SDLK_WORLD_35		= 195,
+	SDLK_WORLD_36		= 196,
+	SDLK_WORLD_37		= 197,
+	SDLK_WORLD_38		= 198,
+	SDLK_WORLD_39		= 199,
+	SDLK_WORLD_40		= 200,
+	SDLK_WORLD_41		= 201,
+	SDLK_WORLD_42		= 202,
+	SDLK_WORLD_43		= 203,
+	SDLK_WORLD_44		= 204,
+	SDLK_WORLD_45		= 205,
+	SDLK_WORLD_46		= 206,
+	SDLK_WORLD_47		= 207,
+	SDLK_WORLD_48		= 208,
+	SDLK_WORLD_49		= 209,
+	SDLK_WORLD_50		= 210,
+	SDLK_WORLD_51		= 211,
+	SDLK_WORLD_52		= 212,
+	SDLK_WORLD_53		= 213,
+	SDLK_WORLD_54		= 214,
+	SDLK_WORLD_55		= 215,
+	SDLK_WORLD_56		= 216,
+	SDLK_WORLD_57		= 217,
+	SDLK_WORLD_58		= 218,
+	SDLK_WORLD_59		= 219,
+	SDLK_WORLD_60		= 220,
+	SDLK_WORLD_61		= 221,
+	SDLK_WORLD_62		= 222,
+	SDLK_WORLD_63		= 223,
+	SDLK_WORLD_64		= 224,
+	SDLK_WORLD_65		= 225,
+	SDLK_WORLD_66		= 226,
+	SDLK_WORLD_67		= 227,
+	SDLK_WORLD_68		= 228,
+	SDLK_WORLD_69		= 229,
+	SDLK_WORLD_70		= 230,
+	SDLK_WORLD_71		= 231,
+	SDLK_WORLD_72		= 232,
+	SDLK_WORLD_73		= 233,
+	SDLK_WORLD_74		= 234,
+	SDLK_WORLD_75		= 235,
+	SDLK_WORLD_76		= 236,
+	SDLK_WORLD_77		= 237,
+	SDLK_WORLD_78		= 238,
+	SDLK_WORLD_79		= 239,
+	SDLK_WORLD_80		= 240,
+	SDLK_WORLD_81		= 241,
+	SDLK_WORLD_82		= 242,
+	SDLK_WORLD_83		= 243,
+	SDLK_WORLD_84		= 244,
+	SDLK_WORLD_85		= 245,
+	SDLK_WORLD_86		= 246,
+	SDLK_WORLD_87		= 247,
+	SDLK_WORLD_88		= 248,
+	SDLK_WORLD_89		= 249,
+	SDLK_WORLD_90		= 250,
+	SDLK_WORLD_91		= 251,
+	SDLK_WORLD_92		= 252,
+	SDLK_WORLD_93		= 253,
+	SDLK_WORLD_94		= 254,
+	SDLK_WORLD_95		= 255,		/* 0xFF */
+
+	/* Numeric keypad */
+	SDLK_KP0		= 256,
+	SDLK_KP1		= 257,
+	SDLK_KP2		= 258,
+	SDLK_KP3		= 259,
+	SDLK_KP4		= 260,
+	SDLK_KP5		= 261,
+	SDLK_KP6		= 262,
+	SDLK_KP7		= 263,
+	SDLK_KP8		= 264,
+	SDLK_KP9		= 265,
+	SDLK_KP_PERIOD		= 266,
+	SDLK_KP_DIVIDE		= 267,
+	SDLK_KP_MULTIPLY	= 268,
+	SDLK_KP_MINUS		= 269,
+	SDLK_KP_PLUS		= 270,
+	SDLK_KP_ENTER		= 271,
+	SDLK_KP_EQUALS		= 272,
+
+	/* Arrows + Home/End pad */
+	SDLK_UP			= 273,
+	SDLK_DOWN		= 274,
+	SDLK_RIGHT		= 275,
+	SDLK_LEFT		= 276,
+	SDLK_INSERT		= 277,
+	SDLK_HOME		= 278,
+	SDLK_END		= 279,
+	SDLK_PAGEUP		= 280,
+	SDLK_PAGEDOWN		= 281,
+
+	/* Function keys */
+	SDLK_F1			= 282,
+	SDLK_F2			= 283,
+	SDLK_F3			= 284,
+	SDLK_F4			= 285,
+	SDLK_F5			= 286,
+	SDLK_F6			= 287,
+	SDLK_F7			= 288,
+	SDLK_F8			= 289,
+	SDLK_F9			= 290,
+	SDLK_F10		= 291,
+	SDLK_F11		= 292,
+	SDLK_F12		= 293,
+	SDLK_F13		= 294,
+	SDLK_F14		= 295,
+	SDLK_F15		= 296,
+
+	/* Key state modifier keys */
+	SDLK_NUMLOCK		= 300,
+	SDLK_CAPSLOCK		= 301,
+	SDLK_SCROLLOCK		= 302,
+	SDLK_RSHIFT		= 303,
+	SDLK_LSHIFT		= 304,
+	SDLK_RCTRL		= 305,
+	SDLK_LCTRL		= 306,
+	SDLK_RALT		= 307,
+	SDLK_LALT		= 308,
+	SDLK_RMETA		= 309,
+	SDLK_LMETA		= 310,
+	SDLK_LSUPER		= 311,		/* Left "Windows" key */
+	SDLK_RSUPER		= 312,		/* Right "Windows" key */
+	SDLK_MODE		= 313,		/* "Alt Gr" key */
+	SDLK_COMPOSE		= 314,		/* Multi-key compose key */
+
+	/* Miscellaneous function keys */
+	SDLK_HELP		= 315,
+	SDLK_PRINT		= 316,
+	SDLK_SYSREQ		= 317,
+	SDLK_BREAK		= 318,
+	SDLK_MENU		= 319,
+	SDLK_POWER		= 320,		/* Power Macintosh power key */
+	SDLK_EURO		= 321,		/* Some european keyboards */
+	SDLK_UNDO		= 322,		/* Atari keyboard has Undo */
+
+	/* Add any other keys here */
+
+	SDLK_LAST
+}
+
+/* Enumeration of valid key mods (possibly OR'd together) */
+alias int SDLMod;
+enum {
+	KMOD_NONE  = 0x0000,
+	KMOD_LSHIFT= 0x0001,
+	KMOD_RSHIFT= 0x0002,
+	KMOD_LCTRL = 0x0040,
+	KMOD_RCTRL = 0x0080,
+	KMOD_LALT  = 0x0100,
+	KMOD_RALT  = 0x0200,
+	KMOD_LMETA = 0x0400,
+	KMOD_RMETA = 0x0800,
+	KMOD_NUM   = 0x1000,
+	KMOD_CAPS  = 0x2000,
+	KMOD_MODE  = 0x4000,
+	KMOD_RESERVED = 0x8000
+}
+
+const uint KMOD_CTRL	= (KMOD_LCTRL|KMOD_RCTRL);
+const uint KMOD_SHIFT	= (KMOD_LSHIFT|KMOD_RSHIFT);
+const uint KMOD_ALT		= (KMOD_LALT|KMOD_RALT);
+const uint KMOD_META	= (KMOD_LMETA|KMOD_RMETA);
--- /dev/null
+++ b/import/SDL_version_.d
@@ -0,0 +1,75 @@
+/*
+    SDL - Simple DirectMedia Layer
+    Copyright (C) 1997, 1998, 1999, 2000, 2001  Sam Lantinga
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public
+    License along with this library; if not, write to the Free
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+    Sam Lantinga
+    slouken@devolution.com
+*/
+
+/* This header defines the current SDL version */
+
+import SDL_types;
+
+extern(C):
+
+/* Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL
+*/
+const uint SDL_MAJOR_VERSION	= 1;
+const uint SDL_MINOR_VERSION	= 2;
+const uint SDL_PATCHLEVEL		= 6;
+
+struct SDL_version {
+	Uint8 major;
+	Uint8 minor;
+	Uint8 patch;
+}
+
+/* This macro can be used to fill a version structure with the compile-time
+ * version of the SDL library.
+ */
+void SDL_VERSION(SDL_version* X)
+{
+	X.major = SDL_MAJOR_VERSION;
+	X.minor = SDL_MINOR_VERSION;
+	X.patch = SDL_PATCHLEVEL;
+}
+
+/* This macro turns the version numbers into a numeric value:
+   (1,2,3) -> (1203)
+   This assumes that there will never be more than 100 patchlevels
+*/
+uint SDL_VERSIONNUM(Uint8 X, Uint8 Y, Uint8 Z)
+{
+	return X * 1000 + Y * 100 + Z;
+}
+
+/* This is the version number macro for the current SDL version */
+const uint SDL_COMPILEDVERSION = SDL_MAJOR_VERSION * 1000 +
+									SDL_MINOR_VERSION * 100 +
+									SDL_PATCHLEVEL;
+
+/* This macro will evaluate to true if compiled with SDL at least X.Y.Z */
+bool SDL_VERSION_ATLEAST(Uint8 X, Uint8 Y, Uint8 Z)
+{
+	return (SDL_COMPILEDVERSION >= SDL_VERSIONNUM(X, Y, Z));
+}
+
+/* This function gets the version of the dynamically linked SDL library.
+   it should NOT be used to fill a version structure, instead you should
+   use the SDL_Version() macro.
+ */
+SDL_version * SDL_Linked_Version();
--- a/import/SDL_version.d
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
-    SDL - Simple DirectMedia Layer
-    Copyright (C) 1997, 1998, 1999, 2000, 2001  Sam Lantinga
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Library General Public
-    License as published by the Free Software Foundation; either
-    version 2 of the License, or (at your option) any later version.
-
-    This library is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    Library General Public License for more details.
-
-    You should have received a copy of the GNU Library General Public
-    License along with this library; if not, write to the Free
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-    Sam Lantinga
-    slouken@devolution.com
-*/
-
-/* This header defines the current SDL version */
-
-import SDL_types;
-
-extern(C):
-
-/* Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL
-*/
-const uint SDL_MAJOR_VERSION	= 1;
-const uint SDL_MINOR_VERSION	= 2;
-const uint SDL_PATCHLEVEL		= 3;
-
-struct SDL_version {
-	Uint8 major;
-	Uint8 minor;
-	Uint8 patch;
-}
-
-/* This macro can be used to fill a version structure with the compile-time
- * version of the SDL library.
- */
-void SDL_VERSION(SDL_version* X)
-{
-	X.major = SDL_MAJOR_VERSION;
-	X.minor = SDL_MINOR_VERSION;
-	X.patch = SDL_PATCHLEVEL;
-}
-
-/* This macro turns the version numbers into a numeric value:
-   (1,2,3) -> (1203)
-   This assumes that there will never be more than 100 patchlevels
-*/
-uint SDL_VERSIONNUM(Uint8 X, Uint8 Y, Uint8 Z)
-{
-	return X * 1000 + Y * 100 + Z;
-}
-
-/* This is the version number macro for the current SDL version */
-const uint SDL_COMPILEDVERSION = SDL_MAJOR_VERSION * 1000 +
-									SDL_MINOR_VERSION * 100 +
-									SDL_PATCHLEVEL;
-
-/* This macro will evaluate to true if compiled with SDL at least X.Y.Z */
-bit SDL_VERSION_ATLEAST(Uint8 X, Uint8 Y, Uint8 Z)
-{
-	return (SDL_COMPILEDVERSION >= SDL_VERSIONNUM(X, Y, Z));
-}
-
-/* This function gets the version of the dynamically linked SDL library.
-   it should NOT be used to fill a version structure, instead you should
-   use the SDL_Version() macro.
- */
-SDL_version * SDL_Linked_Version();
