summaryrefslogtreecommitdiffstats
Side-by-side diff
-rw-r--r--AUTHORS1
-rw-r--r--Makefile.am2
-rw-r--r--README24
-rw-r--r--ax/acx_pthread.m4242
-rw-r--r--ax/ax_check_gl.m495
-rw-r--r--ax/ax_check_glu.m471
-rw-r--r--ax/ax_check_glut.m478
-rw-r--r--ax/ax_lang_compiler_ms.m423
-rw-r--r--configure.ac24
-rw-r--r--src/Makefile.am28
-rw-r--r--src/controller/exp004display.c16
-rw-r--r--src/controller/exp004display.h6
-rw-r--r--src/controller/exp004mouse.c90
-rw-r--r--src/controller/exp004mouse.h6
-rw-r--r--src/controller/exp004processhits.c54
-rw-r--r--src/controller/exp004processhits.h8
-rw-r--r--src/controller/exp004reshape.c55
-rw-r--r--src/controller/exp004reshape.h6
-rw-r--r--src/exp004viz.c15
-rw-r--r--src/model/exp004base.c107
-rw-r--r--src/model/exp004base.h9
-rw-r--r--src/model/exp004state.h101
-rw-r--r--src/util/check_error.c17
-rw-r--r--src/util/check_error.h9
-rw-r--r--src/view/exp004geometry.c32
-rw-r--r--src/view/exp004geometry.h8
-rw-r--r--src/view/exp004state0.h8
-rw-r--r--src/view/exp004view.c44
-rw-r--r--src/view/exp004view.h6
29 files changed, 1185 insertions, 0 deletions
diff --git a/src/controller/exp004processhits.c b/src/controller/exp004processhits.c
new file mode 100644
index 0000000..29fbbbc
--- a/dev/null
+++ b/src/controller/exp004processhits.c
@@ -0,0 +1,54 @@
+/* I seem to need this for glGenBuffers as per
+ http://www.gamedev.net/community/forums/topic.asp?topic_id=422358 */
+#define GL_GLEXT_PROTOTYPES
+
+#include "exp004processhits.h"
+#include "../view/exp004state0.h"
+#include <stdio.h>
+
+/*
+ * The implementation of this function is based on
+ * [Angel,2008,pp80-81].
+ */
+void
+exp004processhits (GLint hits, GLuint buffer[])
+{
+ /*
+ * A simple alias to make the code more readable.
+ */
+ EXP004STATE* S = &exp004state0;
+
+ printf ("Hits: %d\n", hits);
+
+ GLuint *hitlist = buffer;
+
+ for (int i = 0; i < hits; i++)
+ {
+ hitlist += 3;
+
+ /*
+ * Report the hit to the terminal.
+ */
+ printf ("Hit %i: %s\n", i + 1, exp004state0.gi_data[*hitlist]);
+
+ /*
+ * Add the hits to the selection.
+ */
+ exp004state0.selection[*hitlist] = true;
+ exp004state0.base_colors_data[*hitlist][0] = SELECT_COLOR_R;
+ exp004state0.base_colors_data[*hitlist][1] = SELECT_COLOR_G;
+ exp004state0.base_colors_data[*hitlist][2] = SELECT_COLOR_B;
+
+ hitlist++;
+ }
+
+ glBindBuffer (GL_ARRAY_BUFFER, S->buffers[BASE_COLORS]);
+ glColorPointer (3, GL_FLOAT, 0, 0);
+ glBufferData (GL_ARRAY_BUFFER,
+ sizeof (S->base_colors_data), S->base_colors_data,
+ GL_STATIC_DRAW);
+
+ printf ("\n");
+
+ return;
+}

Valid XHTML 1.0 Strict

Copyright © 2009 Don Pellegrino All Rights Reserved.