|
|
static uint32_t | assembleFrames (const Frames &frames, Channel *channel, util::Accum *accum) |
| Assemble all frames in an arbitrary order using the fastest implemented algorithm on the given channel. More...
|
|
static uint32_t | assembleFramesSorted (const Frames &frames, Channel *channel, util::Accum *accum, const bool blendAlpha=false) |
| Assemble all frames in the given order using the fastest implemented algorithm on the given channel. More...
|
|
static uint32_t | assembleFramesUnsorted (const Frames &frames, Channel *channel, util::Accum *accum) |
| Assemble all frames in the order they become available directly on the given channel. More...
|
|
static uint32_t | assembleFramesCPU (const Frames &frames, Channel *channel, const bool blendAlpha=false) |
| Assemble all frames in the given order in a memory buffer using the CPU before assembling the result on the given channel. More...
|
|
static const Image * | mergeFramesCPU (const Frames &frames, const bool blendAlpha=false, const uint32_t timeout=LB_TIMEOUT_INDEFINITE) |
| Merge the provided frames in the given order into one image in main memory. More...
|
|
static bool | mergeFramesCPU (const Frames &frames, const bool blendAlpha, void *colorBuffer, const uint32_t colorBufferSize, void *depthBuffer, const uint32_t depthBufferSize, PixelViewport &outPVP, const uint32_t timeout=LB_TIMEOUT_INDEFINITE) |
| Merge the provided frames into one main memory buffer. More...
|
|
static void | assembleFrame (const Frame *frame, Channel *channel) |
| Assemble a frame into the frame buffer using the default algorithm. More...
|
|
|
static void | assembleImage (const Image *image, const ImageOp &operation) |
| Assemble an image into the frame buffer. More...
|
|
static void | setupStencilBuffer (const Image *image, const ImageOp &operation) |
| Setup the stencil buffer for a pixel compound recomposition. More...
|
|
static void | clearStencilBuffer (const ImageOp &operation) |
| Clear the stencil buffer after a pixel compound recomposition. More...
|
|
static void | setupAssemblyState (const PixelViewport &pvp, const GLEWContext *gl) |
| Setup the OpenGL state. More...
|
|
static void | resetAssemblyState () |
| Reset the OpenGL state.
|
|
static void | assembleImage2D (const Image *image, const ImageOp &op) |
| Start a tile-based assembly of the image color attachment. More...
|
|
static void | assembleImageDB (const Image *image, const ImageOp &op) |
| Start a Z-based assembly of the image color and depth attachment. More...
|
|
static void | assembleImageDB_FF (const Image *image, const ImageOp &op) |
| Start a Z-based assembly of the image color and depth attachment, based on OpenGL 1.1 functionality.
|
|
static void | assembleImageDB_GLSL (const Image *image, const ImageOp &op) |
| Start a Z-based assembly of the image color and depth attachment, using GLSL.
|
|
|
static void | declareRegion (const Image *image, const ImageOp &op) |
| Declare the region covered by the image on the operation's channel. More...
|
|
|
static WaitHandle * | startWaitFrames (const Frames &frames, Channel *channel) |
| Start waiting on a set of input frames. More...
|
|
static Frame * | waitFrame (WaitHandle *handle) |
| Wait for one input frame from a set of pending frames. More...
|
|
A set of functions performing compositing for a set of input frames.
The following diagram depicts the call flow within the compositor. Typically, an application uses one of the entry functions assembleFrames() or assembleFramesUnsorted(), but the various lower-level functions are still useful for advanced tasks, e.g., mergeFramesCPU() to perform compositing on the CPU into a main memory buffer.
Definition at line 42 of file compositor.h.
static uint32_t eq::Compositor::assembleFramesCPU |
( |
const Frames & |
frames, |
|
|
Channel * |
channel, |
|
|
const bool |
blendAlpha = false |
|
) |
| |
|
static |
Assemble all frames in the given order in a memory buffer using the CPU before assembling the result on the given channel.
If alpha-blending is enabled, the images are blended into the intermediate image in main memory as if using: glBlendFuncSeparate( GL_ONE, GL_SRC_ALPHA, GL_ZERO, GL_SRC_ALPHA ) The resulting image is composited using glBlendFunc( GL_ONE, GL_SRC_ALPHA ) into the current framebuffer.
- Parameters
-
frames | the frames to assemble. |
channel | the destination channel. |
blendAlpha | blend color-only images if they have an alpha channel |
- Returns
- the number of different subpixel steps assembled (0 or 1).
- Version
- 1.0
static bool eq::Compositor::mergeFramesCPU |
( |
const Frames & |
frames, |
|
|
const bool |
blendAlpha, |
|
|
void * |
colorBuffer, |
|
|
const uint32_t |
colorBufferSize, |
|
|
void * |
depthBuffer, |
|
|
const uint32_t |
depthBufferSize, |
|
|
PixelViewport & |
outPVP, |
|
|
const uint32_t |
timeout = LB_TIMEOUT_INDEFINITE |
|
) |
| |
|
static |
Merge the provided frames into one main memory buffer.
The callee has to allocate and clear (if needed) the output buffers to hold the necessary data. All input images have to use the same format and type, which will also be the output format. The depth buffer and depth buffer size may be 0, if the images contain no depth information.
The output pixel viewport receives the image size and offset wrt the destination channel.
- Returns
- true if the compositing was successful, false otherwise, e.g., a buffer is too small.
- Version
- 1.0