]> git.mxchange.org Git - simgear.git/commitdiff
Mac OS X fixes from Markus Morawitz
authorehofman <ehofman>
Mon, 5 Sep 2005 08:17:37 +0000 (08:17 +0000)
committerehofman <ehofman>
Mon, 5 Sep 2005 08:17:37 +0000 (08:17 +0000)
stdint.h replacement defines for Windows and Sun from Frederic et all.

simgear/compiler.h
simgear/scene/model/shadowvolume.cxx
simgear/scene/sky/bbcache.cxx
simgear/scene/sky/cloud.cxx
simgear/scene/sky/cloudfield.cxx
simgear/screen/shader.cpp

index 3af548df6ecf67c9a7ee8e25113ecf9bb08f2ee7..c2a5b28e691ceba4d8490893f05a1d5d8dfb08cb 100644 (file)
 #  define SG_GLU_H <OpenGL/glu.h>
 #  define SG_GLEXT_H <OpenGL/glext.h>
 #  define SG_GLUT_H <GLUT/glut.h>
+
+inline int (isnan)(double r) { return !(r <= 0 || r >= 0); }
 #else
 #  define SG_GL_H <GL/gl.h>
 #  define SG_GLX_H <GL/glx.h>
@@ -465,4 +467,13 @@ inline const_mem_fun_ref_t<_Ret,_Tp> mem_fun_ref(_Ret (_Tp::*__f)() const)
 
 #endif // SG_INCOMPLETE_FUNCTIONAL
 
+
+// stdint.h defines
+#if defined( _MSC_VER ) || defined(__MINGW32__) || defined(sun)
+typedef signed short     int16_t;
+typedef signed int       int32_t;
+typedef unsigned short   uint16_t;
+typedef unsigned int     uint32_t;
+#endif
+
 #endif // _SG_COMPILER_H
index 9e0a129417aa80e14fe203570a11eeb43d8131ab..89eef9ce23895b25e42caef4397b640b73d398aa 100644 (file)
@@ -871,7 +871,7 @@ SGShadowVolume::~SGShadowVolume() {
 void SGShadowVolume::init(SGPropertyNode *sim_rendering_options) {
        shadows_enabled = true;
        sim_rendering = sim_rendering_options;
-       int stencilBits = 0, alphaBits = 0;
+       GLint stencilBits = 0, alphaBits = 0;
        glGetIntegerv( GL_STENCIL_BITS, &stencilBits );
        glGetIntegerv( GL_ALPHA_BITS, &alphaBits );
        bool hasSubtractiveBlend = SGIsOpenGLExtensionSupported("GL_EXT_blend_subtract");
index 55a2562d0d6feeabe5d3d13f18cd1a6db400c524..b56df6f199b9d7315a3f0d47d5db09fe8615eaca 100644 (file)
@@ -109,7 +109,7 @@ SGBbCache::~SGBbCache(void) {
 
 
 void SGBbCache::init(int cacheCount) {
-       int colorBits = 0;
+       GLint colorBits = 0;
        glGetIntegerv( GL_BLUE_BITS, &colorBits );
 
        rt = new RenderTexture();
index 640347665434f5c1e6a97a82af76d62f7dbb8a8b..f4b3de253d5b5afc2c0ad635c7a60f5ad0916575 100644 (file)
 // #include <stdio.h>
 #include <math.h>
 
-#if defined (__APPLE__)
-// any C++ header file undefines isinf and isnan
-// so this should be included before <iostream>
-inline int (isinf)(double r) { return isinf(r); }
-inline int (isnan)(double r) { return isnan(r); } 
-#endif
-
 #include <plib/sg.h>
 #include <plib/ssg.h>
 
index d9608de6514b3d46d545ac33575e9681f2e9a99f..04b32db76285883ecc85544659985986b81c7e15 100644 (file)
@@ -42,6 +42,18 @@ SG_USING_STD(vector);
 #include "newcloud.hxx"
 #include "cloudfield.hxx"
 
+#if defined(__MINGW32__)
+#define isnan(x) _isnan(x)
+#endif
+
+#if defined (__FreeBSD__)
+#  if __FreeBSD_version < 500000
+     extern "C" {
+       inline int isnan(double r) { return !(r <= 0 || r >= 0); }
+     }
+#  endif
+#endif
+
 extern SGSky *thesky;
 
 static list_of_culledCloud inViewClouds;
index 6276051a92248dd00b4c6f16d8118207f44d3c11..98284f9332d361a60e5d41c2cd77c2a685a45cb5 100644 (file)
@@ -218,7 +218,7 @@ Shader::Shader(const char *name,const char *vertex,const char *fragment) {
                        glGenProgramsPtr(1,&vertex_id);
                        glBindProgramPtr(GL_VERTEX_PROGRAM_ARB,vertex_id);
                        glProgramStringPtr(GL_VERTEX_PROGRAM_ARB,GL_PROGRAM_FORMAT_ASCII_ARB,(GLsizei)strlen(vertex_src),vertex_src);
-                       int pos = -1;
+                       GLint pos = -1;
                        glGetIntegerv(GL_PROGRAM_ERROR_POSITION_ARB,&pos);
                        if(pos != -1) {
                                SG_LOG(SG_GL, SG_ALERT, "Shader::Shader(): vertex program error in " << name << " file\n" << get_error(vertex_src,pos));
@@ -291,7 +291,7 @@ Shader::Shader(const char *name,const char *vertex,const char *fragment) {
                        glGenProgramsPtr(1,&fragment_id);
                        glBindProgramPtr(GL_FRAGMENT_PROGRAM_ARB,fragment_id);
                        glProgramStringPtr(GL_FRAGMENT_PROGRAM_ARB,GL_PROGRAM_FORMAT_ASCII_ARB,(GLsizei)strlen(fragment_src),fragment_src);
-                       int pos = -1;
+                       GLint pos = -1;
                        glGetIntegerv(GL_PROGRAM_ERROR_POSITION_ARB,&pos);
                        if(pos != -1) {
                                SG_LOG(SG_GL, SG_ALERT, "Shader::Shader(): fragment program error in " << name << " file\n" << get_error(fragment_src,pos));
@@ -305,7 +305,7 @@ Shader::Shader(const char *name,const char *vertex,const char *fragment) {
                        glGenProgramsNVPtr(1,&fragment_id);
                        glBindProgramNVPtr(GL_FRAGMENT_PROGRAM_NV,fragment_id);
                        glLoadProgramNVPtr(GL_FRAGMENT_PROGRAM_NV,fragment_id,(GLsizei)strlen(fragment_src),(GLubyte*)fragment_src);
-                       int pos = -1;
+                       GLint pos = -1;
                        glGetIntegerv(GL_PROGRAM_ERROR_POSITION_NV,&pos);
                        if(pos != -1) {
                                SG_LOG(SG_GL, SG_ALERT, "Shader::Shader(): fragment program error in " << name << " file\n" << get_error(fragment_src,pos));
@@ -384,7 +384,7 @@ const char *Shader::get_error(char *data,int pos) {
  */
 
 const char *Shader::get_glsl_error() {
-       int length;
+       GLint length;
        static char error[4096];
        glGetInfoLogPtr(program,sizeof(error),&length,error);
        return error;