summaryrefslogtreecommitdiffstats
path: root/matchblox/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'matchblox/main.cpp')
-rw-r--r--matchblox/main.cpp116
1 files changed, 44 insertions, 72 deletions
diff --git a/matchblox/main.cpp b/matchblox/main.cpp
index 3e54784..fb84a97 100644
--- a/matchblox/main.cpp
+++ b/matchblox/main.cpp
@@ -65,63 +65,6 @@ bool InitWiiMotes()
}
}
-bool LoadGreyScaleShader()
-{
- GLint l_bStatus;
- char *vs_text = NULL,*fs_text = NULL;
- GLuint vs = glCreateShader(GL_VERTEX_SHADER),
- fs = glCreateShader(GL_FRAGMENT_SHADER);
-
- vs_text = textFileRead("shaders\\greyscale.vert");
- if (vs_text == NULL)
- {
- return false;
- }
- fs_text = textFileRead("shaders\\greyscale.frag");
- if (fs_text == NULL)
- {
- free(vs_text);
- return false;
- }
-
- glShaderSource(vs, 1, (const char**)&vs_text,NULL);
- glShaderSource(fs, 1, (const char**)&fs_text,NULL);
-
- free(vs_text);
- free(fs_text);
-
- glCompileShader(vs);
-// printShaderInfoLog(vs);
- glGetShaderiv(vs, GL_COMPILE_STATUS, &l_bStatus);
- if (l_bStatus == GL_FALSE)
- {
- return false;
- }
-
- glCompileShader(fs);
-// printShaderInfoLog(fs);
- glGetShaderiv(fs, GL_COMPILE_STATUS, &l_bStatus);
- if (l_bStatus == GL_FALSE)
- {
- return false;
- }
-
- g_GameState.m_GreyScaleShaderProgram = glCreateProgram();
- glAttachShader(g_GameState.m_GreyScaleShaderProgram,fs);
- glAttachShader(g_GameState.m_GreyScaleShaderProgram,vs);
-
- glLinkProgram(g_GameState.m_GreyScaleShaderProgram);
-// printProgramInfoLog(g_GameState.m_GreyScaleShaderProgram);
- glGetProgramiv(g_GameState.m_GreyScaleShaderProgram, GL_LINK_STATUS, &l_bStatus);
- if (l_bStatus == GL_FALSE)
- {
- return false;
- }
-
- g_GameState.m_GSConvScaleLoc = glGetUniformLocation(g_GameState.m_GreyScaleShaderProgram, "g_ConversionWeights");
-
- return true;
-}
void init_gl(void)
{
@@ -144,7 +87,8 @@ void idle_func(void)
struct input_payload_wiimote wiimote_payload;
struct messageq_s message;
- g_GameState.m_pWiimote[0]->FillWiimoteMsgPayload(wiimote_payload, 205.0); // << should be a sensor bar led distance
+ wiimote_payload.posDataValid = false;
+ //g_GameState.m_pWiimote[0]->FillWiimoteMsgPayload(wiimote_payload, 205.0); // << should be a sensor bar led distance
message.recipient = MESSAGE_MENU | MESSAGE_RENDERER;
message.sender = MESSAGE_INPUT_WIIMOTE;
@@ -164,14 +108,19 @@ void render_scene(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- g_pEngine->Render(glutGet(GLUT_ELAPSED_TIME));
+ input_payload_wiimote l_HTWiimote;
+ l_HTWiimote.posDataValid = false;
+
+ //g_GameState.m_pWiimote[0]->FillWiimoteMsgPayload(l_HTWiimote, 210.0);
+ g_pEngine->Render(glutGet(GLUT_ELAPSED_TIME), l_HTWiimote, g_GameState.m_FrustumParms);
+ //render the menu
glDisable(GL_LIGHTING);
glPushMatrix();
MenuRender();
glPopMatrix();
glEnable(GL_LIGHTING);
-
+
glutSwapBuffers();
} // render_scene
@@ -201,16 +150,6 @@ void process_normal_keys(unsigned char key, int x, int y)
case KEY_ESCAPE:
exit(0);
break;
- case 'n':
- g_pEngine->Abort();
- g_pEngine->NewGame(0, 0, BS_SMALL);
- break;
- case 'p':
- if (!g_pEngine->Pause())
- {
- g_pEngine->Resume();
- }
- break;
}
payload.specialkey = FALSE;
@@ -261,7 +200,7 @@ int main(int argc, char **argv)
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
- glutInitWindowSize(SCREEN_WIDTH, SCREEN_HEIGHT);
+ //glutInitWindowSize(SCREEN_WIDTH, SCREEN_HEIGHT);
glutCreateWindow("MatchBlox");
glutReshapeFunc(reshape);
@@ -274,8 +213,41 @@ int main(int argc, char **argv)
glutSetCursor(GLUT_CURSOR_NONE);
init_gl();
+
+ //init the GL Extension Wrangler library
+ glewInit();
+
+ //check for OpenGL 2.0 support
+ if (!glewIsSupported("GL_VERSION_2_0"))
+ {
+ printf("Your graphics hardware/software does not support OpenGL 2.0\n");
+ exit(1);
+ }
+
MenuInit(SCREEN_WIDTH, SCREEN_HEIGHT);
- InitWiiMotes();
+ //InitWiiMotes();
+
+ // initialise the stereo vision parameters << should be loaded from a textfile
+ g_GameState.m_FrustumParms.m_dEyeDistMM = 70.0; //7 cm
+ g_GameState.m_FrustumParms.m_dDefHeadDistMM = 1000.0; //100 cm
+ g_GameState.m_FrustumParms.m_dHeadTrackLedDist = 205.0;
+ g_GameState.m_FrustumParms.m_dRadPerCameraPixel = (41.0*(M_PI/180.0))/1016.0;
+ g_GameState.m_FrustumParms.m_dCameraXCenter = 1016.0/2.0;
+ g_GameState.m_FrustumParms.m_dCameraYCenter = 760.0/2.0;
+ g_GameState.m_FrustumParms.m_dYAngleCorrection = 0.0; //to be initialised correctly
+ g_GameState.m_FrustumParms.m_dScreenHeightWorld = 20.0;
+ g_GameState.m_FrustumParms.m_dCameraYOffset = 130.0;
+ g_GameState.m_FrustumParms.m_dScreenHeightMM = 2100.0;
+ g_GameState.m_FrustumParms.m_dScreenAspect = 4.0/3.0;
+ g_GameState.m_GSConvScale[0] = 0.299;
+ g_GameState.m_GSConvScale[1] = 0.587;
+ g_GameState.m_GSConvScale[2] = 0.114;
+ /*g_GameState.m_FrustumParms.m_dCameraYOffset = 205.0;
+ g_GameState.m_FrustumParms.m_dScreenHeightMM = 320.0;
+ g_GameState.m_FrustumParms.m_dScreenAspect = 16.0/10.0;*/
+
+ g_GameState.m_bHeadTrackingEnabled = false;
+ g_GameState.m_bStereoEnabled = false;
GameSettings l_set = {10, 1.1, 2};
g_pEngine = new C_MatchBloxEngine("models", "", l_set);