View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0015776VTK(No Category)public2015-10-13 09:462016-08-12 09:55
ReporterLuc Habert 
Assigned ToKitware Robot 
PrioritynormalSeverityminorReproducibilityhave not tried
StatusclosedResolutionmoved 
PlatformOSOS Version
Product Version 
Target VersionFixed in Version 
Summary0015776: OpenGL2: vtkPlotPoints not displaying any point
Description
I have the same problem as addressed in ce285269b63f56b5aab06bf13381ba4f5b31b709, this time on a desktop system: windows 7 32 bits, AMD Radeon HD5450, VS 2008. glGetString(GL_VERSION) returns:

  4.4.13283 Compatibility Profile Context 14.501.1003.0

It seems to be working fine on other systems of ours.

I can fix the symptoms by adapting the mentioned commit.

I fear that adding an exception every time a faulty card is discovered is not a workable solution. However, systematically calling the

  glEnable(GL_POINT_SPRITE);
  glTexEnvi(GL_POINT_SPRITE, GL_COORD_REPLACE, GL_TRUE);

causes OpenGL errors on other systems, so it is not a solution either.
TagsNo tags attached.
ProjectTBD
Typeincorrect functionality
Attached Files

 Relationships

  Notes
(0035279)
Luc Habert (reporter)
2015-10-13 13:09

A test that seems to work on our machines is to call

  glGetTexEnviv(GL_POINT_SPRITE, GL_COORD_REPLACE, &someint)

If no opengl error is raised, then we should call glTexEnvi(GL_POINT_SPRITE, ...).

Here is precisely what I implemented:
1) Add an int field useGLPointSprite in vtkOpenGLContextDevice2D initialised to -1 by the constructor (I think it's better to work inside vtkOpenGLContextDevice2D than to expose on vtkRenderWindow a property specific to an opengl2 problem).

2) Add method

bool vtkOpenGLContextDevice2D::UseGLPointSprite()
{
  if (UseGLPointSprite == -1)
  {
      if (vtkOpenGLRenderWindow::GetContextSupportsOpenGL32())
      {
        while (glGetError() != GL_NO_ERROR) { }
        glIsEnabled(GL_POINT_SPRITE);
        if (glGetError() == GL_NO_ERROR)
        {
            GLint v;
            glGetTexEnviv(GL_POINT_SPRITE, GL_COORD_REPLACE, &v);
            useGLPointSprite = (glGetError() == GL_NO_ERROR ? 1 : 0);
        }
        else
        {
            useGLPointSprite = 0;
        }
      }
      else
      {
        useGLPointSprite = 1;
      }
  }
  return useGLPointSprite;
}

3) In DrawPointSprites, replace condition !vtkOpenGLRenderWindow::GetContextSupportsOpenGL32() by UseGLPointSprite().
(0037424)
Kitware Robot (administrator)
2016-08-12 09:55

Resolving issue as `moved`.

This issue tracker is no longer used. Further discussion of this issue may take place in the current VTK Issues page linked in the banner at the top of this page.

 Issue History
Date Modified Username Field Change
2015-10-13 09:46 Luc Habert New Issue
2015-10-13 13:09 Luc Habert Note Added: 0035279
2016-08-12 09:55 Kitware Robot Note Added: 0037424
2016-08-12 09:55 Kitware Robot Status backlog => closed
2016-08-12 09:55 Kitware Robot Resolution open => moved
2016-08-12 09:55 Kitware Robot Assigned To => Kitware Robot


Copyright © 2000 - 2018 MantisBT Team