Mesa (mesa_7_5_branch): progs/vpglsl: add similar support for point rendering as progs/vp

Jose Fonseca jrfonseca at kemper.freedesktop.org
Tue Jun 2 03:01:33 UTC 2009


Module: Mesa
Branch: mesa_7_5_branch
Commit: 97f5953ced6938ca8e92cde62e8717ff505cc4e2
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=97f5953ced6938ca8e92cde62e8717ff505cc4e2

Author: Keith Whitwell <keithw at vmware.com>
Date:   Thu May 14 15:57:27 2009 +0100

progs/vpglsl: add similar support for point rendering as progs/vp

---

 progs/vpglsl/psiz-imm.glsl |    6 ++++
 progs/vpglsl/psiz-mul.glsl |    6 ++++
 progs/vpglsl/vp-tris.c     |   58 +++++++++++++++++++++++++++++++++++++++----
 3 files changed, 64 insertions(+), 6 deletions(-)

diff --git a/progs/vpglsl/psiz-imm.glsl b/progs/vpglsl/psiz-imm.glsl
new file mode 100644
index 0000000..101d314
--- /dev/null
+++ b/progs/vpglsl/psiz-imm.glsl
@@ -0,0 +1,6 @@
+
+void main() {
+    gl_FrontColor = gl_Color;
+    gl_PointSize = 2.0;
+    gl_Position = gl_Vertex;
+}
diff --git a/progs/vpglsl/psiz-mul.glsl b/progs/vpglsl/psiz-mul.glsl
new file mode 100644
index 0000000..77f4a46
--- /dev/null
+++ b/progs/vpglsl/psiz-mul.glsl
@@ -0,0 +1,6 @@
+
+void main() {
+    gl_FrontColor = gl_Color;
+    gl_PointSize = 10 * gl_Color.x;
+    gl_Position = gl_Vertex;
+}
diff --git a/progs/vpglsl/vp-tris.c b/progs/vpglsl/vp-tris.c
index 9ae410b..b2b0508 100644
--- a/progs/vpglsl/vp-tris.c
+++ b/progs/vpglsl/vp-tris.c
@@ -10,6 +10,10 @@
 
 static const char *filename = NULL;
 static GLuint nr_steps = 4;
+static GLuint prim = GL_TRIANGLES;
+static GLfloat psz = 1.0;
+static GLboolean pointsmooth = 0;
+static GLboolean program_point_size = 0;
 
 static GLuint fragShader;
 static GLuint vertShader;
@@ -229,6 +233,14 @@ static void subdiv( union vert *v0,
    }
 }
 
+static void enable( GLenum value, GLboolean flag )
+{
+   if (flag)
+      glEnable(value);
+   else
+      glDisable(value);
+}
+
 /** Assignment */
 #define ASSIGN_3V( V, V0, V1, V2 )  \
 do {                                \
@@ -241,10 +253,13 @@ static void Display( void )
 {
    glClearColor(0.3, 0.3, 0.3, 1);
    glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
+   glPointSize(psz);
 
    glUseProgram(program);
+   enable( GL_POINT_SMOOTH, pointsmooth );
+   enable( GL_VERTEX_PROGRAM_POINT_SIZE_ARB, program_point_size );
 
-   glBegin(GL_TRIANGLES);
+   glBegin(prim);
 
 
    {
@@ -291,10 +306,41 @@ static void Key( unsigned char key, int x, int y )
    (void) x;
    (void) y;
    switch (key) {
-      case 27:
-         CleanUp();
-         exit(0);
-         break;
+   case 'p':
+      prim = GL_POINTS;
+      break;
+   case 't':
+      prim = GL_TRIANGLES;
+      break;
+   case 's':
+      psz += .5;
+      break;
+   case 'S':
+      if (psz > .5)
+         psz -= .5;
+      break;
+   case 'm':
+      pointsmooth = !pointsmooth;
+      break;
+   case 'z':
+      program_point_size = !program_point_size;
+      break;
+   case '+':
+      nr_steps++;
+      break; 
+   case '-':
+      if (nr_steps) 
+         nr_steps--;
+      break;
+   case ' ':
+      psz = 1.0;
+      prim = GL_TRIANGLES;
+      nr_steps = 4;
+      break;
+   case 27:
+      CleanUp();
+      exit(0);
+      break;
    }
    glutPostRedisplay();
 }
@@ -305,7 +351,7 @@ int main( int argc, char *argv[] )
    glutInitWindowPosition( 0, 0 );
    glutInitWindowSize( 250, 250 );
    glutInitDisplayMode( GLUT_RGB | GLUT_SINGLE | GLUT_DEPTH );
-   glutCreateWindow(argv[0]);
+   glutCreateWindow(argv[argc-1]);
    glewInit();
    glutReshapeFunc( Reshape );
    glutKeyboardFunc( Key );




More information about the mesa-commit mailing list