diff options
| author | Jakob Bornecrantz <jakob@vmware.com> | 2009-06-09 07:53:25 +0200 | 
|---|---|---|
| committer | Jakob Bornecrantz <jakob@vmware.com> | 2009-06-09 07:53:25 +0200 | 
| commit | ee98ae5a29ca870149c4a0d2a8f25f55e0fd333a (patch) | |
| tree | 308fa87e22a276c0f8f28fd9f0986d20b52be928 /progs | |
| parent | d9617deb008b75f4a605a30408aeb1948139c33e (diff) | |
| parent | 76a1017e978f8e51114d765c8c98ff25da13042b (diff) | |
Merge branch 'mesa_7_5_branch'
Conflicts:
	Makefile
	src/mesa/main/version.h
	src/mesa/shader/slang/slang_preprocess.c
	src/mesa/state_tracker/st_cb_bufferobjects.c
Diffstat (limited to 'progs')
| -rw-r--r-- | progs/tests/.gitignore | 2 | ||||
| -rw-r--r-- | progs/tests/Makefile | 2 | ||||
| -rw-r--r-- | progs/tests/SConscript | 2 | ||||
| -rw-r--r-- | progs/tests/scissor-viewport.c | 138 | ||||
| -rw-r--r-- | progs/tests/scissor.c | 168 | 
5 files changed, 312 insertions, 0 deletions
| diff --git a/progs/tests/.gitignore b/progs/tests/.gitignore index 959ddcc51f..d6a8538767 100644 --- a/progs/tests/.gitignore +++ b/progs/tests/.gitignore @@ -62,6 +62,8 @@ readrate  readtex.c  readtex.h  rubberband +scissor +scissor-viewport  seccolor  shader_api  shaderutil.c diff --git a/progs/tests/Makefile b/progs/tests/Makefile index 1a3ba4f181..5069817be3 100644 --- a/progs/tests/Makefile +++ b/progs/tests/Makefile @@ -71,6 +71,8 @@ SOURCES = \  	random.c \  	readrate.c \  	rubberband.c \ +	scissor.c \ +	scissor-viewport.c \  	seccolor.c \  	shader_api.c \  	sharedtex.c \ diff --git a/progs/tests/SConscript b/progs/tests/SConscript index 453fcecd9c..9d89ff6a0d 100644 --- a/progs/tests/SConscript +++ b/progs/tests/SConscript @@ -95,6 +95,8 @@ progs = [      'random',      'readrate',      'rubberband', +    'scissor', +    'scissor-viewport',      'seccolor',      'shader_api',      'stencil_twoside', diff --git a/progs/tests/scissor-viewport.c b/progs/tests/scissor-viewport.c new file mode 100644 index 0000000000..582e65fb72 --- /dev/null +++ b/progs/tests/scissor-viewport.c @@ -0,0 +1,138 @@ +/* + * Copyright (c) 1991, 1992, 1993 Silicon Graphics, Inc. + * Copyright (c) 2009 VMware, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the name of + * Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF + * ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#include <stdio.h> +#include <string.h> +#include <stdlib.h> +#include <GL/glut.h> + +struct program +{ +   unsigned width; +   unsigned height; +   int i; +}; + +struct program prog; + +static void init(void) +{ +   fprintf(stderr, "GL_RENDERER   = %s\n", (char *) glGetString(GL_RENDERER)); +   fprintf(stderr, "GL_VERSION    = %s\n", (char *) glGetString(GL_VERSION)); +   fprintf(stderr, "GL_VENDOR     = %s\n", (char *) glGetString(GL_VENDOR)); +   fflush(stderr); + +   prog.i = 0; +} + +static void reshape(int width, int height) +{ +   glViewport(0, 0, 100, 100); + +   prog.width = width; +   prog.height = height; + +   glMatrixMode(GL_PROJECTION); +   glLoadIdentity(); +   glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0); +   glMatrixMode(GL_MODELVIEW); +} + +static void key(unsigned char key, int x, int y) +{ + +   switch (key) { +   case 27: +      exit(1); +   default: +      glutPostRedisplay(); +      return; +   } +} + +static void drawQuad(void) +{ +   glBegin(GL_QUADS); +   glVertex2d(-1.0, -1.0); +   glVertex2d( 1.0, -1.0); +   glVertex2d( 1.0,  1.0); +   glVertex2d(-1.0,  1.0); +   glEnd(); +} + +static void draw(void) +{ +   int i; + +   glClearColor(0.0, 0.0, 1.0, 0.0); +   glClear(GL_COLOR_BUFFER_BIT); + +   i = prog.i++; +   if (prog.i >= 3) +      prog.i = 0; + +   glEnable(GL_SCISSOR_TEST); + +   { +      glColor4d(1.0, 0.0, 0.0, 1.0); + +      glScissor(i, i, 10 - 2*i, 10 - 2*i); +      drawQuad(); +   } + +   glDisable(GL_SCISSOR_TEST); + +   //glutSwapBuffers(); +   glFlush(); +} + +int main(int argc, char **argv) +{ +   GLenum type; + +   glutInit(&argc, argv); + +   prog.width = 200; +   prog.height = 200; + +   glutInitWindowPosition(100, 0); +   glutInitWindowSize(prog.width, prog.height); + +   //type = GLUT_RGB | GLUT_DOUBLE; +   type = GLUT_RGB | GLUT_SINGLE; +   glutInitDisplayMode(type); + +   if (glutCreateWindow(*argv) == GL_FALSE) { +      exit(1); +   } + +   init(); + +   glutReshapeFunc(reshape); +   glutKeyboardFunc(key); +   glutDisplayFunc(draw); +   glutMainLoop(); +   return 0; +} diff --git a/progs/tests/scissor.c b/progs/tests/scissor.c new file mode 100644 index 0000000000..2dfd2174e8 --- /dev/null +++ b/progs/tests/scissor.c @@ -0,0 +1,168 @@ +/* + * Copyright (c) 1991, 1992, 1993 Silicon Graphics, Inc. + * Copyright (c) 2009 VMware, Inc. + * + * Permission to use, copy, modify, distribute, and sell this software and + * its documentation for any purpose is hereby granted without fee, provided + * that (i) the above copyright notices and this permission notice appear in + * all copies of the software and related documentation, and (ii) the name of + * Silicon Graphics may not be used in any advertising or + * publicity relating to the software without the specific, prior written + * permission of Silicon Graphics. + * + * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF + * ANY KIND, + * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY + * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL SILICON GRAPHICS BE LIABLE FOR + * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF + * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + * OF THIS SOFTWARE. + */ + +#include <stdio.h> +#include <string.h> +#include <stdlib.h> +#include <GL/glut.h> + +struct program +{ +   unsigned width; +   unsigned height; +   unsigned quads; +}; + +struct program prog; + +static void init(void) +{ +   fprintf(stderr, "GL_RENDERER   = %s\n", (char *) glGetString(GL_RENDERER)); +   fprintf(stderr, "GL_VERSION    = %s\n", (char *) glGetString(GL_VERSION)); +   fprintf(stderr, "GL_VENDOR     = %s\n", (char *) glGetString(GL_VENDOR)); +   fflush(stderr); +} + +static void reshape(int width, int height) +{ + +   glViewport(0, 0, (GLint)width, (GLint)height); + +   prog.width = width; +   prog.height = height; + +   glMatrixMode(GL_PROJECTION); +   glLoadIdentity(); +   glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0); +   glMatrixMode(GL_MODELVIEW); +} + +static void key(unsigned char key, int x, int y) +{ + +   switch (key) { +   case 27: +      exit(1); +   default: +      prog.quads = !prog.quads; +      glutPostRedisplay(); +      return; +   } +} + +static void drawQuad(void) +{ + +   if (prog.quads) { +      glBegin(GL_QUADS); +      glVertex2d(-1.0, -1.0); +      glVertex2d( 1.0, -1.0); +      glVertex2d( 1.0,  1.0); +      glVertex2d(-1.0,  1.0); +      glEnd(); +   } else { +      glClear(GL_COLOR_BUFFER_BIT); +   } +} + +static void draw(void) +{ +   glClearColor(0.0, 0.0, 1.0, 0.0); +   glClear(GL_COLOR_BUFFER_BIT); + +   printf("drawing with %s\n", prog.quads ? "quads" : "clears"); + +   glEnable(GL_SCISSOR_TEST); + +   { +      glClearColor(1.0, 0.0, 0.0, 1.0); +      glColor4d(1.0, 0.0, 0.0, 1.0); + +      glScissor(1, 1, 10, 10); +      drawQuad(); +      glScissor(1, prog.height -  11, 10, 10); +      drawQuad(); +      glScissor(prog.width - 11, prog.height -  11, 10, 10); +      drawQuad(); +   } + +   { +      glClearColor(0.0, 1.0, 0.0, 1.0); +      glColor4d(0.0, 1.0, 0.0, 1.0); + +      glScissor(12, 1, 10, 10); +      drawQuad(); +      glScissor(12, prog.height -  11, 10, 10); +      drawQuad(); +      glScissor(prog.width - 22, prog.height -  11, 10, 10); +      drawQuad(); +   } + +   { +      glClearColor(1.0, 1.0, 0.0, 1.0); +      glColor4d(1.0, 1.0, 0.0, 1.0); + +      glScissor(1, 12, 10, 10); +      drawQuad(); +      glScissor(1, prog.height -  22, 10, 10); +      drawQuad(); +      glScissor(prog.width - 11, prog.height -  22, 10, 10); +      drawQuad(); +   } + +   glDisable(GL_SCISSOR_TEST); + +   //glutSwapBuffers(); +   glFlush(); +} + +int main(int argc, char **argv) +{ +   GLenum type; + +   glutInit(&argc, argv); + +   prog.width = 200; +   prog.height = 200; + +   glutInitWindowPosition(100, 0); +   glutInitWindowSize(prog.width, prog.height); + +   //type = GLUT_RGB | GLUT_DOUBLE; +   type = GLUT_RGB | GLUT_SINGLE; +   glutInitDisplayMode(type); + +   if (glutCreateWindow(*argv) == GL_FALSE) { +      exit(1); +   } + +   init(); + +   glutReshapeFunc(reshape); +   glutKeyboardFunc(key); +   glutDisplayFunc(draw); +   glutMainLoop(); +   return 0; +} | 
