]> git.jsancho.org Git - lugaru.git/blobdiff - Source/Game.h
Added GPL license and headers.
[lugaru.git] / Source / Game.h
index 65cbaf1b00e5d33cd84d4a930a77dd024307f15c..79f2abcfdc4173f65c6c90026627a5757706856c 100644 (file)
@@ -1,19 +1,53 @@
+/*
+Copyright (C) 2003, 2010 - Wolfire Games
+
+This file is part of Lugaru.
+
+Lugaru is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program 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 General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+*/
+
 #ifndef _GAME_H_
 #define _GAME_H_
 
-#ifndef WIN32
+#if (defined(__APPLE__) && defined(__MACH__))
+#  ifdef PLATFORM_MACOSX
+#    error Do not define PLATFORM_MACOSX for new builds. It is for the old Carbonized build.
+#  endif
+#endif
+
+#ifdef PLATFORM_MACOSX
 #include <Carbon.h>
 #include "Quicktime.h"
 #endif
+
 //Jordan included glut.h
 //#include <glut.h>
 
 #include "TGALoader.h"
-#ifdef WIN32
+
+#if USE_SDL
+#include "SDL.h"
+#endif
+
+#if !PLATFORM_MACOSX
 #include "WinInput.h"
 #else
 #include "Macinput.h"
 #endif
+
 #include "Terrain.h"
 #include "Skybox.h"
 #include "Skeleton.h"
 #include "Weapons.h"
 #include "binio.h"
 #include <fstream>
-#include "gl.h"
+#include "gamegl.h"
 
 extern GLuint rabbittexture;
 
-
 class Game             
 {
 public:
@@ -217,7 +250,7 @@ public:
        void LoadingScreen();
        void FadeLoadingScreen(float howmuch);
        void Dispose();
-       int DrawGLScene(GLvoid);
+       int DrawGLScene(void);
        void Tick();
        void TickOnce();
        void TickOnceAfter();
@@ -248,23 +281,55 @@ public:
        Game();
        ~Game() {               
                for(int i=0;i<10;i++){
-                       if(Mainmenuitems[i])glDeleteTextures( 1, (const unsigned long *)&Mainmenuitems[i] );
+                       if(Mainmenuitems[i])glDeleteTextures( 1, &Mainmenuitems[i] );
                }
-               glDeleteTextures( 1, (const unsigned long *)&cursortexture );
-               glDeleteTextures( 1, (const unsigned long *)&Maparrowtexture );
-               glDeleteTextures( 1, (const unsigned long *)&Mapboxtexture );
-               glDeleteTextures( 1, (const unsigned long *)&Mapcircletexture );
-               glDeleteTextures( 1, (const unsigned long *)&terraintexture );
-               glDeleteTextures( 1, (const unsigned long *)&terraintexture2 );
-               if(screentexture>0)glDeleteTextures( 1, (const unsigned long *)&screentexture );
-               if(screentexture2>0)glDeleteTextures( 1, (const unsigned long *)&screentexture2 );
-               glDeleteTextures( 1, (const unsigned long *)&hawktexture );
-               glDeleteTextures( 1, (const unsigned long *)&logotexture );
-               glDeleteTextures( 1, (const unsigned long *)&loadscreentexture );
+               glDeleteTextures( 1, &cursortexture );
+               glDeleteTextures( 1, &Maparrowtexture );
+               glDeleteTextures( 1, &Mapboxtexture );
+               glDeleteTextures( 1, &Mapcircletexture );
+               glDeleteTextures( 1, &terraintexture );
+               glDeleteTextures( 1, &terraintexture2 );
+               if(screentexture>0)glDeleteTextures( 1, &screentexture );
+               if(screentexture2>0)glDeleteTextures( 1, &screentexture2 );
+               glDeleteTextures( 1, &hawktexture );
+               glDeleteTextures( 1, &logotexture );
+               glDeleteTextures( 1, &loadscreentexture );
 
                Dispose();
        }
 
 };
 
-#endif
\ No newline at end of file
+#ifndef __forceinline
+#  ifdef __GNUC__
+#    define __forceinline inline __attribute__((always_inline))
+#  endif
+#endif
+
+static __forceinline void swap_gl_buffers(void)
+{
+#ifdef WIN32
+    extern HDC hDC;
+    SwapBuffers( hDC);
+#elif USE_SDL
+    SDL_GL_SwapBuffers();
+#elif PLATFORM_MACOSX
+    extern AGLContext gaglContext;
+    aglSwapBuffers(gaglContext);
+#else
+    #error define your platform.
+#endif
+}
+
+#ifdef __GNUC__
+#define LONGLONGCONST(x) (x##ll)
+#else
+#define LONGLONGCONST(x) (x)
+#endif
+
+extern "C" { void UndefinedSymbolToExposeStubbedCode(void); }
+//#define STUBBED(x) UndefinedSymbolToExposeStubbedCode();
+#define STUBBED(x) { static bool seen = false; if (!seen) { seen = true; fprintf(stderr, "STUBBED: %s at %s:%d\n", x, __FILE__, __LINE__); } }
+//#define STUBBED(x)
+
+#endif