Initiate game mode support
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37820 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
ff973abc41
commit
a5d4249c2e
@ -20,7 +20,7 @@ MergeObject <opengl>glut.o :
|
||||
glutCursor.cpp
|
||||
glutMenu.cpp
|
||||
glutDstr.cpp
|
||||
# glutGameMode.cpp
|
||||
glutGameMode.cpp
|
||||
beos_x11.cpp
|
||||
|
||||
# C sources
|
||||
|
101
src/libs/mesa/glut/glutGameMode.cpp
Normal file
101
src/libs/mesa/glut/glutGameMode.cpp
Normal file
@ -0,0 +1,101 @@
|
||||
/*
|
||||
* Copyright 2010, Haiku Inc.
|
||||
* Authors:
|
||||
* Philippe Houdoin <phoudoin %at% haiku-os %dot% org>
|
||||
*
|
||||
* Distributed under the terms of the MIT License.
|
||||
*/
|
||||
|
||||
|
||||
#include <GL/glut.h>
|
||||
#include "glutint.h"
|
||||
#include "glutState.h"
|
||||
#include "glutBlocker.h"
|
||||
#include <stdio.h>
|
||||
|
||||
|
||||
void APIENTRY
|
||||
glutGameModeString(const char *string)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
|
||||
int APIENTRY
|
||||
glutEnterGameMode(void)
|
||||
{
|
||||
// TODO
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
void APIENTRY
|
||||
glutLeaveGameMode(void)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
|
||||
int APIENTRY
|
||||
glutGameModeGet(GLenum pname)
|
||||
{
|
||||
int ret = -1;
|
||||
|
||||
switch( pname ) {
|
||||
case GLUT_GAME_MODE_ACTIVE:
|
||||
ret = gState.gameMode != NULL;
|
||||
break;
|
||||
|
||||
case GLUT_GAME_MODE_POSSIBLE:
|
||||
// TODO
|
||||
break;
|
||||
|
||||
case GLUT_GAME_MODE_WIDTH:
|
||||
if (gState.gameMode)
|
||||
ret = gState.gameMode->width;
|
||||
break;
|
||||
|
||||
case GLUT_GAME_MODE_HEIGHT:
|
||||
if (gState.gameMode)
|
||||
ret = gState.gameMode->height;
|
||||
break;
|
||||
|
||||
case GLUT_GAME_MODE_PIXEL_DEPTH:
|
||||
if (gState.gameMode)
|
||||
ret = gState.gameMode->pixelDepth;
|
||||
break;
|
||||
|
||||
case GLUT_GAME_MODE_REFRESH_RATE:
|
||||
if (gState.gameMode)
|
||||
ret = gState.gameMode->refreshRate;
|
||||
break;
|
||||
|
||||
case GLUT_GAME_MODE_DISPLAY_CHANGED:
|
||||
// TODO
|
||||
break;
|
||||
|
||||
default:
|
||||
__glutWarning( "Unknown gamemode get: %d", pname );
|
||||
break;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
void APIENTRY
|
||||
glutForceJoystickFunc(void)
|
||||
{
|
||||
/*
|
||||
Forces a joystick poll and callback.
|
||||
|
||||
Forces the OpenGLUT joystick code to poll your
|
||||
joystick(s) and to call your joystick callbacks
|
||||
with the result. The operation completes, including
|
||||
callbacks, before glutForceJoystickFunc() returns.
|
||||
|
||||
See also glutJoystickFunc()
|
||||
*/
|
||||
|
||||
// TODO
|
||||
}
|
21
src/libs/mesa/glut/glutGameMode.h
Normal file
21
src/libs/mesa/glut/glutGameMode.h
Normal file
@ -0,0 +1,21 @@
|
||||
/*
|
||||
* Copyright 2010, Haiku Inc.
|
||||
* Authors:
|
||||
* Philippe Houdoin <phoudoin %at% haiku-os %dot% org>
|
||||
*
|
||||
* Distributed under the terms of the MIT License.
|
||||
*/
|
||||
|
||||
#include <GL/glut.h>
|
||||
|
||||
|
||||
/*! All information needed for game mode and
|
||||
subwindows (handled as similarly as possible).
|
||||
*/
|
||||
class GlutGameMode {
|
||||
public:
|
||||
int width;
|
||||
int height;
|
||||
int pixelDepth;
|
||||
int refreshRate;
|
||||
};
|
@ -17,8 +17,10 @@
|
||||
***********************************************************/
|
||||
#include <GL/glut.h>
|
||||
#include <Application.h>
|
||||
|
||||
#include "glutWindow.h"
|
||||
#include "glutMenu.h"
|
||||
#include "glutGameMode.h"
|
||||
|
||||
/***********************************************************
|
||||
* CLASS: GlutState
|
||||
@ -45,7 +47,7 @@ struct GlutState {
|
||||
int modifierKeys; // only valid during keyboard callback
|
||||
int keyRepeatMode; // global repeat
|
||||
|
||||
bool gameMode; // game mode is active
|
||||
GlutGameMode* gameMode;
|
||||
|
||||
bool debug; // call glGetError
|
||||
bool quitAll; // quit
|
||||
@ -57,14 +59,15 @@ struct GlutState {
|
||||
initWidth = initHeight = 300;
|
||||
displayMode = GLUT_RGB | GLUT_SINGLE | GLUT_DEPTH;
|
||||
displayString = 0;
|
||||
currentWindow = 0;
|
||||
currentMenu = 0;
|
||||
windowList = 0;
|
||||
currentWindow = NULL;
|
||||
currentMenu = NULL;
|
||||
windowList = NULL;
|
||||
windowListSize = 0;
|
||||
idle = 0;
|
||||
menuStatus = 0;
|
||||
modifierKeys = ~0;
|
||||
keyRepeatMode = GLUT_KEY_REPEAT_DEFAULT;
|
||||
gameMode = NULL;
|
||||
debug = quitAll = false;
|
||||
}
|
||||
};
|
||||
|
@ -103,16 +103,16 @@ GlutWindow::GlutWindow(GlutWindow *nparent, const char *name,
|
||||
// clear callbacks
|
||||
display = __glutDefaultDisplay;
|
||||
reshape = __glutDefaultReshape;
|
||||
mouse = 0;
|
||||
motion = 0;
|
||||
passive = 0;
|
||||
entry = 0;
|
||||
keyboard = 0;
|
||||
keyboardUp = 0;
|
||||
visibility = 0;
|
||||
special = 0;
|
||||
specialUp = 0;
|
||||
windowStatus = 0;
|
||||
mouse = NULL;
|
||||
motion = NULL;
|
||||
passive = NULL;
|
||||
entry = NULL;
|
||||
keyboard = NULL;
|
||||
keyboardUp = NULL;
|
||||
visibility = NULL;
|
||||
special = NULL;
|
||||
specialUp = NULL;
|
||||
windowStatus = NULL;
|
||||
|
||||
// clear event counters
|
||||
anyevents = 1;
|
||||
|
@ -125,7 +125,7 @@ static struct name_address_pair glut_functions[] = {
|
||||
{ "glutWindowStatusFunc", (const GLUTproc) glutWindowStatusFunc },
|
||||
{ "glutKeyboardUpFunc", (const GLUTproc) glutKeyboardUpFunc },
|
||||
{ "glutSpecialUpFunc", (const GLUTproc) glutSpecialUpFunc },
|
||||
// { "glutJoystickFunc", (const GLUTproc) glutJoystickFunc },
|
||||
{ "glutJoystickFunc", (const GLUTproc) glutJoystickFunc },
|
||||
{ "glutSetColor", (const GLUTproc) glutSetColor },
|
||||
{ "glutGetColor", (const GLUTproc) glutGetColor },
|
||||
{ "glutCopyColormap", (const GLUTproc) glutCopyColormap },
|
||||
@ -167,11 +167,11 @@ static struct name_address_pair glut_functions[] = {
|
||||
{ "glutReportErrors", (const GLUTproc) glutReportErrors },
|
||||
{ "glutIgnoreKeyRepeat", (const GLUTproc) glutIgnoreKeyRepeat },
|
||||
{ "glutSetKeyRepeat", (const GLUTproc) glutSetKeyRepeat },
|
||||
// { "glutForceJoystickFunc", (const GLUTproc) glutForceJoystickFunc },
|
||||
// { "glutGameModeString", (const GLUTproc) glutGameModeString },
|
||||
// { "glutEnterGameMode", (const GLUTproc) glutEnterGameMode },
|
||||
// { "glutLeaveGameMode", (const GLUTproc) glutLeaveGameMode },
|
||||
// { "glutGameModeGet", (const GLUTproc) glutGameModeGet },
|
||||
{ "glutForceJoystickFunc", (const GLUTproc) glutForceJoystickFunc },
|
||||
{ "glutGameModeString", (const GLUTproc) glutGameModeString },
|
||||
{ "glutEnterGameMode", (const GLUTproc) glutEnterGameMode },
|
||||
{ "glutLeaveGameMode", (const GLUTproc) glutLeaveGameMode },
|
||||
{ "glutGameModeGet", (const GLUTproc) glutGameModeGet },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user