00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkCompositeRGBAPass.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 =========================================================================*/ 00033 #ifndef __vtkCompositeRGBAPass_h 00034 #define __vtkCompositeRGBAPass_h 00035 00036 #include "vtkRenderPass.h" 00037 00038 class vtkMultiProcessController; 00039 00040 class vtkPixelBufferObject; 00041 class vtkTextureObject; 00042 class vtkOpenGLRenderWindow; 00043 class vtkPKdTree; 00044 00045 class VTK_PARALLEL_EXPORT vtkCompositeRGBAPass : public vtkRenderPass 00046 { 00047 public: 00048 static vtkCompositeRGBAPass *New(); 00049 vtkTypeMacro(vtkCompositeRGBAPass,vtkRenderPass); 00050 void PrintSelf(ostream& os, vtkIndent indent); 00051 00054 virtual void Render(const vtkRenderState *s); 00055 00058 void ReleaseGraphicsResources(vtkWindow *w); 00059 00061 00063 vtkGetObjectMacro(Controller,vtkMultiProcessController); 00064 virtual void SetController(vtkMultiProcessController *controller); 00066 00068 00070 vtkGetObjectMacro(Kdtree,vtkPKdTree); 00071 virtual void SetKdtree(vtkPKdTree *kdtree); 00073 00075 bool IsSupported(vtkOpenGLRenderWindow *context); 00076 00077 protected: 00079 vtkCompositeRGBAPass(); 00080 00082 virtual ~vtkCompositeRGBAPass(); 00083 00084 vtkMultiProcessController *Controller; 00085 vtkPKdTree *Kdtree; 00086 00087 vtkPixelBufferObject *PBO; 00088 vtkTextureObject *RGBATexture; 00089 vtkTextureObject *RootTexture; 00090 float *RawRGBABuffer; 00091 size_t RawRGBABufferSize; 00092 00093 private: 00094 vtkCompositeRGBAPass(const vtkCompositeRGBAPass&); // Not implemented. 00095 void operator=(const vtkCompositeRGBAPass&); // Not implemented. 00096 }; 00097 00098 #endif