[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