Public Member Functions
RendererImageFragment Class Reference

Detailed Description

This abstract class needs to be implemented by the rendering engine to provide image fragments to Softimage. The fragment should be contained fully within the crop window given in the RenderContext object's attribute list.

Since:
6.01

#include <xsi_renderercontext.h>

List of all members.

Public Member Functions

virtual unsigned int  GetOffsetX () const =0
virtual unsigned int  GetOffsetY () const =0
virtual unsigned int  GetWidth () const =0
virtual unsigned int  GetHeight () const =0
virtual bool  GetScanlineRGBA (unsigned int in_uiRow, siImageBitDepth in_eBitDepth, unsigned char *out_pScanline) const =0

Member Function Documentation

virtual unsigned int GetOffsetX ( ) const [pure virtual]

Returns the offset of the fragment's bottom-left corner from the left-hand side of the output frame.

Returns:
The horizontal offset of the fragment.
virtual unsigned int GetOffsetY ( ) const [pure virtual]

Returns the offset of the fragment's bottom-left corner from the bottom of the output frame.

Returns:
The vertical offset of the fragment.
virtual unsigned int GetWidth ( ) const [pure virtual]

Returns the width of the fragment in pixels.

Returns:
The fragment's width.
virtual unsigned int GetHeight ( ) const [pure virtual]

Returns the height of the fragment in pixels.

Returns:
The fragment's height.
virtual bool GetScanlineRGBA ( unsigned int  in_uiRow,
siImageBitDepth  in_eBitDepth,
unsigned char *  out_pScanline 
) const [pure virtual]

Returns a single fragment scanline. The row is relative to the bottom of the fragment, going up. The caller can request different bit depths of the image data. By default, siImageBitDepthInteger8 is assumed to be supported. The renderer can declare explicit bit depth support through the siRenderQueryDisplayBitDepths query code in the cb_Renderer_Query Query callback. The bit depth requested is the same as returned by Framebuffer::GetDisplayBitDepth, from RendererContext::GetDisplayFramebuffer.

The data is laid out in RGBA format, where the red value comes first, followed by green, then blue and finally alpha.

The scanline data buffer passed contains enough space to hold the equal to the fragment's width times four (for the RGBA components) times the bit depth divided by eight. For bit depths larger than a byte, the values should be given in little endian format.

Parameters:
in_uiRow The scanline row to return, counting from the bottom of the fragment.
in_eBitDepth The requested bit depth of the color components to be returned.
Return values:
out_pScanline The buffer where the scanline data should be written.
Returns:
True if the data was successfully written; false in the case of a failure (for example, unsupported bit depth, invalid row number, etc.)

The documentation for this class was generated from the following file: