[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#518295: GL_LINE_LOOP not rendered correctly



Package: libgl1-mesa-glx
Version: 7.0.3-7

(I am not completely sure that this is the correct package, if not, please reassign)

After upgrading my home computer to Lenny I am observing a misbehavior of OpenGL programs, namely, whenever they should draw a GL_LINE_LOOP, the first and last segments of the line aren't drawn.

I'm attaching a simple test program (compile with -lglut). The correct behavior would be to draw two nested white squares on a black background. Instead the outer square (drawn as a GL_LINE_STRIP with the start/end point repeated) is rendered correctly, but of the inner square (drawn as a GL_LINE_LOOP) only two segments are drawn.

This problem seems to be specific of my hardware configuration, because I tried the same test program on another computer (with a Lenny live cd) and there it worked correctly. It is definitely a regression from Etch where it used to work also on my computer.

My graphics card is rather old, it is a Radeon 7000. I'm using no proprietary drivers or nonstandard configurations, everything comes from the stock Lenny installation. I'm attaching the /var/log/Xorg.0.log file where I suppose you should find all the needed information. If you need more, please ask.

Thank you
 Gerardo
#include <GL/gl.h>
#include <GL/glut.h>

void display_func(void)
{
  glDrawBuffer(GL_BACK);
  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

  /* ok */
  glBegin(GL_LINE_STRIP);
  glVertex3d(-2.0, -2.0, 0.0);
  glVertex3d(-2.0,  2.0, 0.0);
  glVertex3d( 2.0,  2.0, 0.0);
  glVertex3d( 2.0, -2.0, 0.0);
  glVertex3d(-2.0, -2.0, 0.0);
  glEnd();

  /* not ok */
  glBegin(GL_LINE_LOOP);
  glVertex3d(-1.0, -1.0, 0.0);
  glVertex3d(-1.0,  1.0, 0.0);
  glVertex3d( 1.0,  1.0, 0.0);
  glVertex3d( 1.0, -1.0, 0.0);
  glEnd();

  glutSwapBuffers();
}

void reshape_func(int width, int height)
{
  glViewport(0, 0, width, height);
  glMatrixMode(GL_PROJECTION);
  glLoadIdentity();
  glOrtho(-3.0, 3.0, -3.0, 3.0, -1.0, 1.0);
  glMatrixMode(GL_MODELVIEW);
}

int main(int argc, char **argv)
{
  glutInit(&argc, argv);
  glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH);
  glutCreateWindow("");

  glutDisplayFunc(display_func);
  glutReshapeFunc(reshape_func);

  glutMainLoop();

  return 1;
}

Attachment: Xorg.0.log
Description: Xorg.0.log


Reply to: