progs/tests: also test stencil INCR_WRAP mode if supported
[mesa.git] / progs / tests / fbotest1.c
index ed72ab16dd8b95ab9f062bc0c1da4e1bb4956d48..a95fdff74c35b32ac74ca125a460b51a25de5142 100644 (file)
@@ -6,13 +6,14 @@
  */
 
 
-#define GL_GLEXT_PROTOTYPES
 #include <assert.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <math.h>
+#include <GL/glew.h>
 #include <GL/glut.h>
 
+static int Win;
 static int Width = 400, Height = 400;
 static GLuint MyFB, MyRB;
 
@@ -35,8 +36,8 @@ Display( void )
 
    /* draw to user framebuffer */
    glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, MyFB);
-   glDrawBuffer(GL_COLOR_ATTACHMENT1_EXT);
-   glReadBuffer(GL_COLOR_ATTACHMENT1_EXT);
+   glDrawBuffer(GL_COLOR_ATTACHMENT0_EXT);
+   glReadBuffer(GL_COLOR_ATTACHMENT0_EXT);
 
    status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
    if (status != GL_FRAMEBUFFER_COMPLETE_EXT) {
@@ -99,6 +100,7 @@ CleanUp(void)
    glDeleteRenderbuffersEXT(1, &MyRB);
    assert(!glIsFramebufferEXT(MyFB));
    assert(!glIsRenderbufferEXT(MyRB));
+   glutDestroyWindow(Win);
    exit(0);
 }
 
@@ -120,27 +122,32 @@ Key( unsigned char key, int x, int y )
 static void
 Init( void )
 {
+   GLboolean ARB_fbo = glutExtensionSupported("GL_ARB_framebuffer_object");
    GLint i;
 
    if (!glutExtensionSupported("GL_EXT_framebuffer_object")) {
       printf("GL_EXT_framebuffer_object not found!\n");
-      /*exit(0);*/
+      exit(0);
    }
    printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
 
    glGenFramebuffersEXT(1, &MyFB);
    assert(MyFB);
    assert(!glIsFramebufferEXT(MyFB));
-   glDeleteFramebuffersEXT(1, &MyFB);
-   assert(!glIsFramebufferEXT(MyFB));
+   if (!ARB_fbo) {
+      glDeleteFramebuffersEXT(1, &MyFB);
+      assert(!glIsFramebufferEXT(MyFB));
+   }
    /* Note, continue to use MyFB below */
 
    glGenRenderbuffersEXT(1, &MyRB);
    assert(MyRB);
    assert(!glIsRenderbufferEXT(MyRB));
-   glDeleteRenderbuffersEXT(1, &MyRB);
-   assert(!glIsRenderbufferEXT(MyRB));
-   MyRB = 42; /* an arbitrary ID */
+   if (!ARB_fbo) {
+      glDeleteRenderbuffersEXT(1, &MyRB);
+      assert(!glIsRenderbufferEXT(MyRB));
+      MyRB = 42; /* an arbitrary ID */
+   }
 
    glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, MyFB);
    assert(glIsFramebufferEXT(MyFB));
@@ -154,7 +161,7 @@ Init( void )
    assert(i == MyFB);
 
    CheckError(__LINE__);
-   glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT1_EXT,
+   glFramebufferRenderbufferEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT,
                                 GL_RENDERBUFFER_EXT, MyRB);
 
    glRenderbufferStorageEXT(GL_RENDERBUFFER_EXT, GL_RGB, Width, Height);
@@ -194,7 +201,8 @@ main( int argc, char *argv[] )
    glutInitWindowPosition( 0, 0 );
    glutInitWindowSize(Width, Height);
    glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
-   glutCreateWindow(argv[0]);
+   Win = glutCreateWindow(argv[0]);
+   glewInit();
    glutReshapeFunc( Reshape );
    glutKeyboardFunc( Key );
    glutDisplayFunc( Display );