summaryrefslogtreecommitdiffstats
path: root/menu_demo/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'menu_demo/main.c')
-rw-r--r--menu_demo/main.c68
1 files changed, 48 insertions, 20 deletions
diff --git a/menu_demo/main.c b/menu_demo/main.c
index 68180ef..2cea607 100644
--- a/menu_demo/main.c
+++ b/menu_demo/main.c
@@ -4,10 +4,9 @@
#endif
#include <stdlib.h>
-#include <stdio.h>
-
#include <GL/gl.h>
#include <GL/glut.h>
+#include <math.h>
#include "menu.h"
@@ -15,34 +14,64 @@
#define SCREEN_HEIGHT 480
-
void init_gl(void)
{
} // init_gl
+void render_blox(void)
+{
+ static double l_dAngle = 0.0;
+
+ glPushMatrix();
+ glTranslated(0, 0, -20);
+ glTranslated(sin(l_dAngle * (float)3.1415 / 180.0f) * 5,
+ sin(l_dAngle * (float)3.1415 / 180.0f) * 5,
+ -5 + sin(l_dAngle * (float)3.1415 / 180.0f) * 5);
+ glRotated(l_dAngle, 0.5, 0.5, 1);
+
+ // draw big cube
+ glutSolidCube(4);
+
+ glPushMatrix();
+ // draw smaller cube
+ glTranslated(0, sin(l_dAngle * (float)3.1415 / 180.0f) * 5, 0);
+ glutSolidCube(2);
+ glPopMatrix();
+
+ glPopMatrix();
+
+ l_dAngle += 0.1;
+
+} // render_blox
+
void render_scene(void)
{
+ float l_pfMaterial[] = {1.0f, 0.4f, 0.0f, 0.0f};
+
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glClearColor(1, 1, 1, 1);
-
- //// render teapot
- //glMatrixMode(GL_PROJECTION);
- //glPushMatrix();
- // glLoadIdentity();
- // gluPerspective(45, 1.0, 1.0, 200.0);
- // glMatrixMode(GL_MODELVIEW);
- // glTranslated(0, 0, -5);
- // glColor3d(1, 0, 0);
- // glutSolidTeapot(1);
- // glTranslated(0, 0, 5);
- // glMatrixMode(GL_PROJECTION);
- //glPopMatrix();
+ glClearColor(1, 0.4, 0.2, 1);
+ glDisable(GL_TEXTURE_2D);
- MenuRender();
+ // enable default lighting
+ glEnable(GL_DEPTH_TEST);
+ glEnable(GL_LIGHTING);
+ glEnable(GL_LIGHT0);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, l_pfMaterial);
+
+ // render 3d shit
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ gluPerspective(45, 1.0, 1.0, 100.0);
+ glMatrixMode(GL_MODELVIEW);
+ render_blox();
+
+ glDisable(GL_LIGHTING);
+
+ MenuRender();
glutSwapBuffers();
} // render_scene
@@ -102,8 +131,7 @@ int main(int argc, char **argv)
init_gl();
MenuInit(SCREEN_WIDTH, SCREEN_HEIGHT);
- glutEstablishOverlay();
- printf("Overlay %d\n", glutLayerGet(GLUT_OVERLAY_POSSIBLE));
+ ShowCursor(FALSE);
glutMainLoop();