Show Globals.h syntax highlighted
// Demeter Terrain Visualization Library by Clay Fowler
// Copyright (C) 2002 Clay Fowler
// $ID$
/*
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 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 Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#ifndef _GLOBALS_DEMETER_H_
#define _GLOBALS_DEMETER_H_
#include <Demeter/config.h>
// safety check...
#if _USE_RAYTRACING_SUPPORT_ != 0 && _USE_RAYTRACING_SUPPORT_ != 1
#error "You have not configured Demeter correctly. See include/demeter/DemeterConfig.h.in"
#endif
/* keep this in sync with configure.ac */
#define DEMETER_VERSION "3.22"
#if defined (_MSC_VER)
#pragma warning (disable : 4251 4786 4800 4018)
#endif
//#define _USE_RAYTRACING_SUPPORT_ 1
//_USE_RAYTRACING_SUPPORT_ = 1 enables the ray tracing methods on the Terrain class, but increases
//memory usage considerably. Demeter's ray tracing is very fast and can be used for mouse picking,
//line-of-sight tests, etc. If you enable this option, then be aware that MUCH more memory will be needed.
#ifdef _WIN32
#ifdef TERRAIN_EXPORTS
#define TERRAIN_API __declspec(dllexport)
#else
//#define TERRAIN_API __declspec(dllimport)
#define TERRAIN_API
#endif
#else
#define TERRAIN_API
#endif
typedef unsigned char Uint8;
typedef signed char Sint8;
typedef unsigned short Uint16;
typedef signed short Sint16;
typedef unsigned int Uint32;
typedef signed int Sint32;
#ifdef _WIN32
#ifdef _MSC_VER
#include <crtdbg.h>
#endif
#endif
#include "assert.h"
#ifdef _WIN32
#include <windows.h> // Required by gl.h
#endif
#include <string.h>
/*#ifndef __APPLE__
#include <GL/gl.h>
#include <GL/glu.h>
#endif
#ifdef __APPLE__
#include <OpenGL/gl.h>
#include <OpenGL/glu.h>
#include <OpenGL/glext.h>
#endif*/
#include <GL/glew.h>
#include <stdlib.h>
#include <math.h>
#include <stdio.h>
#include <vector>
#include <map>
#if defined(HAVE_SQRT) && !defined(HAVE_SQRTF)
#define sqrtf sqrt
#endif
#ifndef M_PI
#define M_PI 3.141592654f
#endif
#define MAX_VERTICES_PER_FAN 10
#ifndef EPSILON
#define EPSILON 0.00001f
#endif
#ifndef INFINITY
#define INFINITY 999999999.0f
#endif
#define MAX_FILENAME_LENGTH 2048
#define TextureMaskBitsPerPixel 8
#define LEAF_SIZE 2
/*#define GL_CLAMP_TO_EDGE_EXT 0x812F
#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2
#define GL_TEXTURE0_ARB 0x84C0
#define GL_TEXTURE1_ARB 0x84C1
#define GL_TEXTURE2_ARB 0x84C2
#define GL_TEXTURE3_ARB 0x84C3
#define GL_TEXTURE4_ARB 0x84C4
#define GL_TEXTURE5_ARB 0x84C5
#define GL_COMBINE_RGB_EXT 0x8571
#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8
#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9
#define COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0
#define GL_STATIC_DRAW_ARB 0x88E4
#define GL_ARRAY_BUFFER_ARB 0x8892
#define GL_OBJECT_DELETE_STATUS_ARB 0x8B80
#define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81
#define GL_OBJECT_LINK_STATUS_ARB 0x8B82
#define GL_OBJECT_VALIDATE_STATUS_ARB 0x8B83
#define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84
#define GL_OBJECT_ATTACHED_OBJECTS_ARB 0x8B85
#define GL_OBJECT_ACTIVE_UNIFORMS_ARB 0x8B86
#define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87
#define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88
#define GL_VERTEX_SHADER_ARB 0x8B31
#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A
#define GL_MAX_VARYING_FLOATS_ARB 0x8B4B
#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C
#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D
#define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB 0x8B89
#define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A
#define GL_FRAGMENT_SHADER_ARB 0x8B30
#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49
typedef ptrdiff_t GLintptr;
typedef ptrdiff_t GLsizeiptr;
typedef int GLhandleARB;
typedef char GLcharARB;
typedef unsigned char GLboolean;
#ifdef _WIN32
typedef void (APIENTRY * PFNGLMULTITEXCOORD2FARBPROC) (GLenum texture, GLfloat s, GLfloat t);
typedef void (APIENTRY * PFNGLACTIVETEXTUREARBPROC) (GLenum texture);
typedef void (APIENTRY * PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count);
typedef void (APIENTRY * PFNGLUNLOCKARRAYSEXTPROC) (void);
typedef void (APIENTRY * PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture);
typedef void (APIENTRY * PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer);
typedef void (APIENTRY * PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint *buffers);
typedef void (APIENTRY * PFNGLBUFFERDATAARBPROC) (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage);
typedef void (APIENTRY * PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers);
typedef void (APIENTRY * PFNGLATTACHOBJECTARBPROC) (GLhandleARB program,GLhandleARB shader);
typedef void (APIENTRY * PFNGLCOMPILESHADERARBPROC) (GLhandleARB shader);
typedef GLhandleARB (APIENTRY * PFNGLCREATEPROGRAMOBJECTARBPROC) (void);
typedef GLhandleARB (APIENTRY * PFNGLCREATESHADEROBJECTARBPROC) (GLenum shaderType);
typedef void (APIENTRY * PFNGLDELETEOBJECTARBPROC) (GLhandleARB object);
typedef void (APIENTRY * PFNGLDETACHOBJECTARBPROC) (GLhandleARB container,GLhandleARB attached);
typedef void (APIENTRY * PFNGLGETACTIVEUNIFORMARBPROC) (GLhandleARB program,GLuint index,GLsizei maxLength,GLsizei *length,GLint *size,GLenum *type,GLcharARB *name);
typedef void (APIENTRY * PFNGLGETATTACHEDOBJECTSARBPROC) (GLhandleARB program,GLsizei maxCount,GLsizei* count,GLhandleARB* objects);
typedef GLhandleARB (APIENTRY * PFNGLGETHANDLEARBPROC) (GLenum pname);
typedef void (APIENTRY * PFNGLGETINFOLOGARBPROC) (GLhandleARB object,GLsizei maxLength,GLsizei* length,GLcharARB* infoLog);
typedef void (APIENTRY * PFNGLGETOBJECTPARAMETERFVARBPROC) (GLhandleARB object,GLenum pname,GLfloat* params);
typedef void (APIENTRY * PFNGLGETOBJECTPARAMETERIVARBPROC) (GLhandleARB object,GLenum pname,GLint* params);
typedef void (APIENTRY * PFNGLGETSHADERSOURCEARBPROC) (GLhandleARB shader,GLsizei maxLength,GLsizei* length,GLcharARB* source);
typedef GLint (APIENTRY * PFNGLGETUNIFORMLOCATIONARBPROC) (GLhandleARB program,const GLcharARB* name);
typedef void (APIENTRY * PFNGLGETUNIFORMFVARBPROC) (GLhandleARB program,GLint location,GLfloat* params);
typedef void (APIENTRY * PFNGLGETUNIFORMIVARBPROC) (GLhandleARB program,GLint location,GLint* params);
typedef void (APIENTRY * PFNGLLINKPROGRAMARBPROC) (GLhandleARB program);
typedef void (APIENTRY * PFNGLSHADERSOURCEARBPROC) (GLhandleARB shader,GLsizei nstrings,const GLcharARB** strings,const GLint* lengths);
typedef void (APIENTRY * PFNGLUNIFORM1FARBPROC) (GLint location,GLfloat v0);
typedef void (APIENTRY * PFNGLUNIFORM1FVARBPROC) (GLint location,GLsizei count,GLfloat* value);
typedef void (APIENTRY * PFNGLUNIFORM1IARBPROC) (GLint location,GLint v0);
typedef void (APIENTRY * PFNGLUNIFORM1IVARBPROC) (GLint location,GLsizei count,GLint* value);
typedef void (APIENTRY * PFNGLUNIFORM2FARBPROC) (GLint location,GLfloat v0,GLfloat v1);
typedef void (APIENTRY * PFNGLUNIFORM2FVARBPROC) (GLint location,GLsizei count,GLfloat* value);
typedef void (APIENTRY * PFNGLUNIFORM2IARBPROC) (GLint location,GLint v0,GLint v1);
typedef void (APIENTRY * PFNGLUNIFORM2IVARBPROC) (GLint location,GLsizei count,GLint* value);
typedef void (APIENTRY * PFNGLUNIFORM3FARBPROC) (GLint location,GLfloat v0,GLfloat v1,GLfloat v2);
typedef void (APIENTRY * PFNGLUNIFORM3FVARBPROC) (GLint location,GLsizei count,GLfloat* value);
typedef void (APIENTRY * PFNGLUNIFORM3IARBPROC) (GLint location,GLint v0,GLint v1,GLint v2);
typedef void (APIENTRY * PFNGLUNIFORM3IVARBPROC) (GLint location,GLsizei count,GLint* value);
typedef void (APIENTRY * PFNGLUNIFORM4FARBPROC) (GLint location,GLfloat v0,GLfloat v1,GLfloat v2,GLfloat v3);
typedef void (APIENTRY * PFNGLUNIFORM4FVARBPROC) (GLint location,GLsizei count,GLfloat* value);
typedef void (APIENTRY * PFNGLUNIFORM4IARBPROC) (GLint location,GLint v0,GLint v1,GLint v2,GLint v3);
typedef void (APIENTRY * PFNGLUNIFORM4IVARBPROC) (GLint location,GLsizei count,GLint* value);
typedef void (APIENTRY * PFNGLUNIFORMMATRIX2FVARBPROC) (GLint location,GLsizei count,GLboolean transpose,GLfloat* value);
typedef void (APIENTRY * PFNGLUNIFORMMATRIX3FVARBPROC) (GLint location,GLsizei count,GLboolean transpose,GLfloat* value);
typedef void (APIENTRY * PFNGLUNIFORMMATRIX4FVARBPROC) (GLint location,GLsizei count,GLboolean transpose,GLfloat* value);
typedef void (APIENTRY * PFNGLUSEPROGRAMOBJECTARBPROC) (GLhandleARB program);
typedef void (APIENTRY * PFNGLVALIDATEPROGRAMARBPROC) (GLhandleARB program);
#else
typedef void (*PFNGLMULTITEXCOORD2FARBPROC) (GLenum texture, GLfloat s, GLfloat t);
typedef void (*PFNGLACTIVETEXTUREARBPROC) (GLenum texture);
typedef void (*PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count);
typedef void (*PFNGLUNLOCKARRAYSEXTPROC) (void);
typedef void (*PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture);
typedef void (*PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer);
typedef void (*PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint *buffers);
typedef void (*PFNGLBUFFERDATAARBPROC) (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage);
typedef void (*PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers);
typedef void (*PFNGLATTACHOBJECTARBPROC) (GLhandleARB program,GLhandleARB shader);
typedef void (*PFNGLCOMPILESHADERARBPROC) (GLhandleARB shader);
typedef GLhandleARB (*PFNGLCREATEPROGRAMOBJECTARBPROC) (void);
typedef GLhandleARB (*PFNGLCREATESHADEROBJECTARBPROC) (GLenum shaderType);
typedef void (*PFNGLDELETEOBJECTARBPROC) (GLhandleARB object);
typedef void (*PFNGLDETACHOBJECTARBPROC) (GLhandleARB container,GLhandleARB attached);
typedef void (*PFNGLGETACTIVEUNIFORMARBPROC) (GLhandleARB program,GLuint index,GLsizei maxLength,GLsizei *length,GLint *size,GLenum *type,GLcharARB *name);
typedef void (*PFNGLGETATTACHEDOBJECTSARBPROC) (GLhandleARB program,GLsizei maxCount,GLsizei* count,GLhandleARB* objects);
typedef GLhandleARB (*PFNGLGETHANDLEARBPROC) (GLenum pname);
typedef void (*PFNGLGETINFOLOGARBPROC) (GLhandleARB object,GLsizei maxLength,GLsizei* length,GLcharARB* infoLog);
typedef void (*PFNGLGETOBJECTPARAMETERFVARBPROC) (GLhandleARB object,GLenum pname,GLfloat* params);
typedef void (*PFNGLGETOBJECTPARAMETERIVARBPROC) (GLhandleARB object,GLenum pname,GLint* params);
typedef void (*PFNGLGETSHADERSOURCEARBPROC) (GLhandleARB shader,GLsizei maxLength,GLsizei* length,GLcharARB* source);
typedef GLint (*PFNGLGETUNIFORMLOCATIONARBPROC) (GLhandleARB program,const GLcharARB* name);
typedef void (*PFNGLGETUNIFORMFVARBPROC) (GLhandleARB program,GLint location,GLfloat* params);
typedef void (*PFNGLGETUNIFORMIVARBPROC) (GLhandleARB program,GLint location,GLint* params);
typedef void (*PFNGLLINKPROGRAMARBPROC) (GLhandleARB program);
typedef void (*PFNGLSHADERSOURCEARBPROC) (GLhandleARB shader,GLsizei nstrings,const GLcharARB** strings,const GLint* lengths);
typedef void (*PFNGLUNIFORM1FARBPROC) (GLint location,GLfloat v0);
typedef void (*PFNGLUNIFORM1FVARBPROC) (GLint location,GLsizei count,GLfloat* value);
typedef void (*PFNGLUNIFORM1IARBPROC) (GLint location,GLint v0);
typedef void (*PFNGLUNIFORM1IVARBPROC) (GLint location,GLsizei count,GLint* value);
typedef void (*PFNGLUNIFORM2FARBPROC) (GLint location,GLfloat v0,GLfloat v1);
typedef void (*PFNGLUNIFORM2FVARBPROC) (GLint location,GLsizei count,GLfloat* value);
typedef void (*PFNGLUNIFORM2IARBPROC) (GLint location,GLint v0,GLint v1);
typedef void (*PFNGLUNIFORM2IVARBPROC) (GLint location,GLsizei count,GLint* value);
typedef void (*PFNGLUNIFORM3FARBPROC) (GLint location,GLfloat v0,GLfloat v1,GLfloat v2);
typedef void (*PFNGLUNIFORM3FVARBPROC) (GLint location,GLsizei count,GLfloat* value);
typedef void (*PFNGLUNIFORM3IARBPROC) (GLint location,GLint v0,GLint v1,GLint v2);
typedef void (*PFNGLUNIFORM3IVARBPROC) (GLint location,GLsizei count,GLint* value);
typedef void (*PFNGLUNIFORM4FARBPROC) (GLint location,GLfloat v0,GLfloat v1,GLfloat v2,GLfloat v3);
typedef void (*PFNGLUNIFORM4FVARBPROC) (GLint location,GLsizei count,GLfloat* value);
typedef void (*PFNGLUNIFORM4IARBPROC) (GLint location,GLint v0,GLint v1,GLint v2,GLint v3);
typedef void (*PFNGLUNIFORM4IVARBPROC) (GLint location,GLsizei count,GLint* value);
typedef void (*PFNGLUNIFORMMATRIX2FVARBPROC) (GLint location,GLsizei count,GLboolean transpose,GLfloat* value);
typedef void (*PFNGLUNIFORMMATRIX3FVARBPROC) (GLint location,GLsizei count,GLboolean transpose,GLfloat* value);
typedef void (*PFNGLUNIFORMMATRIX4FVARBPROC) (GLint location,GLsizei count,GLboolean transpose,GLfloat* value);
typedef void (*PFNGLUSEPROGRAMOBJECTARBPROC) (GLhandleARB program);
typedef void (*PFNGLVALIDATEPROGRAMARBPROC) (GLhandleARB program);
#endif*/
#endif
See more files for this project here