• Main Page
  • Related Pages
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

dox/Rendering/vtkOpenGLProperty.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkOpenGLProperty.h,v $
00005 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00022 #ifndef __vtkOpenGLProperty_h
00023 #define __vtkOpenGLProperty_h
00024 
00025 #include "vtkProperty.h"
00026 
00027 class vtkOpenGLRenderer;
00028 class vtkShader2;
00029 class vtkShader2Collection;
00030 class vtkShaderProgram2;
00031 class vtkGLSLShaderDeviceAdapter2;
00032 
00033 class VTK_RENDERING_EXPORT vtkOpenGLProperty : public vtkProperty
00034 {
00035 public:
00036   static vtkOpenGLProperty *New();
00037   vtkTypeRevisionMacro(vtkOpenGLProperty,vtkProperty);
00038   virtual void PrintSelf(ostream& os, vtkIndent indent);
00039 
00041   void Render(vtkActor *a, vtkRenderer *ren);
00042 
00044   void BackfaceRender(vtkActor *a, vtkRenderer *ren);
00045   
00046   //BTX
00048 
00050   virtual void PostRender(vtkActor *a,
00051                           vtkRenderer *r);
00053   
00057   virtual void ReleaseGraphicsResources(vtkWindow *win);
00058   
00060 
00062   vtkGetObjectMacro(Shader2Collection,vtkShader2Collection);
00063   void SetShader2Collection(vtkShader2Collection *);
00065   
00067 
00068   vtkGetObjectMacro(ShaderDeviceAdapter2,vtkGLSLShaderDeviceAdapter2);
00070   
00072 
00073   vtkGetObjectMacro(CurrentShaderProgram2,vtkShaderProgram2);
00074   //ETX
00076   
00077 protected:
00078   vtkOpenGLProperty();
00079   ~vtkOpenGLProperty();
00080 
00082   void LoadMultiTexturingExtensions(vtkRenderer* ren);
00083   
00085   virtual void ReadFrameworkMaterial();
00086   
00087   vtkShader2Collection *Shader2Collection;
00088   
00089   vtkShaderProgram2 *CachedShaderProgram2; // owned
00090   vtkShaderProgram2 *LastCachedShaderProgram2; // just a ref
00091   vtkShaderProgram2 *PropProgram; // owned
00092   
00093   vtkShader2 *DefaultMainVS;
00094   vtkShader2 *DefaultMainFS;
00095   vtkShader2 *DefaultPropVS;
00096   vtkShader2 *DefaultPropFS;
00097   bool UseDefaultMainVS;
00098   bool UseDefaultMainFS;
00099   bool UseDefaultPropVS;
00100   bool UseDefaultPropFS;
00101   vtkGLSLShaderDeviceAdapter2 *ShaderDeviceAdapter2;
00102   
00103   vtkShaderProgram2 *CurrentShaderProgram2; // point to PropProgram or CachedShaderProgram2
00104   
00105 private:
00106   vtkOpenGLProperty(const vtkOpenGLProperty&);  // Not implemented.
00107   void operator=(const vtkOpenGLProperty&);  // Not implemented.
00108 };
00109 
00110 #endif

Generated by  doxygen 1.7.1