VTK
vtkShader2Collection.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkShader2Collection.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
26 #ifndef vtkShader2Collection_h
27 #define vtkShader2Collection_h
28 
29 #include "vtkRenderingOpenGLModule.h" // For export macro
30 #include "vtkCollection.h"
31 
32 class vtkShader2;
33 
34 class VTKRENDERINGOPENGL_EXPORT vtkShader2Collection : public vtkCollection
35 {
36  public:
37  static vtkShader2Collection *New();
39  void PrintSelf(ostream& os, vtkIndent indent);
40 
43  unsigned long GetMTime();
44 
46  void AddItem(vtkShader2 *shader);
47 
49  vtkShader2 *GetNextShader();
50 
52  vtkShader2 *GetLastShader();
53 
54  //BTX
56 
58  vtkShader2 *GetNextShader(vtkCollectionSimpleIterator &cookie);
59  //ETX
61 
66  void AddCollection(vtkShader2Collection *other);
67 
73  void RemoveCollection(vtkShader2Collection *other);
74 
78  bool HasVertexShaders();
79 
82  bool HasTessellationControlShaders();
83 
86  bool HasTessellationEvaluationShaders();
87 
89  bool HasGeometryShaders();
90 
94  bool HasFragmentShaders();
95 
97  void ReleaseGraphicsResources();
98 
99 protected:
102 
103  bool HasShadersOfType(int);
104 
105 private:
106  // hide the standard AddItem from the user and the compiler.
107  void AddItem(vtkObject *o);
108 
109  vtkShader2Collection(const vtkShader2Collection&); // Not implemented.
110  void operator=(const vtkShader2Collection&); // Not implemented.
111 };
112 
113 #endif
void * vtkCollectionSimpleIterator
Definition: vtkCollection.h:47
GLSL Shader.
Definition: vtkShader2.h:61
abstract base class for most VTK objects
Definition: vtkObject.h:61
void PrintSelf(ostream &os, vtkIndent indent)
a list of Shader2 objects.
virtual unsigned long GetMTime()
a simple class to control print indentation
Definition: vtkIndent.h:38
static vtkCollection * New()
void AddItem(vtkObject *)
create and manipulate unsorted lists of objects
Definition: vtkCollection.h:52