25#ifndef vtkPSurfaceLICComposite_h
26#define vtkPSurfaceLICComposite_h
28#include "vtkSurfaceLICComposite.h"
30#include "vtkOpenGLRenderWindow.h"
31#include "vtkRenderingParallelLICModule.h"
44class vtkPPixelExtentOps;
119 double EstimateCommunicationCost(
120 const std::deque<std::deque<vtkPixelExtent> > &srcExts,
121 const std::deque<std::deque<vtkPixelExtent> > &destExts);
128 double EstimateDecompEfficiency(
129 const std::deque< std::deque<vtkPixelExtent> > &exts,
130 const std::deque< std::deque<vtkPixelExtent> > &guardExts);
136 int DecomposeScreenExtent(
137 std::deque< std::deque<vtkPixelExtent> >&newExts,
147 std::list<vtkPixelExtent> &out);
158 const std::deque< std::deque< vtkPixelExtent> > &in,
159 std::deque< std::deque< vtkPixelExtent> > &out,
164 int MakeDecompLocallyDisjoint(
165 const std::deque< std::deque< vtkPixelExtent> > &in,
166 std::deque< std::deque< vtkPixelExtent> > &out);
175 int AllGatherExtents(
176 const std::deque<vtkPixelExtent> &localExts,
177 std::deque<std::deque<vtkPixelExtent> > &remoteExts,
183 int AllReduceVectorMax(
184 const std::deque<vtkPixelExtent> &originalExts,
185 const std::deque<std::deque<vtkPixelExtent> > &newExts,
193 const std::deque<std::deque<vtkPixelExtent> > &exts,
194 std::deque<std::deque<vtkPixelExtent> > &guardExts,
195 std::deque<std::deque<vtkPixelExtent> > &disjointGuardExts,
200 vtkPPixelExtentOps *PixelOps;
213 std::deque<vtkPPixelTransfer> GatherProgram;
214 std::deque<vtkPPixelTransfer> ScatterProgram;
216 friend VTKRENDERINGPARALLELLIC_EXPORT
223VTKRENDERINGPARALLELLIC_EXPORT
dynamic, self-adjusting array of float
Interface to OpenGL framebuffer object.
a simple class to control print indentation
This class decomposes the image space and shuffles image space data onto the new decomposition with t...
~vtkPSurfaceLICComposite()
virtual void SetContext(vtkOpenGLRenderWindow *rwin)
Set the rendering context.
vtkPSurfaceLICComposite()
virtual int Gather(void *pSendPBO, int dataType, int nComps, vtkTextureObject *&newImage)
Move a single buffer from the geometry decomp to the LIC decomp.
virtual void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
virtual vtkOpenGLRenderWindow * GetContext()
virtual void SetCommunicator(vtkPainterCommunicator *comm)
Set the communicator for parallel communication.
static vtkPSurfaceLICComposite * New()
friend VTKRENDERINGPARALLELLIC_EXPORT ostream & operator<<(ostream &os, vtkPSurfaceLICComposite &ss)
virtual int Scatter(void *pSendPBO, int dataType, int nComps, vtkTextureObject *&newImage)
Move a single buffer from the LIC decomp to the geometry decomp THIS IS A COLLECTIVE OPERATION.
virtual int BuildProgram(float *vectors)
Build programs to move data to the new decomp THIS IS A COLLECTIVE OPERATION.
A communicator that can safely be used inside a painter.
Representation of a cartesian pixel plane and common operations on it.
create a window for renderers to draw into
This class decomposes the image space and shuffles image space data onto the new decomposition with t...
int AddGuardPixels(const std::deque< vtkPixelExtent > &exts, std::deque< vtkPixelExtent > &guardExts, std::deque< vtkPixelExtent > &disjointGuardExts, float *vectors)
Add guard pixels (Serial run)
static int MakeDecompDisjoint(std::deque< vtkPixelExtent > &in, std::deque< vtkPixelExtent > &out)
Make a decomposition disjoint with respect to itself.
abstracts an OpenGL texture object.
VTKRENDERINGPARALLELLIC_EXPORT ostream & operator<<(ostream &os, vtkPSurfaceLICComposite &ss)