25#ifndef vtkPSurfaceLICComposite_h
26#define vtkPSurfaceLICComposite_h
31#include "vtkRenderingParallelLICModule.h"
43class vtkPPixelExtentOps;
107 double EstimateCommunicationCost(
const std::deque<std::deque<vtkPixelExtent>>& srcExts,
108 const std::deque<std::deque<vtkPixelExtent>>& destExts);
115 double EstimateDecompEfficiency(
const std::deque<std::deque<vtkPixelExtent>>& exts,
116 const std::deque<std::deque<vtkPixelExtent>>& guardExts);
122 int DecomposeScreenExtent(std::deque<std::deque<vtkPixelExtent>>& newExts,
float* vectors);
128 int DecomposeExtent(
vtkPixelExtent& in,
int nPieces, std::list<vtkPixelExtent>& out);
139 std::deque<std::deque<vtkPixelExtent>>& out,
float* vectors);
142 int MakeDecompLocallyDisjoint(
143 const std::deque<std::deque<vtkPixelExtent>>& in, std::deque<std::deque<vtkPixelExtent>>& out);
152 int AllGatherExtents(
const std::deque<vtkPixelExtent>& localExts,
153 std::deque<std::deque<vtkPixelExtent>>& remoteExts,
vtkPixelExtent& dataSetExt);
158 int AllReduceVectorMax(
const std::deque<vtkPixelExtent>& originalExts,
159 const std::deque<std::deque<vtkPixelExtent>>& newExts,
float* vectors,
160 std::vector<std::vector<float>>& vectorMax);
165 int AddGuardPixels(
const std::deque<std::deque<vtkPixelExtent>>& exts,
166 std::deque<std::deque<vtkPixelExtent>>& guardExts,
167 std::deque<std::deque<vtkPixelExtent>>& disjointGuardExts,
float* vectors);
171 vtkPPixelExtentOps* PixelOps;
180 std::deque<vtkPPixelTransfer> GatherProgram;
181 std::deque<vtkPPixelTransfer>
191VTKRENDERINGPARALLELLIC_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...
~vtkPSurfaceLICComposite() override
int Gather(void *pSendPBO, int dataType, int nComps, vtkTextureObject *&newImage) override
Move a single buffer from the geometry decomp to the LIC decomp.
void SetCommunicator(vtkPainterCommunicator *comm) override
Set the communicator for parallel communication.
void SetContext(vtkOpenGLRenderWindow *rwin) override
Set the rendering context.
int BuildProgram(float *vectors) override
Build programs to move data to the new decomp THIS IS A COLLECTIVE OPERATION.
vtkPSurfaceLICComposite()
vtkOpenGLRenderWindow * GetContext() override
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.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
static vtkPSurfaceLICComposite * New()
friend VTKRENDERINGPARALLELLIC_EXPORT ostream & operator<<(ostream &os, vtkPSurfaceLICComposite &ss)
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.
a weak reference to a vtkObject.
VTKRENDERINGPARALLELLIC_EXPORT ostream & operator<<(ostream &os, vtkPSurfaceLICComposite &ss)