Jason McKesson avatar Jason McKesson committed da7c819

Linux now mostly works. ATI's driver dies on Tutorial 13 and above, though.

Comments (0)

Files changed (158)

Tut 01 Hello Triangle/tut1.cpp

 
 #include <string>
 #include <vector>
+#include <stdio.h>
 #include <glload/gl_3_2_comp.h>
 #include <GL/freeglut.h>
 

Tut 02 Playing with Colors/FragPosition.cpp

 #include <string>
 #include <vector>
 #include <math.h>
+#include <stdio.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 02 Playing with Colors/VertexColors.cpp

 #include <string>
 #include <vector>
 #include <math.h>
+#include <stdio.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 03 OpenGLs Moving Triangle/cpuPositionOffset.cpp

 #include <string>
 #include <vector>
 #include <math.h>
+#include <stdio.h>
+#include <string.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 03 OpenGLs Moving Triangle/fragChangeColor.cpp

 #include <string>
 #include <vector>
 #include <math.h>
+#include <stdio.h>
+#include <string.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 03 OpenGLs Moving Triangle/vertCalcOffset.cpp

 #include <string>
 #include <vector>
 #include <math.h>
+#include <stdio.h>
+#include <string.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 03 OpenGLs Moving Triangle/vertPositionOffset.cpp

 #include <string>
 #include <vector>
 #include <math.h>
+#include <stdio.h>
+#include <string.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 04 Objects at Rest/AspectRatio.cpp

 #include <string>
 #include <vector>
 #include <math.h>
+#include <stdio.h>
+#include <string.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 04 Objects at Rest/MatrixPerspective.cpp

 #include <string>
 #include <vector>
 #include <math.h>
+#include <stdio.h>
+#include <string.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 04 Objects at Rest/OrthoCube.cpp

 #include <string>
 #include <vector>
 #include <math.h>
+#include <stdio.h>
+#include <string.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 04 Objects at Rest/ShaderPerspective.cpp

 #include <string>
 #include <vector>
 #include <math.h>
+#include <stdio.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 05 Objects in Depth/BaseVertexOverlap.cpp

 #include <string>
 #include <vector>
 #include <math.h>
+#include <stdio.h>
+#include <string.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 05 Objects in Depth/DepthBuffer.cpp

 #include <string>
 #include <vector>
 #include <math.h>
+#include <stdio.h>
+#include <string.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 05 Objects in Depth/DepthClamping.cpp

 #include <string>
 #include <vector>
 #include <math.h>
+#include <stdio.h>
+#include <string.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 05 Objects in Depth/DepthFighting.cpp

 #include <string>
 #include <vector>
 #include <map>
+#include <stdio.h>
 #include <math.h>
+#include <string.h>
 #include <iostream>
 #include <fstream>
 #include <sstream>

Tut 05 Objects in Depth/OverlapNoDepth.cpp

 #include <string>
 #include <vector>
 #include <math.h>
+#include <stdio.h>
+#include <string.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 05 Objects in Depth/VertexClipping.cpp

 #include <string>
 #include <vector>
 #include <math.h>
+#include <stdio.h>
+#include <string.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 06 Objects in Motion/Hierarchy.cpp

 #include <vector>
 #include <stack>
 #include <math.h>
+#include <stdio.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 06 Objects in Motion/Rotations.cpp

 #include <string>
 #include <vector>
 #include <math.h>
+#include <stdio.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 06 Objects in Motion/Scale.cpp

 #include <string>
 #include <vector>
 #include <math.h>
+#include <stdio.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 06 Objects in Motion/Translation.cpp

 #include <string>
 #include <vector>
 #include <math.h>
+#include <stdio.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 07 World in Motion/World Scene.cpp

 #include <vector>
 #include <stack>
 #include <math.h>
+#include <stdio.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 07 World in Motion/World With UBO.cpp

 #include <vector>
 #include <stack>
 #include <math.h>
+#include <stdio.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 08 Getting Oriented/CameraRelative.cpp

 #include <vector>
 #include <stack>
 #include <math.h>
+#include <stdio.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 08 Getting Oriented/GimbalLock.cpp

 #include <vector>
 #include <stack>
 #include <math.h>
+#include <stdio.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 08 Getting Oriented/Interpolation.cpp

 #include <vector>
 #include <stack>
 #include <math.h>
+#include <stdio.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 08 Getting Oriented/QuaternionYPR.cpp

 #include <vector>
 #include <stack>
 #include <math.h>
+#include <stdio.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 09 Lights on/Ambient Lighting.cpp

 #include <vector>
 #include <stack>
 #include <math.h>
+#include <stdio.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 09 Lights on/Basic Lighting.cpp

 #include <vector>
 #include <stack>
 #include <math.h>
+#include <stdio.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 09 Lights on/Scale and Lighting.cpp

 #include <vector>
 #include <stack>
 #include <math.h>
+#include <stdio.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 09 Lights on/premake4.lua

 
 dofile("../framework/framework.lua")
 
-SetupSolution("Tutorial8")
+SetupSolution("Tutorial9")
 
 dofile("tutorials.lua")

Tut 09 Lights on/tutorials.lua

 
-SetupProject("Tut 08 Basic Lighting", "Basic Lighting.cpp",
+SetupProject("Tut 09 Basic Lighting", "Basic Lighting.cpp",
 	"data/DirVertexLighting_PCN.vert",
 	"data/DirVertexLighting_PN.vert",
 	"data/ColorPassthrough.frag")
 
-SetupProject("Tut 08 Scale and Lighting", "Scale and Lighting.cpp",
+SetupProject("Tut 09 Scale and Lighting", "Scale and Lighting.cpp",
 	"data/DirVertexLighting_PCN.vert",
 	"data/DirVertexLighting_PN.vert",
 	"data/ColorPassthrough.frag")
 
-SetupProject("Tut 08 Ambient Lighting", "Ambient Lighting.cpp",
+SetupProject("Tut 09 Ambient Lighting", "Ambient Lighting.cpp",
 	"data/DirVertexLighting_PCN.vert",
 	"data/DirVertexLighting_PN.vert",
 	"data/DirAmbVertexLighting_PCN.vert",

Tut 10 Plane Lights/Fragment Attenuation.cpp

 #include <vector>
 #include <stack>
 #include <math.h>
+#include <stdio.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 10 Plane Lights/Fragment Point Lighting.cpp

 #include <vector>
 #include <stack>
 #include <math.h>
+#include <stdio.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 10 Plane Lights/Vertex Point Lighting.cpp

 #include <vector>
 #include <stack>
 #include <math.h>
+#include <stdio.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 10 Plane Lights/premake4.lua

 
 dofile("../framework/framework.lua")
 
-SetupSolution("Tutorial9")
+SetupSolution("Tutorial10")
 
 dofile("tutorials.lua")

Tut 10 Plane Lights/tutorials.lua

 
-SetupProject("Tut 09 Vertex Point Lighting", "Vertex Point Lighting.cpp",
+SetupProject("Tut 10 Vertex Point Lighting", "Vertex Point Lighting.cpp",
 	"data/PosVertexLighting_PCN.vert",
 	"data/PosVertexLighting_PN.vert",
 	"data/PosTransform.vert",
 	"data/UniformColor.frag",
 	"data/ColorPassthrough.frag")
 
-SetupProject("Tut 09 Fragment Point Lighting", "Fragment Point Lighting.cpp",
+SetupProject("Tut 10 Fragment Point Lighting", "Fragment Point Lighting.cpp",
 	"data/ModelPosVertexLighting_PCN.vert",
 	"data/ModelPosVertexLighting_PN.vert",
 	"data/ColorPassthrough.frag",
 	"data/FragmentLighting_PN.vert",
 	"data/FragmentLighting.frag")
 
-SetupProject("Tut 09 Fragment Attenuation", "Fragment Attenuation.cpp",
+SetupProject("Tut 10 Fragment Attenuation", "Fragment Attenuation.cpp",
 	"data/FragLightAtten_PCN.vert",
 	"data/FragLightAtten_PN.vert",
 	"data/FragLightAtten.frag")

Tut 11 Shinies/Blinn vs Phong Lighting.cpp

 #include <vector>
 #include <stack>
 #include <math.h>
+#include <stdio.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 11 Shinies/Gaussian Specular Lighting.cpp

 #include <vector>
 #include <stack>
 #include <math.h>
+#include <stdio.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 11 Shinies/Phong Lighting.cpp

 #include <vector>
 #include <stack>
 #include <math.h>
+#include <stdio.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 11 Shinies/tutorials.lua

 
-SetupProject("Tut 10 Phong Lighting", "Phong Lighting.cpp",
+SetupProject("Tut 11 Phong Lighting", "Phong Lighting.cpp",
 	"data/PCN.vert",
 	"data/PN.vert",
 	"data/PosTransform.vert",
 	"data/PhongOnly.frag",
 	"data/PhongLighting.frag")
 
-SetupProject("Tut 10 Blinn vs Phong Lighting", "Blinn vs Phong Lighting.cpp",
+SetupProject("Tut 11 Blinn vs Phong Lighting", "Blinn vs Phong Lighting.cpp",
 	"data/PCN.vert",
 	"data/PN.vert",
 	"data/PosTransform.vert",
 	"data/PhongOnly.frag",
 	"data/BlinnOnly.frag")
 
-SetupProject("Tut 10 Gaussian Specular Lighting", "Gaussian Specular Lighting.cpp",
+SetupProject("Tut 11 Gaussian Specular Lighting", "Gaussian Specular Lighting.cpp",
 	"data/PCN.vert",
 	"data/PN.vert",
 	"data/PosTransform.vert",

Tut 12 Dynamic Range/Gamma Correction.cpp

 #include <vector>
 #include <stack>
 #include <math.h>
+#include <stdio.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"
 {
 	std::vector<GLuint> shaderList;
 
+    printf("A!\n");
 	shaderList.push_back(Framework::LoadShader(GL_VERTEX_SHADER, strVertexShader));
+    printf("A2!\n");
 	shaderList.push_back(Framework::LoadShader(GL_FRAGMENT_SHADER, strFragmentShader));
 
+    printf("B!\n");
 	ProgramData data;
 	data.theProgram = Framework::CreateProgram(shaderList);
 	data.modelToCameraMatrixUnif = glGetUniformLocation(data.theProgram, "modelToCameraMatrix");
 
 	data.normalModelToCameraMatrixUnif = glGetUniformLocation(data.theProgram, "normalModelToCameraMatrix");
 
+    printf("C!\n");
 	GLuint materialBlock = glGetUniformBlockIndex(data.theProgram, "Material");
 	GLuint lightBlock = glGetUniformBlockIndex(data.theProgram, "Light");
 	GLuint projectionBlock = glGetUniformBlockIndex(data.theProgram, "Projection");
 //Called after the window and OpenGL are initialized. Called exactly once, before the main loop.
 void init()
 {
+    printf("Top;\n");
 	InitializePrograms();
 
+    printf("Scene\n");
 	try
 	{
 		g_pScene = new Scene();
 		throw;
 	}
 
+    printf("Setup\n");
 	SetupHDRLighting();
 
 	g_lights.CreateTimer("tetra", Framework::Timer::TT_LOOP, 2.5f);
 
+    printf("Glutfuncs\n");
 	glutMouseFunc(MouseButton);
  	glutMotionFunc(MouseMotion);
 	glutMouseWheelFunc(MouseWheel);
 
+    printf("Simple\n");
 	glEnable(GL_CULL_FACE);
 	glCullFace(GL_BACK);
 	glFrontFace(GL_CW);
 	glDepthRange(depthZNear, depthZFar);
 	glEnable(GL_DEPTH_CLAMP);
 
+    printf("UBO setup\n");
 	//Setup our Uniform Buffers
 	glGenBuffers(1, &g_lightUniformBuffer);
 	glBindBuffer(GL_UNIFORM_BUFFER, g_lightUniformBuffer);
 	glBindBuffer(GL_UNIFORM_BUFFER, g_projectionUniformBuffer);
 	glBufferData(GL_UNIFORM_BUFFER, sizeof(ProjectionBlock), NULL, GL_DYNAMIC_DRAW);
 
+    printf("Bind static\n");
 	//Bind the static buffers.
 	glBindBufferRange(GL_UNIFORM_BUFFER, g_lightBlockIndex, g_lightUniformBuffer,
 		0, sizeof(LightBlock));

Tut 12 Dynamic Range/HDR Lighting.cpp

 #include <vector>
 #include <stack>
 #include <math.h>
+#include <stdio.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 12 Dynamic Range/Lights.cpp

 #include <vector>
 #include <stack>
 #include <math.h>
+#include <stdio.h>
+#include <string.h>
 #include "Lights.h"
 #include <glm/glm.hpp>
 #include <glm/gtc/matrix_transform.hpp>

Tut 12 Dynamic Range/Scene Lighting.cpp

 #include <vector>
 #include <stack>
 #include <math.h>
+#include <stdio.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 12 Dynamic Range/Scene.cpp

 
 #include "Scene.h"
+#include <string.h>
 #include <glm/gtc/type_ptr.hpp>
 
 //One for the ground, and one for each of the 5 objects.

Tut 13 Impostors/BasicImpostor.cpp

 #include <vector>
 #include <stack>
 #include <math.h>
+#include <stdio.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 13 Impostors/GeomImpostor.cpp

 #include <vector>
 #include <stack>
 #include <math.h>
+#include <stdio.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

Tut 14 Textures Are Not Pictures/Perspective Interpolation.cpp

 #include <vector>
 #include <stack>
 #include <math.h>
+#include <stdio.h>
 #include <glload/gl_3_3.h>
 #include <GL/freeglut.h>
 #include "../framework/framework.h"

framework/Interpolators.h

 		template<typename BidirectionalRange>
 		void SetValues(const BidirectionalRange &data, bool isLooping = true)
 		{
-			m_values.clear();
+			this->m_values.clear();
 			typename BidirectionalRange::const_iterator curr = data.begin();
 			typename BidirectionalRange::const_iterator final = data.end();
 			for(; curr != final; ++curr)
 				currData.weight = GetTime(*curr);
 
 				assert(0.0f <= currData.weight && currData.weight <= 1.0f);
-				m_values.push_back(currData);
+				this->m_values.push_back(currData);
 			}
 
-			if(isLooping && !m_values.empty())
-				m_values.push_back(m_values[0]);
+			if(isLooping && !this->m_values.empty())
+				this->m_values.push_back(this->m_values[0]);
 
 			//Ensure first is weight 0, and last is weight 1.
-			if(!m_values.empty())
+			if(!this->m_values.empty())
 			{
-				m_values.front().weight = 0.0f;
-				m_values.back().weight = 1.0f;
+				this->m_values.front().weight = 0.0f;
+				this->m_values.back().weight = 1.0f;
 			}
 		}
 	protected:
 		template<typename BidirectionalRange>
 		void SetValues(const BidirectionalRange &data, bool isLooping = true)
 		{
-			m_values.clear();
+			this->m_values.clear();
 			int iNumValues = 0;
 			typename BidirectionalRange::const_iterator curr = data.begin();
 			typename BidirectionalRange::const_iterator final = data.end();
 				typename WeightedLinearInterpolator<ValueType>::Data currData;
 				currData.data = *curr;
 				currData.weight = 0.0f;
-				m_values.push_back(currData);
+				this->m_values.push_back(currData);
 
 				iNumValues++;
 			}
 
-			if(isLooping && !m_values.empty())
+			if(isLooping && !this->m_values.empty())
 			{
-				m_values.push_back(m_values.back());
+				this->m_values.push_back(this->m_values.back());
 				++iNumValues;
 			}
 
 			//Compute weights.
-			for(size_t valIx = 0; valIx < m_values.size(); ++valIx)
+			for(size_t valIx = 0; valIx < this->m_values.size(); ++valIx)
 			{
-				m_values[valIx].weight = valIx / (float)(iNumValues - 1);
+				this->m_values[valIx].weight = valIx / (float)(iNumValues - 1);
 			}
 		}
 	private:
 		template<typename BidirectionalRange>
 		void SetValues(const BidirectionalRange &data, bool isLoop = true)
 		{
-			m_values.clear();
+			this->m_values.clear();
 
 			typename BidirectionalRange::const_iterator curr = data.begin();
 			typename BidirectionalRange::const_iterator last = data.end();
 			for(; curr != last; ++curr)
 			{
-				Data currData;
+				typename WeightedLinearInterpolator<ValueType>::Data currData;
 				currData.data = *curr;
 				currData.weight = 0.0f;
-				m_values.push_back(currData);
+				this->m_values.push_back(currData);
 			}
 
 			if(isLoop)
 			{
-				Data currData;
+				typename WeightedLinearInterpolator<ValueType>::Data currData;
 				currData.data = *data.begin();
 				currData.weight = 0.0f;
-				m_values.push_back(currData);
+				this->m_values.push_back(currData);
 			}
 
 			//Compute the distances of each segment.
 			m_totalDist = 0.0f;
-			for(size_t iLoop = 1; iLoop < m_values.size(); ++iLoop)
+			for(size_t iLoop = 1; iLoop < this->m_values.size(); ++iLoop)
 			{
-				m_totalDist += distance(m_values[iLoop - 1].data, m_values[iLoop].data);
-				m_values[iLoop].weight = m_totalDist;
+				m_totalDist += distance(this->m_values[iLoop - 1].data,
+				    this->m_values[iLoop].data);
+				this->m_values[iLoop].weight = m_totalDist;
 			}
 
 			//Compute the alpha value that represents when to use this segment.
-			for(size_t iLoop = 1; iLoop < m_values.size(); ++iLoop)
+			for(size_t iLoop = 1; iLoop < this->m_values.size(); ++iLoop)
 			{
-				m_values[iLoop].weight /= m_totalDist;
+				this->m_values[iLoop].weight /= m_totalDist;
 			}
 		}
 

framework/Mesh.cpp

 #include <utility>
 #include <fstream>
 #include <sstream>
+#include <exception>
+#include <stdexcept>
 #include <functional>
 #include <algorithm>
 #include <glload/gl_3_2_comp.h>
 #include <tinyxml.h>
 #include "framework.h"
 #include "Mesh.h"
+#include "directories.h"
 
 
 namespace Framework
 	AttribData theValue;\
 	inStream >> theValue.attribDataValue >> std::ws;\
 	if(inStream.fail())\
-	throw std::exception("Parse error in array data stream.");\
+	throw std::runtime_error("Parse error in array data stream.");\
 	outputData.push_back(theValue);\
 	}\
 	}\
 			g_allAttributeTypes, &g_allAttributeTypes[iArrayCount], std::bind1st(AttribTypeFinder(), strType));
 
 		if(pAttrib == &g_allAttributeTypes[iArrayCount])
-			throw std::exception("Unknown 'type' field.");
+			throw std::runtime_error("Unknown 'type' field.");
 
 		return pAttrib;
 	}
 		{
 			int iAttributeIndex;
 			if(pAttribElem->QueryIntAttribute("index", &iAttributeIndex) != TIXML_SUCCESS)
-				throw std::exception("Missing 'index' attribute in an 'attribute' element.");
+				throw std::runtime_error("Missing 'index' attribute in an 'attribute' element.");
 			if(!((0 <= iAttributeIndex) && (iAttributeIndex < 16)))
-				throw std::exception("Attribute index must be between 0 and 16.");
+				throw std::runtime_error("Attribute index must be between 0 and 16.");
 			iAttribIx = iAttributeIndex;
 
 			int iVectorSize;
 			if(pAttribElem->QueryIntAttribute("size", &iVectorSize) != TIXML_SUCCESS)
-				throw std::exception("Missing 'size' attribute in an 'attribute' element.");
+				throw std::runtime_error("Missing 'size' attribute in an 'attribute' element.");
 			if(!((1 <= iVectorSize) && (iVectorSize < 5)))
-				throw std::exception("Attribute size must be between 1 and 4.");
+				throw std::runtime_error("Attribute size must be between 1 and 4.");
 			iSize = iVectorSize;
 
 			std::string strType;
 			if(pAttribElem->QueryStringAttribute("type", &strType) != TIXML_SUCCESS)
-				throw std::exception("Missing 'type' attribute in an 'attribute' element.");
+				throw std::runtime_error("Missing 'type' attribute in an 'attribute' element.");
 
 			pAttribType = GetAttribType(strType);
 
 				else if(strIntegral == "false")
 					bIsIntegral = false;
 				else
-					throw std::exception("Incorrect 'integral' value for the 'attribute'.");
+					throw std::runtime_error("Incorrect 'integral' value for the 'attribute'.");
 
 				if(pAttribType->bNormalized)
-					throw std::exception("Attribute cannot be both 'integral' and a normalized 'type'.");
+					throw std::runtime_error("Attribute cannot be both 'integral' and a normalized 'type'.");
 
 				if(pAttribType->eGLType == GL_FLOAT ||
 					pAttribType->eGLType == GL_HALF_FLOAT ||
 					pAttribType->eGLType == GL_DOUBLE)
-					throw std::exception("Attribute cannot be both 'integral' and a floating-point 'type'.");
+					throw std::runtime_error("Attribute cannot be both 'integral' and a floating-point 'type'.");
 			}
 
 			//Read the text data.
 			//Parse the text stream.
 			pAttribType->ParseFunc(dataArray, strStream);
 			if(dataArray.empty())
-				throw std::exception("The attribute's must have an array of values.");
+				throw std::runtime_error("The attribute's must have an array of values.");
 			if(dataArray.size() % iSize != 0)
-				throw std::exception("The attribute's data must be a multiple of its size in elements.");
+				throw std::runtime_error("The attribute's data must be a multiple of its size in elements.");
 		}
 
 		Attribute(const Attribute &rhs)
 	void ProcessVAO(const TiXmlElement *pVaoElem, std::string &strName, std::vector<GLuint> &attributes)
 	{
 		if(pVaoElem->QueryStringAttribute("name", &strName) != TIXML_SUCCESS)
-			throw std::exception("Missing 'name' attribute in a 'vao' element.");
+			throw std::runtime_error("Missing 'name' attribute in a 'vao' element.");
 
 		for(const TiXmlElement *pNode = pVaoElem->FirstChildElement();
 			pNode;
 		{
 			int iAttrib = -1;
 			if(pNode->QueryIntAttribute("attrib", &iAttrib) != TIXML_SUCCESS)
-				throw std::exception("Missing 'attrib' attribute in a 'source' element.");
+				throw std::runtime_error("Missing 'attrib' attribute in a 'source' element.");
 
 			attributes.push_back(iAttrib);
 		}
 		{
 			std::string strType;
 			if(pIndexElem->QueryStringAttribute("type", &strType) != TIXML_SUCCESS)
-				throw std::exception("Missing 'type' attribute in an 'index' element.");
+				throw std::runtime_error("Missing 'type' attribute in an 'index' element.");
 
 			if(strType != "uint" && strType != "ushort" && strType != "ubyte")
-				throw std::exception("Improper 'type' attribute value on 'index' element.");
+				throw std::runtime_error("Improper 'type' attribute value on 'index' element.");
 
 			pAttribType = GetAttribType(strType);
 
 			//Parse the text stream.
 			pAttribType->ParseFunc(dataArray, strStream);
 			if(dataArray.empty())
-				throw std::exception("The index element must have an array of values.");
+				throw std::runtime_error("The index element must have an array of values.");
 		}
 
 		IndexData()
 
 		std::string strCmdName;
 		if(pCmdElem->QueryStringAttribute("cmd", &strCmdName) != TIXML_SUCCESS)
-			throw std::exception("Missing 'cmd' attribute in an 'arrays' or 'indices' element.");
+			throw std::runtime_error("Missing 'cmd' attribute in an 'arrays' or 'indices' element.");
 
 		int iArrayCount = ARRAY_COUNT(g_allAttributeTypes);
 		const PrimitiveType *pPrim = std::find_if(
 			std::bind1st(PrimitiveTypeFinder(), strCmdName));
 
 		if(pPrim == &g_allPrimitiveTypes[iArrayCount])
-			throw std::exception("Unknown 'cmd' field.");
+			throw std::runtime_error("Unknown 'cmd' field.");
 
 		cmd.ePrimType = pPrim->eGLPrimType;
 
 			if(pCmdElem->QueryIntAttribute("prim-restart", &iPrimRestart) == TIXML_SUCCESS)
 			{
 				if(iPrimRestart < 0)
-					throw std::exception("Attribute 'start' must be between 0 or greater.");
+					throw std::runtime_error("Attribute 'start' must be between 0 or greater.");
 			}
 			else
 				iPrimRestart = -1;
 			cmd.bIsIndexedCmd = false;
 			int iStart;
 			if(pCmdElem->QueryIntAttribute("start", &iStart) != TIXML_SUCCESS)
-				throw std::exception("Missing 'start' attribute in an 'arrays' element.");
+				throw std::runtime_error("Missing 'start' attribute in an 'arrays' element.");
 			if(iStart < 0)
-				throw std::exception("Attribute 'start' must be between 0 or greater.");
+				throw std::runtime_error("Attribute 'start' must be between 0 or greater.");
 			cmd.start = iStart;
 
 			int iCount;
 			if(pCmdElem->QueryIntAttribute("count", &iCount) != TIXML_SUCCESS)
-				throw std::exception("Missing 'count' attribute in an 'arrays' element.");
+				throw std::runtime_error("Missing 'count' attribute in an 'arrays' element.");
 			if(iCount <= 0)
-				throw std::exception("Attribute 'count' must be between 0 or greater.");
+				throw std::runtime_error("Attribute 'count' must be between 0 or greater.");
 			cmd.elemCount = iCount;
 		}
 		else
-			throw std::exception("Bad element. Must be 'indices' or 'arrays'.");
+			throw std::runtime_error("Bad element. Must be 'indices' or 'arrays'.");
 
 		return cmd;
 	}
 		std::vector<std::pair<std::string, std::vector<GLuint> > > namedVaoList;
 
 		{
-			std::string strDataFilename = "data\\" + strFilename;
+			std::string strDataFilename = LOCAL_FILE_DIR + strFilename;
 			std::ifstream fileStream(strDataFilename.c_str());
 
 			TiXmlDocument theDoc;
 			fileStream.close();
 
 			if(theDoc.Error())
-				throw std::exception(theDoc.ErrorDesc());
+				throw std::runtime_error(theDoc.ErrorDesc());
 
 			TiXmlHandle docHandle(&theDoc);
 
 			if(iNumElements)
 			{
 				if(iNumElements != attrib.NumElements())
-					throw std::exception("Some of the attribute arrays have different element counts.");
+					throw std::runtime_error("Some of the attribute arrays have different element counts.");
 			}
 			else
 				iNumElements = attrib.NumElements();

framework/UniformBlockArray.h

 
 //To use this file, you must include one of the glload headers before including this.
 
+#include <string.h>
 #include <vector>
 
 namespace Framework

framework/directories.h

+#ifdef WIN32
+#define LOCAL_FILE_DIR "data\\"
+#endif //WIN32
+
+#ifdef LOAD_X11
+#define LOCAL_FILE_DIR "data/"
+#endif //LOAD_X11
+

framework/framework.cpp

 #include <vector>
 #include <fstream>
 #include <sstream>
+#include <string.h>
 #include <glload/gl_3_2_comp.h>
 #include <glload/gll.h>
 #include <GL/freeglut.h>
 #include "framework.h"
+#include "directories.h"
 
 
 namespace Framework
 	{
 		GLuint shader = glCreateShader(eShaderType);
 		const char *strFileData = strShaderFile.c_str();
-		glShaderSource(shader, 1, &strFileData, NULL);
+		glShaderSource(shader, 1, (const GLchar**)&strFileData, NULL);
 
 		glCompileShader(shader);
 
 
 	GLuint LoadShader(GLenum eShaderType, const std::string &strShaderFilename)
 	{
-		std::string strFilename = "data\\" + strShaderFilename;
+		std::string strFilename = LOCAL_FILE_DIR + strShaderFilename;
 		std::ifstream shaderFile(strFilename.c_str());
 		if(!shaderFile.is_open())
 		{
 
 int main(int argc, char** argv)
 {
+    printf("here!\n");
 	glutInit(&argc, argv);
 	glutInitDisplayMode (GLUT_DOUBLE | GLUT_ALPHA | GLUT_DEPTH | GLUT_STENCIL/* | GLUT_MULTISAMPLE | GLUT_SRGB*/);
 	glutInitContextVersion (3, 3);

framework/framework.lua

 	solution(slnName)
 		configurations {"Debug", "Release"}
 		defines {"_CRT_SECURE_NO_WARNINGS", "_CRT_SECURE_NO_DEPRECATE", "_SCL_SECURE_NO_WARNINGS", "TIXML_USE_STL"}
-		defines {"FREEGLUT_STATIC", "WIN32"}
+		defines {"FREEGLUT_STATIC"}
+		
+    	configuration "windows"
+        	defines {"WIN32"}
+        	
+       	configuration "linux"
+    	    defines {"LOAD_X11"}
 		
 	local currPath = os.getcwd();
 	os.chdir(myPath);
 		objdir "../framework/lib"
 
 		includedirs {"../freeglut-2.6.0/include", "../glload/include",
-			"../FreeImage/dist", "../glm-0.9.0.7", "../tinyxml", "../framework"}
+			"../glm-0.9.0.7", "../tinyxml", "../framework"}
 		
 		configuration "Debug"
 			defines {"DEBUG", "_DEBUG"}
 			defines {"RELEASE", "NDEBUG"};
 			targetname("framework")
 
+
 	os.chdir(currPath);
 end
 
 		language "c++"
 		
 		files {...}
---		targetdir "bin"
 
 		includedirs {"../freeglut-2.6.0/include", "../glload/include",
-			"../FreeImage/dist", "../glm-0.9.0.7", "../tinyxml"}
+			"../glm-0.9.0.7", "../tinyxml"}
 			
 		links "framework"
 
 		configuration "Debug"
 			defines {"DEBUG", "_DEBUG"}
 			flags "Symbols"
-			links "../freeglut-2.6.0/VisualStudio2008Static/debug/freeglut_static"
-			links "../FreeImage/dist/FreeImageD"
-			links "../glload/lib/glloadD"
-			links "../tinyxml/lib/tinyxml_pmD"
+			libdirs {"../glload/lib", "../tinyxml/lib"}
+			links "glloadD"
+			links "tinyxml_pmD"
 			targetname(projName .. "D")
 		
 		configuration "Release"
 			defines {"RELEASE", "NDEBUG"};
+			libdirs {"../glload/lib", "../tinyxml/lib"}
+			links "glload"
+			links "tinyxml_pm"
+			targetname(projName)
+
+
+        configuration {"Debug", "windows"}
+			links "../freeglut-2.6.0/VisualStudio2008Static/debug/freeglut_static"
+        configuration {"Release", "windows"}
 			links "../freeglut-2.6.0/VisualStudio2008Static/release/freeglut_static"
-			links "../FreeImage/dist/FreeImage"
-			links "../glload/lib/glload"
-			links "../tinyxml/lib/tinyxml_pm"
-			targetname(projName)
+        configuration {"linux"}
+            libdirs {"../freeglut-2.6.0/src/.libs"}
+			links "glut"
 end
 
Add a comment to this file

freeglut-2.6.0/LISEZ_MOI

File contents unchanged.

Add a comment to this file

freeglut-2.6.0/README.win32

File contents unchanged.

Add a comment to this file

freeglut-2.6.0/autogen.sh

File contents unchanged.

File contents unchanged.

Add a comment to this file

freeglut-2.6.0/config.guess

File contents unchanged.

Add a comment to this file

freeglut-2.6.0/config.sub

File contents unchanged.

Add a comment to this file

freeglut-2.6.0/configure

File contents unchanged.

File contents unchanged.

freeglut-2.6.0/doc/Makefile.am

-EXTRA_DIST = \
-	download.html freeglut.html freeglut_logo.png \
-	freeglut_user_interface.html index.html \
-	ogl_sm.png progress.html structure.html
-
+EXTRA_DIST = \
+	download.html freeglut.html freeglut_logo.png \
+	freeglut_user_interface.html index.html \
+	ogl_sm.png progress.html structure.html
+

freeglut-2.6.0/doc/Makefile.in

-# Makefile.in generated by automake 1.10.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-subdir = doc
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-	$(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/config.h
-CONFIG_CLEAN_FILES =
-SOURCES =
-DIST_SOURCES =
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DSYMUTIL = @DSYMUTIL@
-ECHO = @ECHO@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-EXPORT_FLAGS = @EXPORT_FLAGS@
-F77 = @F77@
-FFLAGS = @FFLAGS@
-GL_LIBS = @GL_LIBS@
-GREP = @GREP@
-HEADER = @HEADER@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LDFLAGS = @LDFLAGS@
-LIBM = @LIBM@
-LIBOBJS = @LIBOBJS@
-LIBRARY = @LIBRARY@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIBTOOL_DEPS = @LIBTOOL_DEPS@
-LIBXI = @LIBXI@
-LIBXXF86VM = @LIBXXF86VM@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-NMEDIT = @NMEDIT@
-OBJEXT = @OBJEXT@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-VERSION = @VERSION@
-VERSION_INFO = @VERSION_INFO@
-XMKMF = @XMKMF@
-X_CFLAGS = @X_CFLAGS@
-X_EXTRA_LIBS = @X_EXTRA_LIBS@
-X_LIBS = @X_LIBS@
-X_PRE_LIBS = @X_PRE_LIBS@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_F77 = @ac_ct_F77@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-EXTRA_DIST = \
-	download.html freeglut.html freeglut_logo.png \
-	freeglut_user_interface.html index.html \
-	ogl_sm.png progress.html structure.html
-
-all: all-am
-
-.SUFFIXES:
-$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
-	@for dep in $?; do \
-	  case '$(am__configure_deps)' in \
-	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
-	      exit 1;; \
-	  esac; \
-	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  doc/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  doc/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-	@case '$?' in \
-	  *config.status*) \
-	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
-	  *) \
-	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
-	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
-	esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure:  $(am__configure_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
-	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-mostlyclean-libtool:
-	-rm -f *.lo
-
-clean-libtool:
-	-rm -rf .libs _libs
-tags: TAGS
-TAGS:
-
-ctags: CTAGS
-CTAGS:
-
-
-distdir: $(DISTFILES)
-	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
-	list='$(DISTFILES)'; \
-	  dist_files=`for file in $$list; do echo $$file; done | \
-	  sed -e "s|^$$srcdirstrip/||;t" \
-	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
-	case $$dist_files in \
-	  */*) $(MKDIR_P) `echo "$$dist_files" | \
-			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
-			   sort -u` ;; \
-	esac; \
-	for file in $$dist_files; do \
-	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
-	  if test -d $$d/$$file; then \
-	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
-	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
-	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
-	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
-	    || exit 1; \
-	  fi; \
-	done
-check-am: all-am
-check: check-am
-all-am: Makefile
-installdirs:
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-	  `test -z '$(STRIP)' || \
-	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-
-maintainer-clean-generic:
-	@echo "This command is intended for maintainers to use"
-	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libtool mostlyclean-am
-
-distclean: distclean-am
-	-rm -f Makefile
-distclean-am: clean-am distclean-generic
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-exec-am:
-
-install-html: install-html-am
-
-install-info: install-info-am
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-ps: install-ps-am
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-	-rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-generic mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am:
-
-.MAKE: install-am install-strip
-
-.PHONY: all all-am check check-am clean clean-generic clean-libtool \
-	distclean distclean-generic distclean-libtool distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-man install-pdf \
-	install-pdf-am install-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = doc
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+SOURCES =
+DIST_SOURCES =
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+EXPORT_FLAGS = @EXPORT_FLAGS@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GL_LIBS = @GL_LIBS@
+GREP = @GREP@
+HEADER = @HEADER@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+LDFLAGS = @LDFLAGS@
+LIBM = @LIBM@
+LIBOBJS = @LIBOBJS@
+LIBRARY = @LIBRARY@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBTOOL_DEPS = @LIBTOOL_DEPS@
+LIBXI = @LIBXI@
+LIBXXF86VM = @LIBXXF86VM@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+NMEDIT = @NMEDIT@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+VERSION = @VERSION@
+VERSION_INFO = @VERSION_INFO@
+XMKMF = @XMKMF@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+EXTRA_DIST = \
+	download.html freeglut.html freeglut_logo.png \
+	freeglut_user_interface.html index.html \
+	ogl_sm.png progress.html structure.html
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in:  $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  doc/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  doc/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure:  $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4):  $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	distclean distclean-generic distclean-libtool distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-dvi install-dvi-