182 lines
3.5 KiB
C
182 lines
3.5 KiB
C
/*
|
|
Raydium - CQFD Corp.
|
|
http://raydium.org/
|
|
License: GPL - GNU General Public License, see "gpl.txt" file.
|
|
*/
|
|
|
|
// avoid "real GLUT"
|
|
#ifndef GLUT_API_VERSION
|
|
|
|
#ifndef DONT_INCLUDE_HEADERS
|
|
#include "index.h"
|
|
#else
|
|
#include "headers/myglut.h"
|
|
#endif
|
|
|
|
#ifndef raydium_log
|
|
void raydium_log(char *format, ...);
|
|
#endif
|
|
|
|
int _glutWindowSize[2];
|
|
signed char _glutMouseVisible;
|
|
|
|
#ifdef WIN32
|
|
#include "myglut-win32.c"
|
|
#else
|
|
#include "myglut-x11.c"
|
|
#endif
|
|
|
|
//glutInitDisplayMode
|
|
//glutGameModeString
|
|
//glutEnterGameMode
|
|
//glutInitWindowSize
|
|
//glutCreateWindow
|
|
// are replaced by .. myglutCreateWindow
|
|
void myglutCreateWindow(GLuint tx, GLuint ty, signed char rendering, char *name)
|
|
{
|
|
switch(rendering)
|
|
{
|
|
case RAYDIUM_RENDERING_NONE:
|
|
return;
|
|
case RAYDIUM_RENDERING_WINDOW:
|
|
pwInit(-1,-1,tx,ty,0,name,1,0);
|
|
break;
|
|
case RAYDIUM_RENDERING_FULLSCREEN:
|
|
pwInit(0,0,-1,-1,0,name,0,0);
|
|
break;
|
|
}
|
|
}
|
|
|
|
//glutMainLoop
|
|
void glutMainLoop(void)
|
|
{
|
|
//#ifdef WIN32
|
|
// since windows is firing WM_SIZE too quickly ...
|
|
if(glutReshapeFuncCB)
|
|
glutReshapeFuncCB(_glutWindowSize[0],_glutWindowSize[1]);
|
|
//#endif
|
|
do{
|
|
glutIdleFuncCB();
|
|
myglutGetEvents();
|
|
}while(1);
|
|
}
|
|
|
|
// glutWireSphere
|
|
void glutWireSphere(GLdouble radius, GLint slices, GLint stacks)
|
|
{
|
|
static GLUquadricObj *quadObj=NULL;
|
|
|
|
if(!quadObj)
|
|
quadObj=gluNewQuadric();
|
|
|
|
gluQuadricDrawStyle(quadObj, GLU_LINE);
|
|
gluQuadricNormals(quadObj, GLU_SMOOTH);
|
|
gluSphere(quadObj, radius, slices, stacks);
|
|
}
|
|
|
|
//glutGet
|
|
int glutGet(int enu)
|
|
{
|
|
switch(enu)
|
|
{
|
|
case GLUT_WINDOW_CURSOR:
|
|
return _glutMouseVisible;
|
|
case GLUT_WINDOW_WIDTH:
|
|
return _glutWindowSize[0];
|
|
case GLUT_WINDOW_HEIGHT:
|
|
return _glutWindowSize[1];
|
|
default:
|
|
raydium_log("(my)glutGet: ERROR: unknown 'enu' %i",enu);
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
|
|
//glutIgnoreKeyRepeat (1 = yes)
|
|
void glutIgnoreKeyRepeat(int ignore)
|
|
{
|
|
//glutIgnoreKeyRepeatFlag=(ignore?1:0);
|
|
}
|
|
|
|
//glutReshapeFunc - void (GLUTCALLBACK *func)(int width, int height)
|
|
void glutReshapeFunc(void *func)
|
|
{
|
|
glutReshapeFuncCB=func;
|
|
}
|
|
|
|
//glutKeyboardFunc - void (GLUTCALLBACK *func)(unsigned char key, int x, int y)
|
|
void glutKeyboardFunc(void *func)
|
|
{
|
|
glutKeyboardFuncCB=func;
|
|
}
|
|
|
|
//glutSpecialUpFunc - void (GLUTCALLBACK *func)(int key, int x, int y)
|
|
void glutSpecialUpFunc(void *func)
|
|
{
|
|
glutSpecialUpFuncCB=func;
|
|
}
|
|
|
|
//glutSpecialFunc - void (GLUTCALLBACK *func)(int key, int x, int y)
|
|
void glutSpecialFunc(void *func)
|
|
{
|
|
glutSpecialFuncCB=func;
|
|
}
|
|
|
|
//glutMotionFunc - void (GLUTCALLBACK *func)(int x, int y)
|
|
void glutMotionFunc(void *func)
|
|
{
|
|
glutMotionFuncCB=func;
|
|
}
|
|
|
|
//glutPassiveMotionFunc - void (GLUTCALLBACK *func)(int x, int y)
|
|
void glutPassiveMotionFunc(void *func)
|
|
{
|
|
glutPassiveMotionFuncCB=func;
|
|
}
|
|
|
|
//glutMouseFunc - void (GLUTCALLBACK *func)(int button, int state, int x, int y)
|
|
void glutMouseFunc(void *func)
|
|
{
|
|
glutMouseFuncCB=func;
|
|
}
|
|
|
|
//glutDisplayFunc - void (GLUTCALLBACK *func)(void)
|
|
void glutDisplayFunc(void *func)
|
|
{
|
|
glutDisplayFuncCB=func;
|
|
}
|
|
|
|
//glutIdleFunc - void (GLUTCALLBACK *func)(void)
|
|
void glutIdleFunc(void *func)
|
|
{
|
|
glutIdleFuncCB=func;
|
|
}
|
|
|
|
//glutExtensionSupported - int (GLUTCALLBACK *func)(const char *name);
|
|
int glutExtensionSupported(const char *name)
|
|
{
|
|
char *ext;
|
|
int i;
|
|
int start=0;
|
|
char curr[128];
|
|
|
|
ext=(char *)glGetString(GL_EXTENSIONS);
|
|
if(!ext) return 0;
|
|
|
|
for(i=0;i<=strlen(ext);i++)
|
|
{
|
|
if(ext[i]==' ' || ext[i]==0)
|
|
{
|
|
strncpy(curr,ext+start,i-start);
|
|
curr[i-start]=0;
|
|
//printf("-%s-\n",curr);
|
|
if(!strcasecmp(curr,name))
|
|
return 1;
|
|
start=i+1;
|
|
}
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
#endif
|