summaryrefslogtreecommitdiff
path: root/progs
diff options
context:
space:
mode:
Diffstat (limited to 'progs')
-rw-r--r--progs/trivial/tri-z.c50
-rw-r--r--progs/vpglsl/psiz-imm.glsl6
-rw-r--r--progs/vpglsl/psiz-mul.glsl6
-rw-r--r--progs/vpglsl/vp-tris.c58
-rw-r--r--progs/wgl/wglinfo.c11
5 files changed, 109 insertions, 22 deletions
diff --git a/progs/trivial/tri-z.c b/progs/trivial/tri-z.c
index 335d2b90e2..014aaa071a 100644
--- a/progs/trivial/tri-z.c
+++ b/progs/trivial/tri-z.c
@@ -57,13 +57,19 @@ static struct { GLenum func; const char *str; } funcs[] =
static int curFunc = 0;
static double clearVal = 1.0;
-
+static float minZ = 0.0;
+static float maxZ = 1.0;
static void usage(void)
{
- printf("t - toggle rendering order of triangles\n");
- printf("c - toggle Z clear value between 0, 1\n");
- printf("f - cycle through depth test functions\n");
+ printf("t - toggle rendering order of triangles\n");
+ printf("c - toggle Z clear value between 0, 1\n");
+ printf("f - cycle through depth test functions\n");
+ printf("n/N - decrease/increase depthrange minZ\n");
+ printf("x/X - decrease/increase depthrange maxZ\n");
+ printf("spc - reset\n");
+ printf("z - set to reverse-direction (ztrick) mode\n");
+ fflush(stdout);
}
@@ -97,9 +103,11 @@ static void drawRightTriangle(void)
void display(void)
{
- printf("GL_CLEAR_DEPTH = %f GL_DEPTH_FUNC = %s\n",
- clearVal, funcs[curFunc].str);
+ printf("GL_CLEAR_DEPTH = %.2f, GL_DEPTH_FUNC = %s, DepthRange(%.1f, %.1f)\n",
+ clearVal, funcs[curFunc].str, minZ, maxZ);
+ fflush(stdout);
glClearDepth(clearVal);
+ glDepthRange(minZ, maxZ);
glDepthFunc(funcs[curFunc].func);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
@@ -131,27 +139,49 @@ void reshape(int w, int h)
void keyboard(unsigned char key, int x, int y)
{
switch (key) {
+ case 'n':
+ minZ -= .1;
+ break;
+ case 'N':
+ minZ += .1;
+ break;
+ case 'x':
+ maxZ -= .1;
+ break;
+ case 'X':
+ maxZ += .1;
+ break;
case 'c':
case 'C':
clearVal = 1.0 - clearVal;
- glutPostRedisplay();
break;
case 'f':
case 'F':
curFunc = (curFunc + 1) % NUM_FUNCS;
- glutPostRedisplay();
break;
case 't':
case 'T':
leftFirst = !leftFirst;
- glutPostRedisplay();
+ break;
+ case ' ':
+ curFunc = 0;
+ clearVal = 1.0;
+ minZ = 0.0;
+ maxZ = 1.0;
+ break;
+ case 'z':
+ curFunc = 2;
+ clearVal = 0.0;
+ minZ = 1.0;
+ maxZ = 0.0;
break;
case 27: /* Escape key */
exit(0);
break;
default:
- break;
+ return;
}
+ glutPostRedisplay();
}
/* Main Loop
diff --git a/progs/vpglsl/psiz-imm.glsl b/progs/vpglsl/psiz-imm.glsl
new file mode 100644
index 0000000000..101d314d58
--- /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 0000000000..77f4a46b52
--- /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 9ae410bf98..b2b0508091 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 );
diff --git a/progs/wgl/wglinfo.c b/progs/wgl/wglinfo.c
index 881d35b297..864372c2f9 100644
--- a/progs/wgl/wglinfo.c
+++ b/progs/wgl/wglinfo.c
@@ -348,7 +348,6 @@ print_screen_info(HDC _hdc, GLboolean limits)
HWND win;
HGLRC ctx;
int visinfo;
- int width = 100, height = 100;
HDC hdc;
PIXELFORMATDESCRIPTOR pfd;
@@ -364,18 +363,18 @@ print_screen_info(HDC _hdc, GLboolean limits)
win = CreateWindowEx(0,
wc.lpszClassName,
"wglinfo",
- WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN,
+ WS_CLIPSIBLINGS | WS_CLIPCHILDREN,
+ CW_USEDEFAULT,
+ CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
- width,
- height,
NULL,
NULL,
wc.hInstance,
NULL);
if (!win) {
fprintf(stderr, "Couldn't create window");
- exit(1);
+ return;
}
hdc = GetDC(win);
@@ -476,7 +475,7 @@ print_visual_attribs_verbose(int iPixelFormat, LPPIXELFORMATDESCRIPTOR ppfd)
ppfd->dwFlags & PFD_DRAW_TO_WINDOW ? 1 : 0);
printf(" bufferSize=%d level=%d renderType=%s doubleBuffer=%d stereo=%d\n",
0 /* ppfd->bufferSize */, 0 /* ppfd->level */,
- visual_render_type_name(ppfd->dwFlags),
+ visual_render_type_name(ppfd->iPixelType),
ppfd->dwFlags & PFD_DOUBLEBUFFER ? 1 : 0,
ppfd->dwFlags & PFD_STEREO ? 1 : 0);
printf(" rgba: cRedBits=%d cGreenBits=%d cBlueBits=%d cAlphaBits=%d\n",