00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00024 #ifndef __vtkShaderCodeLibrary_h
00025 #define __vtkShaderCodeLibrary_h
00026
00027 #include "vtkObject.h"
00028
00029 class VTK_IO_EXPORT vtkShaderCodeLibrary : public vtkObject
00030 {
00031 public:
00032 static vtkShaderCodeLibrary* New();
00033 vtkTypeRevisionMacro(vtkShaderCodeLibrary, vtkObject);
00034 void PrintSelf(ostream& os, vtkIndent indent);
00035
00040 static char* GetShaderCode(const char* name);
00041
00045 static const char** GetListOfShaderCodeNames();
00046
00049 static void RegisterShaderCode(const char* name, const char* code);
00050
00051 protected:
00052 vtkShaderCodeLibrary();
00053 ~vtkShaderCodeLibrary();
00054
00055 private:
00056 vtkShaderCodeLibrary(const vtkShaderCodeLibrary&);
00057 void operator=(const vtkShaderCodeLibrary&);
00058
00059
00060
00061 class vtkInternalCleanup
00062 {
00063 public:
00064 vtkInternalCleanup() {};
00065 ~vtkInternalCleanup();
00066 };
00067
00068 friend class vtkInternalCleanup;
00069 static vtkInternalCleanup Cleanup;
00070
00071
00072 class vtkInternal;
00073 static vtkInternal* Internal;
00074
00075 };
00076
00077
00078
00079 #endif
00080