[prev in list] [next in list] [prev in thread] [next in thread] 

List:       vtk-developers
Subject:    Re: [vtk-developers] vtkGLSLShaderStuff
From:       Utkarsh Ayachit <utkarsh.ayachit () kitware ! com>
Date:       2005-11-29 14:17:12
Message-ID: 438C62E8.4090002 () kitware ! com
[Download RAW message or body]

One solution is to use an Adaptor (just as the"Painters" use the
vtkPainterDeviceAdapter). The GLSLAdaptor can provide the GL
extension/version independent API to create program etc. The
GLSLShaderProgram/GLSLShader can safely defer the instantiation of the
adaptor until after the rendering context is available.

Utkarsh
John Biddiscombe wrote:
> The vtkGLSLShader and vtkGLSLShaderProgram code use OpenGL2 calls to do
> their stuff. However, OpenGL1.5+extensions is adequate for many GLSL
> programs. I've altered the code so that it will use extensions if
> available but I have a question...
> 
> Currently, I've modified vtkGLSLShaderProgram, vtkGLSLShader so that all
> calls to vtkgl::CreateProgram(...) are replaced with something like
> if (GL2Supported())
>    vtkgl::CreateProgram(...)
> }
> else {
>    vtkgl::CreateProgramARB(...)
> }
> 
> with all the GL2 calls replaced by equivalent functionality for
> GL1.5+ext, however I don't like it because it's untidy and I'd much
> rather create new classes like vtkGL15ShaderProgram & vtkGL15Shader
> which will simply be implementations using the extension code.
> 
> The trouble is that the vtkGLSLShaderXXX classes are instantiated inside
> vtkShaderProgram:::CreateShaderProgram and the vtkShaderProgram only
> knows if OpenGL2 is available (or which extensions are available) when a
> rendering context is ready and this happens when the property first
> calls "render". Unfortunately, by this time the
> Cg/GLSL/XXXX/shaderprograms have been created and so it's too late to
> instantiate an extension specific class.
> 
> I'd like to keep the GLSL code clean and have an extension specific
> class. Some kind of proxy maybe. Would anyone like to make a suggestion.
> 
> thanks
> 
> JB
> PS. Kitware people, please may I have cvs write access back.
> 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic