use freeglut by default under Windows

This commit is contained in:
ejcoumans
2007-12-14 02:48:53 +00:00
parent 38349b5af4
commit 9e25108b06
8 changed files with 44 additions and 21 deletions

View File

@@ -225,6 +225,10 @@ void MouseMotion(int x, int y)
demo->mouseMotionFunc(x,y);
}
#if (defined (WIN32) && defined (_MSC_VER))
#include "GL/freeglut_ext.h"
#endif
int main(int argc, char** argv)
{
@@ -237,8 +241,9 @@ int main(int argc, char** argv)
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE |GLUT_DEPTH);
glutInitWindowSize(width, height);
mainWindow = glutCreateWindow("http://bulletphysics.com");
//glutSetOption (GLUT_ACTION_ON_WINDOW_CLOSE, GLUT_ACTION_GLUTMAINLOOP_RETURNS);
#if (defined (WIN32) && defined (_MSC_VER))
glutSetOption (GLUT_ACTION_ON_WINDOW_CLOSE, GLUT_ACTION_GLUTMAINLOOP_RETURNS);
#endif
entry = g_demoEntries + testIndex;
demo = CreatDemo(entry);

View File

@@ -649,6 +649,7 @@ void CcdPhysicsDemo::exitPhysics()
for (int j=0;j<m_collisionShapes.size();j++)
{
btCollisionShape* shape = m_collisionShapes[j];
m_collisionShapes[j] = 0;
delete shape;
}

View File

@@ -29,5 +29,8 @@ int main(int argc,char** argv)
ccdDemo->getDynamicsWorld()->setDebugDrawer(&gDebugDrawer);
return glutmain(argc, argv,640,480,"Bullet Physics Demo. http://bullet.sf.net",ccdDemo);
glutmain(argc, argv,640,480,"Bullet Physics Demo. http://bullet.sf.net",ccdDemo);
delete ccdDemo;
}

View File

@@ -235,8 +235,6 @@ void DemoApplication::reshape(int w, int h)
}
void DemoApplication::keyboardCallback(unsigned char key, int x, int y)
{
(void)x;
@@ -257,7 +255,14 @@ void DemoApplication::keyboardCallback(unsigned char key, int x, int y)
switch (key)
{
case 'q' : exit(0); break;
case 'q' :
#if (defined (WIN32) && defined (_MSC_VER))
//return from glutMainLoop(), detect memory leaks etc.
glutLeaveMainLoop();
#else
exit();
#endif
break;
case 'l' : stepLeft(); break;
case 'r' : stepRight(); break;

View File

@@ -17,18 +17,7 @@ subject to the following restrictions:
#define DEMO_APPLICATION_H
#ifdef WIN32//for glut.h
#include <windows.h>
#endif
//think different
#if defined(__APPLE__) && !defined (VMDMESA)
#include <OpenGL/gl.h>
#include <OpenGL/glu.h>
#include <GLUT/glut.h>
#else
#include <GL/glut.h>
#endif
#include "GlutStuff.h"
#include <stdlib.h>
#include <stdio.h>

View File

@@ -66,7 +66,6 @@ static void glutDisplayCallback(void)
}
int glutmain(int argc, char **argv,int width,int height,const char* title,DemoApplication* demoApp) {
gDemoApplication = demoApp;
@@ -76,6 +75,9 @@ int glutmain(int argc, char **argv,int width,int height,const char* title,DemoAp
glutInitWindowPosition(0, 0);
glutInitWindowSize(width, height);
glutCreateWindow(title);
#if (defined (WIN32) && defined (_MSC_VER))
glutSetOption (GLUT_ACTION_ON_WINDOW_CLOSE, GLUT_ACTION_GLUTMAINLOOP_RETURNS);
#endif
gDemoApplication->myinit();

View File

@@ -15,6 +15,24 @@ subject to the following restrictions:
#ifndef GLUT_STUFF_H
#define GLUT_STUFF_H
#ifdef WIN32//for glut.h
#include <windows.h>
#endif
//think different
#if defined(__APPLE__) && !defined (VMDMESA)
#include <OpenGL/gl.h>
#include <OpenGL/glu.h>
#include <GLUT/glut.h>
#else
#include <GL/glut.h>
#endif
#if (defined (WIN32) && defined (_MSC_VER))
#include "GL/freeglut_ext.h" //to be able to return from glutMainLoop()
#endif
class DemoApplication;
int glutmain(int argc, char **argv,int width,int height,const char* title,DemoApplication* demoApp);

View File

@@ -77,7 +77,7 @@ public:
return false;
}
void free(void* ptr)
void freeMemory(void* ptr)
{
if (ptr) {
btAssert((unsigned char*)ptr >= m_pool && (unsigned char*)ptr < m_pool + m_maxElements * m_elemSize);