25 #ifndef vtkPSurfaceLICComposite_h
26 #define vtkPSurfaceLICComposite_h
31 #include "vtkRenderingParallelLICModule.h"
43 class vtkPPixelExtentOps;
80 void* pSendPBO,
int dataType,
int nComps,
vtkTextureObject*& newImage)
override;
87 void* pSendPBO,
int dataType,
int nComps,
vtkTextureObject*& newImage)
override;
109 double EstimateCommunicationCost(
const std::deque<std::deque<vtkPixelExtent> >& srcExts,
110 const std::deque<std::deque<vtkPixelExtent> >& destExts);
117 double EstimateDecompEfficiency(
const std::deque<std::deque<vtkPixelExtent> >& exts,
118 const std::deque<std::deque<vtkPixelExtent> >& guardExts);
124 int DecomposeScreenExtent(std::deque<std::deque<vtkPixelExtent> >& newExts,
float* vectors);
130 int DecomposeExtent(
vtkPixelExtent& in,
int nPieces, std::list<vtkPixelExtent>& out);
141 std::deque<std::deque<vtkPixelExtent> >& out,
float* vectors);
144 int MakeDecompLocallyDisjoint(
const std::deque<std::deque<vtkPixelExtent> >& in,
145 std::deque<std::deque<vtkPixelExtent> >& out);
154 int AllGatherExtents(
const std::deque<vtkPixelExtent>& localExts,
155 std::deque<std::deque<vtkPixelExtent> >& remoteExts,
vtkPixelExtent& dataSetExt);
160 int AllReduceVectorMax(
const std::deque<vtkPixelExtent>& originalExts,
161 const std::deque<std::deque<vtkPixelExtent> >& newExts,
float* vectors,
167 int AddGuardPixels(
const std::deque<std::deque<vtkPixelExtent> >& exts,
168 std::deque<std::deque<vtkPixelExtent> >& guardExts,
169 std::deque<std::deque<vtkPixelExtent> >& disjointGuardExts,
float* vectors);
173 vtkPPixelExtentOps* PixelOps;
182 std::deque<vtkPPixelTransfer> GatherProgram;
183 std::deque<vtkPPixelTransfer>
193 VTKRENDERINGPARALLELLIC_EXPORT
dynamic, self-adjusting array of float
a simple class to control print indentation
Internal class which encapsulates OpenGL FramebufferObject.
This class decomposes the image space and shuffles image space data onto the new decomposition with t...
virtual int Scatter(void *pSendPBO, int dataType, int nComps, vtkTextureObject *&newImage) override
Move a single buffer from the LIC decomp to the geometry decomp THIS IS A COLLECTIVE OPERATION.
virtual vtkOpenGLRenderWindow * GetContext() override
~vtkPSurfaceLICComposite() override
virtual void SetContext(vtkOpenGLRenderWindow *rwin) override
Set the rendering context.
vtkPSurfaceLICComposite()
virtual void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual int Gather(void *pSendPBO, int dataType, int nComps, vtkTextureObject *&newImage) override
Move a single buffer from the geometry decomp to the LIC decomp.
virtual int BuildProgram(float *vectors) override
Build programs to move data to the new decomp THIS IS A COLLECTIVE OPERATION.
static vtkPSurfaceLICComposite * New()
friend VTKRENDERINGPARALLELLIC_EXPORT ostream & operator<<(ostream &os, vtkPSurfaceLICComposite &ss)
virtual void SetCommunicator(vtkPainterCommunicator *comm) override
Set the communicator for parallel communication.
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)