39 #ifndef vtkIceTCompositePass_h 40 #define vtkIceTCompositePass_h 43 #include "vtkPVVTKExtensionsRenderingModule.h" 44 #include "vtkRenderPass.h" 45 #include "vtkSynchronizedRenderers.h" 48 class vtkMultiProcessController;
51 class vtkPixelBufferObject;
52 class vtkTextureObject;
53 class vtkOpenGLRenderWindow;
54 class vtkUnsignedCharArray;
57 class vtkOpenGLHelper;
59 class vtkShaderProgram2;
67 void PrintSelf(ostream& os, vtkIndent indent);
73 virtual void Render(
const vtkRenderState* s);
80 void ReleaseGraphicsResources(vtkWindow* w);
88 vtkGetObjectMacro(Controller, vtkMultiProcessController);
89 virtual void SetController(vtkMultiProcessController* controller);
98 void SetRenderPass(vtkRenderPass*);
99 vtkGetObjectMacro(RenderPass, vtkRenderPass);
107 vtkSetVector2Macro(TileDimensions,
int);
108 vtkGetVector2Macro(TileDimensions,
int);
117 vtkSetVector2Macro(TileMullions,
int);
118 vtkGetVector2Macro(TileMullions,
int);
128 vtkSetMacro(DataReplicatedOnAllProcesses,
bool);
129 vtkGetMacro(DataReplicatedOnAllProcesses,
bool);
130 vtkBooleanMacro(DataReplicatedOnAllProcesses,
bool);
142 vtkSetClampMacro(ImageReductionFactor,
int, 1, 50);
143 vtkGetMacro(ImageReductionFactor,
int);
160 vtkGetMacro(RenderEmptyImages,
bool);
161 vtkSetMacro(RenderEmptyImages,
bool);
162 vtkBooleanMacro(RenderEmptyImages,
bool);
173 vtkGetMacro(UseOrderedCompositing,
bool);
174 vtkSetMacro(UseOrderedCompositing,
bool);
175 vtkBooleanMacro(UseOrderedCompositing,
bool);
185 vtkGetMacro(DepthOnly,
bool);
186 vtkSetMacro(DepthOnly,
bool);
196 vtkGetMacro(FixBackground,
bool);
197 vtkSetMacro(FixBackground,
bool);
204 void GetLastRenderedTile(vtkSynchronizedRenderers::vtkRawImage& tile);
210 vtkFloatArray* GetLastRenderedDepths();
217 vtkSetMacro(EnableFloatValuePass,
bool);
225 vtkFloatArray* GetLastRenderedRGBA32F();
231 void PushIceTDepthBufferToScreen(
const vtkRenderState* render_state);
237 void PushIceTColorBufferToScreen(
const vtkRenderState* render_state);
244 vtkGetVector4Macro(PhysicalViewport,
double);
251 virtual void GLDraw(
const vtkRenderState*);
252 virtual void Draw(
const vtkRenderState*,
const IceTDouble* proj_matrix,
253 const IceTDouble* mv_matrix,
const IceTFloat* background_color,
const IceTInt* viewport,
265 virtual void SetupContext(
const vtkRenderState*);
266 virtual void CleanupContext(
const vtkRenderState*);
275 void CreateProgram(vtkOpenGLRenderWindow* context);
280 void UpdateTileInformation(
const vtkRenderState*);
292 int TileDimensions[2];
295 int LastTileDimensions[2];
296 int LastTileMullions[2];
297 int LastTileViewport[4];
298 double PhysicalViewport[4];
306 vtkPixelBufferObject*
PBO;
309 vtkOpenGLHelper* Program;
326 vtkSynchronizedRenderers::vtkRawImage* LastRenderedEyes[2];
bool EnableFloatValuePass
bool UseOrderedCompositing
vtkIceTContext * IceTContext
bool DataReplicatedOnAllProcesses
vtkTextureObject * BackgroundTexture
vtkRenderPass * RenderPass
vtkPartitionOrderingInterface * PartitionOrdering
vtkSynchronizedRenderers::vtkRawImage * LastRenderedRGBAColors
vtkNew< vtkFloatArray > LastRenderedRGBA32F
vtkTextureObject * ZTexture
vtkNew< vtkFloatArray > LastRenderedDepths
vtkTextureObject * IceTTexture
Interface for ordering compositing.
This is a helper class for vtkIceTRenderManager and vtkOpenGLIceTRenderer.
vtkMultiProcessController * Controller
vtkShaderProgram2 * Program
vtkRenderPass subclass for compositing renderings across processes using IceT.
vtkPixelBufferObject * PBO