#include
<MRenderView.h>
List of all
members.
Detailed Description
Static class providing Render View API functions.
This class provides access to the Maya Render View. The class
allows plugins to send image data to the Render View in the same
way that the Maya renderer does. Either a "full render" or a
"region render" can be performed. In a full render, the Render View
expects to receive pixel data that fills the entire image, while a
region render expects only updates to a specified image region.
Usage
To send an image to the Render View, use the following sequence
of calls:
- Call doesRenderEditorExist()
to make sure that a Render View exists. If this returns false, then
Maya is operating in batch mode.
- Call setCurrentCamera()
to specify the name of the camera that is being rendered.
- Call startRender()
or startRegionRender()
to inform the Render View that you are about to start sending
either a full image or a region update. When region rendering, the
getRenderRegion()
method can be used to retrieve the currently selected marquee
region in the Render View.
- The image or image region is sent to the Render View as a
series of one or more tiles. For each tile, send the tile's image
data using the updatePixels()
method. Call the refresh()
method to refresh the Render View after each tile has been
sent.
- Call endRender()
to signal the Render View that all image data has been sent.
|
Static Public Member Functions
|
static bool |
doesRenderEditorExist
() |
static MStatus |
setCurrentCamera
(MDagPath
&camera) |
static MStatus |
getRenderRegion
(unsigned int &left, unsigned int &right, unsigned int
&bottom, unsigned int &top) |
static MStatus |
startRender
(unsigned int width, unsigned int height, bool
doNotClearBackground=false, bool immediateFeedback=false) |
static MStatus |
startRegionRender
(unsigned int imageWidth, unsigned int imageHeight, unsigned int
regionLeft, unsigned int regionRight, unsigned int regionBottom,
unsigned int regionTop, bool doNotClearBackground=false, bool
immediateFeedback=false) |
static MStatus |
updatePixels
(unsigned int left, unsigned int right, unsigned int bottom,
unsigned int top, RV_PIXEL *pPixels, bool
isHdr=false) |
static MStatus |
refresh
(unsigned int left, unsigned int right, unsigned int bottom,
unsigned int top) |
static MStatus |
endRender
() |
Member Function Documentation
bool MRenderView::doesRenderEditorExist |
( |
|
) |
[static] |
Determines whether or not a Render View exists to receive image
data. If this function returns false, then Maya is currently
running in batch mode, so it would be pointless to try to send data
to the Render View.
- Returns:
-
- true if the Render View exists.
- false otherwise.
MStatus
MRenderView::setCurrentCamera |
( |
MDagPath & |
currentCamera |
) |
[static] |
Informs the render client of the camera that will be performing
the rendering.
- Returns:
-
MStatus MRenderView::getRenderRegion |
( |
unsigned int & |
left, |
|
|
unsigned int & |
right, |
|
|
unsigned int & |
bottom, |
|
|
unsigned int & |
top |
|
|
) |
|
|
[static] |
Retrieves the currently selected Render Region in Maya's Render
View. The region extends from the bottom-left corner (left,bottom)
to the upper-right corner (right,top) inclusive (i.e. the row y=top
and column x=right are part of the region).
- Parameters:
-
[out] |
left |
receives the left extent of the region |
[out] |
right |
receives the right extent of the region |
[out] |
bottom |
receives the bottom extent of the region |
[out] |
top |
receives the top extent of the region |
- Returns:
-
- MS::kSuccess
Operation was successful, returned values are valid.
- MS::kFailure Operation failed
because no Render View existed.
MStatus MRenderView::startRender |
( |
unsigned int |
width, |
|
|
unsigned int |
height, |
|
|
bool |
doNotClearBackground =
false , |
|
|
bool |
immediateFeedback =
false |
|
|
) |
|
|
[static] |
Informs the Render View that a full image render is about to
begin. The entire Render View buffer will be cleared in
anticipation of receiving an entire image.
- Parameters:
-
[in] |
width |
width of the image to be sent to the Render View (must be
greater than zero). |
[in] |
height |
height of the image to be sent to the Render View (must be
greater than zero). |
[in] |
doNotClearBackground |
When true, the Render View is not cleared before starting to
draw. Default (false) is to clear the Render View. |
[in] |
immediateFeedback |
When true, each call to refresh()
will immediately redraw the Render View. Default (false) is to wait
at least two seconds between redraws. |
- Returns:
-
MStatus
MRenderView::startRegionRender |
( |
unsigned int |
imageWidth, |
|
|
unsigned int |
imageHeight, |
|
|
unsigned int |
regionLeft, |
|
|
unsigned int |
regionRight, |
|
|
unsigned int |
regionBottom, |
|
|
unsigned int |
regionTop, |
|
|
bool |
doNotClearBackground =
false , |
|
|
bool |
immediateFeedback =
false |
|
|
) |
|
|
[static] |
Informs the Render View that a region render is about to begin.
The specified region will be cleared in anticipation of receiving
new image data for it. The specified region must lie within the
image region (0,0)->(imageWidth-1,imageHeight-1). The region
'left' coordinate must be less than the region 'right' coordinate,
and the region 'bottom' coordinate must be less than the region
'top' coordinate.
- Parameters:
-
[in] |
imageWidth |
width of the image in which the region is embedded. (must be
greater than zero). |
[in] |
imageHeight |
height of the image in which the region is embedded (must be
greater than zero). |
[in] |
regionLeft |
left extent of the region. |
[in] |
regionRight |
right extent of the region. The column x=regionRight is
considered part of the region. |
[in] |
regionBottom |
bottom extent of the region. |
[in] |
regionTop |
top extent of the region. The row y=regionTop is considered
part of the region. |
[in] |
doNotClearBackground |
When true, the Render View is not cleared before starting to
draw. Default (false) is to clear the Render View. |
[in] |
immediateFeedback |
When true, each call to refresh()
will immediately redraw the Render View. Default (false) is to wait
at least two seconds between redraws. |
- Returns:
-
- MS::kSuccess
Operation was successful.
- MS::kInvalidParameter
Operation failed because either the specified image width/height or
the specified image region was invalid.
- MS::kFailure Operation failed
because no Render View existed.
MStatus MRenderView::updatePixels |
( |
unsigned int |
left, |
|
|
unsigned int |
right, |
|
|
unsigned int |
bottom, |
|
|
unsigned int |
top, |
|
|
RV_PIXEL * |
pPixels, |
|
|
bool |
isHdr = false |
|
|
) |
|
|
[static] |
Sends a block of pixels to the Render View. Pixel colors are
represented as 4-channel floating point values. For low dynamic
range images, color values are in standard RGB (sRGB) colorspace,
and in the range (0,255.0). For high dynamic range (HDR) images,
the range is unbounded, and values are in linear CIE XYZ color
space, with the X, Y, and Z values stored respectively in the R, G
and B fields of the RV_PIXEL structure. Alpha values
for HDR images are expected to be in the range (0,1). Out of range
alpha values are not clamped, and may behave unexpectedly.
- Parameters:
-
[in] |
left |
left extent of the update region. |
[in] |
right |
right extent of the update region. The column x=right is
considered part of the region. |
[in] |
bottom |
bottom extent of the update region. |
[in] |
top |
top extent of the update region. The row y=regionTop is
considered part of the region. |
[in] |
pPixels |
buffer containing the pixel data for the image. The buffer
should contain (right-left+1)*(top-bottom+1) pixels. |
[in] |
isHdr |
indicates whether the image has high dynamic range |
- Returns:
-
- MS::kSuccess
Operation was successful.
- MS::kInvalidParameter
Operation failed, either because the specified update region was
invalid, or because the specified pixel buffer was NULL.
- MS::kFailure Operation failed
because no Render View existed.
MStatus MRenderView::refresh |
( |
unsigned int |
left, |
|
|
unsigned int |
right, |
|
|
unsigned int |
bottom, |
|
|
unsigned int |
top |
|
|
) |
|
|
[static] |
Requests that the Render View refresh the display of a
particular region of the displayed image.
- Parameters:
-
[in] |
left |
left extent of the update region. |
[in] |
right |
right extent of the update region. The column x=right is
considered part of the region. |
[in] |
bottom |
bottom extent of the update region. |
[in] |
top |
top extent of the update region. The row y=regionTop is
considered part of the region. |
- Returns:
-
MStatus MRenderView::endRender |
( |
|
) |
[static] |
Informs the Render View that the current render has completed.
The Render View is refreshed and no further updates are
accepted.
- Returns:
-