Hi,

Attached is a small example (test4.cpp) of using the Qt OpenGL widget to
draw a white filled triangle. I was hoping that someone else could try
it out and see if they get the same results I do. Here is a table of
what I see:

Video      Rendering Method  Result
TDFX 3500  DRI Glide Direct  Looks OK
TDFX 3500  DRI Indirect      Blank window
TDFX 3500  Mesa 3.5          Looks OK
Mach 64    DRI Indirect      Triangle is shifted to the right
Mach 64    Mesa 3.5          Looks OK

This is using RH 7.1 and the 0.5 DRI release. 

A GLUT implementation (test5.c) looks OK in all cases.

Thanks,
Allen
#include <iostream>
#include <qapplication.h>
#include <qgl.h>

class GLView : public QGLWidget {
  void initializeGL ( void )
  {
    cout << "Mesa GL version: " << glGetString( GL_RENDERER ) << " "
         << glGetString( GL_VERSION ) << endl;
    cout << "Mesa GLU version: " << gluGetString( GLU_VERSION ) << endl;
  }

  void resizeGL ( int width, int height )
  {
    glMatrixMode( GL_MODELVIEW );
    glLoadIdentity();
    glOrtho( -1., 1., -1., 1., -1., 1. );
  }

  void paintGL ( void )
  {
    glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );

    glPolygonMode( GL_FRONT_AND_BACK, GL_FILL );
    glBegin( GL_POLYGON );
    glVertex3f( 0., 0., 0. );
    glVertex3f( 1., 0., 0. );
    glVertex3f( 0., 1., 0. );
    glEnd();
  }
};

int main ( int argc, char* argv[] )
{
  QApplication test4( argc, argv );
  GLView view;
  test4.setMainWidget( &view );
  view.resize( 300, 300 );
  view.show();
  return test4.exec();
}

/*
 * Simple test
 */
#include <stdio.h>
#include <GL/glut.h>

void init ( void )
{
  glMatrixMode( GL_MODELVIEW );
  glLoadIdentity();
  glOrtho( -1., 1., -1., 1., -1., 1. );
}

void display ( void )
{
  glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );

  glPolygonMode( GL_FRONT_AND_BACK, GL_FILL );
  glBegin( GL_POLYGON );
  glVertex3f( 0., 0., 0. );
  glVertex3f( 1., 0., 0. );
  glVertex3f( 0., 1., 0. );
  glEnd();

  glutSwapBuffers();
}

int main ( int argc, char* argv[] )
{
  glutInit( &argc, argv );
  glutInitDisplayMode( GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH );
  glutInitWindowSize( 300, 300 );
  glutCreateWindow( argv[0] );
  init();

  printf( "Mesa GL Version: %s %s\n", glGetString( GL_RENDERER ),
          glGetString( GL_VERSION ) );

  glutDisplayFunc( display );
  glutMainLoop();
  return 0;
}

Reply via email to