VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkShader2Collection.h 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 =========================================================================*/ 00026 #ifndef __vtkShader2Collection_h 00027 #define __vtkShader2Collection_h 00028 00029 #include "vtkRenderingOpenGLModule.h" // For export macro 00030 #include "vtkCollection.h" 00031 00032 class vtkShader2; 00033 00034 class VTKRENDERINGOPENGL_EXPORT vtkShader2Collection : public vtkCollection 00035 { 00036 public: 00037 static vtkShader2Collection *New(); 00038 vtkTypeMacro(vtkShader2Collection,vtkCollection); 00039 void PrintSelf(ostream& os, vtkIndent indent); 00040 00043 unsigned long GetMTime(); 00044 00046 void AddItem(vtkShader2 *shader); 00047 00049 vtkShader2 *GetNextShader(); 00050 00052 vtkShader2 *GetLastShader(); 00053 00054 //BTX 00056 00058 vtkShader2 *GetNextShader(vtkCollectionSimpleIterator &cookie); 00059 //ETX 00061 00066 void AddCollection(vtkShader2Collection *other); 00067 00073 void RemoveCollection(vtkShader2Collection *other); 00074 00078 bool HasVertexShaders(); 00079 00082 bool HasTessellationControlShaders(); 00083 00086 bool HasTessellationEvaluationShaders(); 00087 00089 bool HasGeometryShaders(); 00090 00094 bool HasFragmentShaders(); 00095 00097 void ReleaseGraphicsResources(); 00098 00099 protected: 00100 vtkShader2Collection(); 00101 ~vtkShader2Collection(); 00102 00103 bool HasShadersOfType(int); 00104 00105 private: 00106 // hide the standard AddItem from the user and the compiler. 00107 void AddItem(vtkObject *o); 00108 00109 vtkShader2Collection(const vtkShader2Collection&); // Not implemented. 00110 void operator=(const vtkShader2Collection&); // Not implemented. 00111 }; 00112 00113 #endif