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.
#include <xsi_renderercontext.h>
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 |
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.
virtual unsigned int GetOffsetY | ( | ) | const [pure virtual] |
Returns the offset of the fragment's bottom-left corner from the bottom of the output frame.
virtual unsigned int GetWidth | ( | ) | const [pure virtual] |
Returns the width of the fragment in pixels.
virtual unsigned int GetHeight | ( | ) | const [pure virtual] |
Returns the height of the fragment in pixels.
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.
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. |
out_pScanline | The buffer where the scanline data should be written. |