istereo2

annotate src/glut/main.c @ 17:f4dd01c36b0c

fixed inverted left/right stereo pairs
author John Tsiombikas <nuclear@member.fsf.org>
date Thu, 01 Oct 2015 08:03:43 +0300
parents 2a0ef5efb8e2
children 2b85d05df3f2
rev   line source
nuclear@2 1 /*
nuclear@2 2 Stereoscopic tunnel for iOS.
nuclear@9 3 Copyright (C) 2011-2015 John Tsiombikas <nuclear@member.fsf.org>
nuclear@2 4
nuclear@2 5 This program is free software: you can redistribute it and/or modify
nuclear@2 6 it under the terms of the GNU General Public License as published by
nuclear@2 7 the Free Software Foundation, either version 3 of the License, or
nuclear@2 8 (at your option) any later version.
nuclear@2 9
nuclear@2 10 This program is distributed in the hope that it will be useful,
nuclear@2 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
nuclear@2 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
nuclear@2 13 GNU General Public License for more details.
nuclear@2 14
nuclear@2 15 You should have received a copy of the GNU General Public License
nuclear@2 16 along with this program. If not, see <http://www.gnu.org/licenses/>.
nuclear@2 17 */
nuclear@2 18
nuclear@2 19
nuclear@2 20 #include <stdio.h>
nuclear@2 21 #include <stdlib.h>
nuclear@2 22 #include <GL/glew.h>
nuclear@10 23
nuclear@10 24 #ifdef __APPLE__
nuclear@10 25 #include <GLUT/glut.h>
nuclear@10 26 #else
nuclear@2 27 #include <GL/glut.h>
nuclear@10 28 #endif
nuclear@10 29
nuclear@2 30 #include "sanegl.h"
nuclear@2 31 #include "istereo.h"
nuclear@2 32 #include "sdr.h"
nuclear@2 33
nuclear@2 34 void disp(void);
nuclear@2 35 void keyb(unsigned char key, int x, int y);
nuclear@9 36 void mouse(int bn, int st, int x, int y);
nuclear@9 37 void motion(int x, int y);
nuclear@2 38
nuclear@2 39 int main(int argc, char **argv)
nuclear@2 40 {
nuclear@2 41 glutInit(&argc, argv);
nuclear@10 42 glutInitWindowSize(920, 640);
nuclear@2 43 glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE);
nuclear@2 44 glutCreateWindow("test");
nuclear@2 45
nuclear@2 46 glutDisplayFunc(disp);
nuclear@2 47 glutIdleFunc(glutPostRedisplay);
nuclear@2 48 glutReshapeFunc(reshape);
nuclear@2 49 glutKeyboardFunc(keyb);
nuclear@9 50 glutMouseFunc(mouse);
nuclear@9 51 glutMotionFunc(motion);
nuclear@2 52
nuclear@2 53 glewInit();
nuclear@2 54
nuclear@2 55 if(init() == -1) {
nuclear@2 56 return 1;
nuclear@2 57 }
nuclear@2 58
nuclear@2 59 glutMainLoop();
nuclear@2 60 return 0;
nuclear@2 61 }
nuclear@2 62
nuclear@2 63 void disp(void)
nuclear@2 64 {
nuclear@2 65 redraw();
nuclear@2 66
nuclear@2 67 glutSwapBuffers();
nuclear@2 68 }
nuclear@2 69
nuclear@2 70 extern int stereo;
nuclear@2 71 extern int use_bump;
nuclear@2 72
nuclear@2 73 void keyb(unsigned char key, int x, int y)
nuclear@2 74 {
nuclear@2 75 switch(key) {
nuclear@2 76 case 27:
nuclear@2 77 exit(0);
nuclear@2 78
nuclear@2 79 case 's':
nuclear@2 80 stereo = !stereo;
nuclear@2 81 break;
nuclear@2 82
nuclear@2 83 case 'b':
nuclear@2 84 use_bump = !use_bump;
nuclear@2 85 break;
nuclear@2 86
nuclear@2 87 case '`':
nuclear@2 88 {
nuclear@2 89 int xsz = glutGet(GLUT_WINDOW_WIDTH);
nuclear@2 90 int ysz = glutGet(GLUT_WINDOW_HEIGHT);
nuclear@2 91
nuclear@2 92 glutReshapeWindow(ysz, xsz);
nuclear@2 93 }
nuclear@2 94 break;
nuclear@2 95
nuclear@2 96 default:
nuclear@2 97 break;
nuclear@2 98 }
nuclear@2 99 }
nuclear@9 100
nuclear@9 101 void mouse(int bn, int st, int x, int y)
nuclear@9 102 {
nuclear@9 103 mouse_button(bn - GLUT_LEFT_BUTTON, st == GLUT_DOWN ? 1 : 0, x, y);
nuclear@9 104 }
nuclear@9 105
nuclear@9 106 void motion(int x, int y)
nuclear@9 107 {
nuclear@9 108 mouse_motion(x, y);
nuclear@9 109 }
nuclear@17 110
nuclear@17 111 /* dummy ad banner functions */
nuclear@17 112 void ad_banner_show(void)
nuclear@17 113 {
nuclear@17 114 }
nuclear@17 115
nuclear@17 116 void ad_banner_hide(void)
nuclear@17 117 {
nuclear@17 118 }