13 #ifndef vtkPSurfaceLICComposite_h
14 #define vtkPSurfaceLICComposite_h
19 #include "vtkRenderingParallelLICModule.h"
26 VTK_ABI_NAMESPACE_BEGIN
32 class vtkPPixelExtentOps;
96 double EstimateCommunicationCost(
const std::deque<std::deque<vtkPixelExtent>>& srcExts,
97 const std::deque<std::deque<vtkPixelExtent>>& destExts);
104 double EstimateDecompEfficiency(
const std::deque<std::deque<vtkPixelExtent>>& exts,
105 const std::deque<std::deque<vtkPixelExtent>>& guardExts);
111 int DecomposeScreenExtent(std::deque<std::deque<vtkPixelExtent>>& newExts,
float* vectors);
117 int DecomposeExtent(
vtkPixelExtent& in,
int nPieces, std::list<vtkPixelExtent>& out);
128 std::deque<std::deque<vtkPixelExtent>>& out,
float* vectors);
131 int MakeDecompLocallyDisjoint(
132 const std::deque<std::deque<vtkPixelExtent>>& in, std::deque<std::deque<vtkPixelExtent>>& out);
141 int AllGatherExtents(
const std::deque<vtkPixelExtent>& localExts,
142 std::deque<std::deque<vtkPixelExtent>>& remoteExts,
vtkPixelExtent& dataSetExt);
147 int AllReduceVectorMax(
const std::deque<vtkPixelExtent>& originalExts,
148 const std::deque<std::deque<vtkPixelExtent>>& newExts,
float* vectors,
154 int AddGuardPixels(
const std::deque<std::deque<vtkPixelExtent>>& exts,
155 std::deque<std::deque<vtkPixelExtent>>& guardExts,
156 std::deque<std::deque<vtkPixelExtent>>& disjointGuardExts,
float* vectors);
159 vtkPPixelExtentOps* PixelOps;
168 std::deque<vtkPPixelTransfer> GatherProgram;
169 std::deque<vtkPPixelTransfer>
172 friend VTKRENDERINGPARALLELLIC_EXPORT ostream&
operator<<(
179 VTKRENDERINGPARALLELLIC_EXPORT
182 VTK_ABI_NAMESPACE_END
vtkOpenGLRenderWindow * GetContext() override
static vtkSurfaceLICComposite * New()
VTKRENDERINGPARALLELLIC_EXPORT ostream & operator<<(ostream &os, vtkPSurfaceLICComposite &ss)
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.
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...