MViewportRenderer Class Reference
[OpenMayaRender - API module for rendering]

#include <MViewportRenderer.h>

Collaboration diagram for MViewportRenderer:

Collaboration graph
[legend]

List of all members.


Detailed Description

Base class for hardware viewport renderers.

MViewportRenderer is a class which represents a hardware viewport renderer.

Examples:

D3DViewportRenderer.cpp, D3DViewportRenderer.h, OpenGLViewportRenderer.cpp, and OpenGLViewportRenderer.h.


Public Types

enum  RenderingAPI { kOpenGL, kDirect3D, kSoftware }
 API used for rendering. More...
enum  RenderingOverride { kNoOverride, kOverrideAllDrawing }
 Override status. More...

Public Member Functions

 MViewportRenderer (const MString &name)
 Constructor.
virtual ~MViewportRenderer ()
 Destructor.
virtual MStatus initialize ()=0
 Renderer initialization. Must be overridden.
virtual MStatus uninitialize ()=0
 Renderer de-initialization. Must be overridden.
virtual MStatus render (const MRenderingInfo &info)=0
 Rendering method. Must be overridden.
virtual bool nativelySupports (MViewportRenderer::RenderingAPI api, float version)=0
virtual bool override (MViewportRenderer::RenderingOverride override)=0
 Check if override exists.
MStatus registerRenderer () const
MStatus deregisterRenderer () const
const MStringname () const
const MStringUIname () const
void setUIName (const MString &name)
MViewportRenderer::RenderingOverride renderingOverride () const
void setRenderingOverride (RenderingOverride override)

Friends

class MHardwareRenderer

Member Enumeration Documentation

API used for rendering.

Enumerator:
kOpenGL  Renderer uses hardware OpenGL for rendering.
kDirect3D  Renderer uses hardware Direct3D for rendering.
kSoftware  Renderer renders using software.

Override status.

Enumerator:
kNoOverride  Override nothing.
kOverrideAllDrawing  Override all drawing.


Constructor & Destructor Documentation

MViewportRenderer::MViewportRenderer ( const MString name  ) 

Constructor.

Constructor. By default the user interface name is set to be the internal name. The user is free to change the UI. The internal name cannot be changed once set.

Parameters:
[in] name internal name of the renderer

MViewportRenderer::~MViewportRenderer (  )  [virtual]

Destructor.

Class destructor.


Member Function Documentation

MStatus MViewportRenderer::initialize (  )  [pure virtual]

Renderer initialization. Must be overridden.

This method gets called to allow the renderer to perform a one time initialization. The corresponding method for cleanup is uninitialize().

Initialization is called if and only if the renderer has been registered. See register() method.

Returns:
MStatus::kSuccess : if execution was successful.
Examples:

MStatus MViewportRenderer::uninitialize (  )  [pure virtual]

Renderer de-initialization. Must be overridden.

This method gets called to allow the renderer to perform a one time de-initialization. The corresponding method for cleanup is initialize().

Returns:
MStatus::kSuccess : if execution was successful.
Examples:

MStatus MViewportRenderer::render ( const MRenderingInfo info  )  [pure virtual]

Rendering method. Must be overridden.

This method gets called to allow the renderer to perform rendering. It will be called whenever the viewport to which it is registered, requires a refresh.

Returns:
MStatus::kSuccess : if execution was successful.
Examples:

bool MViewportRenderer::nativelySupports ( MViewportRenderer::RenderingAPI  api,
float  version 
) [pure virtual]

Query the native rendering API's supported by this renderer. Must be overridden.

Query the renderer to see if the renderer can natively support a specific API and API version number. This is to provide compatibility checks between the drawing API used for the render target of this renderer, and the renderer itself.

As an example the render target may be using OpenGL natively while the renderer associated with the render target is using Direct3D. In this case the method should return false.

As an example the render target may be using Direct3D version K natively while the renderer associated with the render target is using Direct3D version L. In this case the method may return false.

Parameters:
[in] api rendering API natively used by the render target
[in] version rendering API version of the API natively used by the render target
Returns:
MViewportRenderer::RenderingAPI : rendering API.
Examples:

bool MViewportRenderer::override ( MViewportRenderer::RenderingOverride  override  )  [pure virtual]

Check if override exists.

This method gets called to query the renderer to see if it has a given type of render target override.

Parameters:
[in] override render target override
Returns:
true if the renderer overrides the render target override.

MStatus MViewportRenderer::registerRenderer (  )  const

Register the renderer. Registration should occur when the plugin is initialized. A renderer will be available for usage from 3d modeling viewports if and only if it has been registered.

Additionally, the initialization method initialize() will be made only if a renderer has been registered.

Returns:
MStatus::kSuccess : if execution was successful.

MStatus MViewportRenderer::deregisterRenderer (  )  const

Deregister the renderer. Deregistration should occur when the plugin is unloaded.

Returns:
MStatus::kSuccess : if execution was successful.

const MString & MViewportRenderer::name (  )  const

Return the internal name of the renderer

Returns:
renderer name

const MString & MViewportRenderer::UIname (  )  const

Return the user interface name of the renderer

Returns:
UI renderer name

void MViewportRenderer::setUIName ( const MString name  ) 

Set the user interface name of the renderer.

Parameters:
[in] name name to set

MViewportRenderer::RenderingOverride MViewportRenderer::renderingOverride (  )  const

Get the rendering API version number

Returns:
API version number.

void MViewportRenderer::setRenderingOverride ( RenderingOverride  override  ) 

Set the rendering override for the renderer.

Parameters:
[in] override override value to set


Autodesk® Maya® 2009 © 1997-2008 Autodesk, Inc. All rights reserved. Generated with doxygen 1.5.6