25 #ifndef vtkPSurfaceLICComposite_h 26 #define vtkPSurfaceLICComposite_h 28 #include "vtkSurfaceLICComposite.h" 30 #include "vtkOpenGLRenderWindow.h" 31 #include "vtkRenderingParallelLICModule.h" 43 class vtkPPixelExtentOps;
120 double EstimateCommunicationCost(
121 const std::deque<std::deque<vtkPixelExtent> > &srcExts,
122 const std::deque<std::deque<vtkPixelExtent> > &destExts);
129 double EstimateDecompEfficiency(
130 const std::deque< std::deque<vtkPixelExtent> > &exts,
131 const std::deque< std::deque<vtkPixelExtent> > &guardExts);
137 int DecomposeScreenExtent(
138 std::deque< std::deque<vtkPixelExtent> >&newExts,
148 std::list<vtkPixelExtent> &out);
159 const std::deque< std::deque< vtkPixelExtent> > &in,
160 std::deque< std::deque< vtkPixelExtent> > &out,
165 int MakeDecompLocallyDisjoint(
166 const std::deque< std::deque< vtkPixelExtent> > &in,
167 std::deque< std::deque< vtkPixelExtent> > &out);
176 int AllGatherExtents(
177 const std::deque<vtkPixelExtent> &localExts,
178 std::deque<std::deque<vtkPixelExtent> > &remoteExts,
184 int AllReduceVectorMax(
185 const std::deque<vtkPixelExtent> &originalExts,
186 const std::deque<std::deque<vtkPixelExtent> > &newExts,
194 const std::deque<std::deque<vtkPixelExtent> > &exts,
195 std::deque<std::deque<vtkPixelExtent> > &guardExts,
196 std::deque<std::deque<vtkPixelExtent> > &disjointGuardExts,
201 vtkPPixelExtentOps *PixelOps;
215 std::deque<vtkPPixelTransfer> GatherProgram;
216 std::deque<vtkPPixelTransfer> ScatterProgram;
218 friend VTKRENDERINGPARALLELLIC_EXPORT
225 VTKRENDERINGPARALLELLIC_EXPORT
static vtkSurfaceLICComposite * New()
friend ostream & operator<<(ostream &os, vtkSurfaceLICComposite &ss)
dynamic, self-adjusting array of float
virtual void SetCommunicator(vtkPainterCommunicator *)
Set the communicator for parallel communication.
virtual int Gather(void *, int, int, vtkTextureObject *&)
Move a single buffer from the geometry decomp to the LIC decomp.
a simple class to control print indentation
virtual void SetContext(vtkOpenGLRenderWindow *)
Set the rendering context.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
Internal class which encapsulates OpenGL FramebufferObject.
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.
virtual vtkOpenGLRenderWindow * GetContext() override
create a window for renderers to draw into
Representation of a cartesian pixel plane and common operations on it.
This class decomposes the image space and shuffles image space data onto the new decomposition with t...
A communicator that can safely be used inside a painter.
virtual int Scatter(void *, int, int, vtkTextureObject *&)
Move a single buffer from the LIC decomp to the geometry decomp In parallel THIS IS A COLLECTIVE OPER...
virtual int BuildProgram(float *)
Build programs to move data to the new decomp In parallel THIS IS A COLLECTIVE OPERATION.
This class decomposes the image space and shuffles image space data onto the new decomposition with t...
Interface to OpenGL framebuffer object.