multi-touch demo: if an index 64 would come in, this would be written in the wrong...
[freeglut] / progs / demos / multi-touch / multi-touch.c
index 42842de..37f5d79 100644 (file)
@@ -41,23 +41,24 @@ typedef struct cursor {
 } *Cursor;
 struct cursor cursors[NUM_DEVICES][NUM_CURSORS];
 
-void onDisplay() {
-    glClearColor(0,0,0,1);
-    glClear(GL_COLOR_BUFFER_BIT);
 
-    float square[] = {
+static float square[] = {
         -.5, -.5,
          .5, -.5,
         -.5,  .5,
          .5,  .5,
     };
 
+void onDisplay(void) {
+    int d;
+    glClearColor(0,0,0,1);
+    glClear(GL_COLOR_BUFFER_BIT);
+
     glEnableClientState(GL_VERTEX_ARRAY);
     glVertexPointer(2, GL_FLOAT, 0, square);
-    int d;
     for (d = 0; d < NUM_DEVICES; d++) {
         int c;
-        for (c = 0; d < NUM_DEVICES; d++) {
+        for (c = 0; c < NUM_CURSORS; c++) {
             Cursor C = &cursors[d][c];
             if (C->on) {
                 glMatrixMode(GL_MODELVIEW);
@@ -94,39 +95,39 @@ void onDisplay() {
 void onMouse(int button, int state, int x, int y) {
     if (button == 0) {
         cursors[0][0].on = (state == GLUT_DOWN);
-        cursors[0][0].x = x;
-        cursors[0][0].y = y;
+        cursors[0][0].x = (float)x;
+        cursors[0][0].y = (float)y;
         printf("normal click\n");
     }
 }
 
 void onMotion(int x, int y) {
-    cursors[0][0].x = x;
-    cursors[0][0].y = y;
+    cursors[0][0].x = (float)x;
+    cursors[0][0].y = (float)y;
 }
 
 /* Using FG2.8 (reversed) prototype for now */
 /* void onMultiButton(int cursor_id, int button, int state, int x, int y) { */
 void onMultiButton(int cursor_id, int x, int y, int button, int state) {
-    if (cursor_id > NUM_CURSORS) {
-        fprintf(stderr, "cursor_id(%d) > NUM_CURSORS(%d)\n", cursor_id, NUM_CURSORS);
+    if (cursor_id >= NUM_CURSORS) {
+        fprintf(stderr, "cursor_id (%d) >= NUM_CURSORS (%d), out of slots\n", cursor_id, NUM_CURSORS);
         return;
     }
     if (button == 0) {
         cursors[0][cursor_id].on = (state == GLUT_DOWN);
-        cursors[0][cursor_id].x = x;
-        cursors[0][cursor_id].y = y;
+        cursors[0][cursor_id].x = (float)x;
+        cursors[0][cursor_id].y = (float)y;
         printf("multi-touch %d click\n", cursor_id);
     }
 }
 
 void onMultiMotion(int cursor_id, int x, int y) {
-    if (cursor_id > NUM_CURSORS) {
-        fprintf(stderr, "cursor_id(%d) > NUM_CURSORS(%d)\n", cursor_id, NUM_CURSORS);
+    if (cursor_id >= NUM_CURSORS) {
+        fprintf(stderr, "cursor_id (%d) >= NUM_CURSORS (%d), out of slots\n", cursor_id, NUM_CURSORS);
         return;
     }
-    cursors[0][cursor_id].x = x;
-    cursors[0][cursor_id].y = y;
+    cursors[0][cursor_id].x = (float)x;
+    cursors[0][cursor_id].y = (float)y;
 }
 
 void onReshape(int width, int height) {
@@ -136,7 +137,7 @@ void onReshape(int width, int height) {
     glOrtho(0, width, height, 0, -1, 1);
 }
 
-void onIdle() {
+void onIdle(void) {
     glutPostRedisplay();
 }