MViewportRenderer Class Reference

#include <MViewportRenderer.h>

Class Description

Public Types

enum  RenderingAPI { kOpenGL, kDirect3D, kSoftware }
 API used for rendering. More...
 
enum  RenderingOverride { kNoOverride, kOverrideAllDrawing, kOverrideThenStandard, kOverrideThenUI }
 Override status. More...
 
enum  RenderingExclusion
 Rendering exclusions when RenderingOverride is kOverrideThenStandard.
 

Public Member Functions

 MViewportRenderer (const MString &name)
 Constructor. More...
 
virtual ~MViewportRenderer ()
 Destructor. More...
 
virtual MStatus initialize ()=0
 Renderer initialization. More...
 
virtual MStatus uninitialize ()=0
 Renderer cleanup. More...
 
virtual MStatus render (const MRenderingInfo &info)=0
 Method which does the actual rendering. More...
 
virtual bool nativelySupports (MViewportRenderer::RenderingAPI api, float version)=0
 Query the native rendering API's supported by this renderer. More...
 
virtual bool override (MViewportRenderer::RenderingOverride override)=0
 Check if override exists. More...
 
virtual unsigned int overrideThenStandardExclusion () const
 Rendering exclusion for standard pass of kOverrideThenStandard. More...
 
MStatus registerRenderer () const
 Register the renderer. More...
 
MStatus deregisterRenderer () const
 Deregister the renderer. More...
 
const MStringname () const
 Return the internal name of the renderer. More...
 
const MStringUIname () const
 Return the name of the renderer as it should appear to users. More...
 
void setUIName (const MString &name)
 Set the name of the renderer as it should appear to users. More...
 
MViewportRenderer::RenderingOverride renderingOverride () const
 Return the override status. More...
 
void setRenderingOverride (RenderingOverride override)
 Set the rendering override for the renderer. More...
 

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.

kOverrideThenStandard 

Override all drawing, then follow with a standard render pass.

kOverrideThenUI 

Override draw, then follow with a UI only render pass.

Constructor & Destructor Documentation

MViewportRenderer ( const MString name)

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]nameinternal name of the renderer
~MViewportRenderer ( )
virtual

Destructor.

Class destructor.

Member Function Documentation

MStatus initialize ( )
pure virtual

Renderer initialization.

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 uninitialize ( )
pure virtual

Renderer cleanup.

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 render ( const MRenderingInfo info)
pure virtual

Method which does the actual rendering.

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.

Parameters
[in]info
Returns
MStatus::kSuccess : if execution was successful.
+ Examples:
bool nativelySupports ( MViewportRenderer::RenderingAPI  api,
float  version 
)
pure virtual

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

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]apirendering API natively used by the render target
[in]versionrendering API version of the API natively used by the render target
Returns
MViewportRenderer::RenderingAPI : rendering API.
+ Examples:
bool 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]overriderender target override
Returns
true if the renderer overrides the render target override.
+ Examples:
unsigned int overrideThenStandardExclusion ( ) const
virtual

Rendering exclusion for standard pass of kOverrideThenStandard.

This method gets called to query the renderer to see what should be excluded from the standard pass when the RenderingOverride mode is kOverrideThenStandard.

If this method is not redefined by the derived class, it returns kExcludeAll.

Returns
A bitmask constructed from the RenderingExclusion enum.
+ Examples:
MStatus 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 deregisterRenderer ( ) const

Deregister the renderer.

Deregistration should occur when the plugin is unloaded.

Returns
MStatus::kSuccess : if execution was successful.
const MString & name ( ) const

Return the internal name of the renderer.

Returns
renderer name
const MString & UIname ( ) const

Return the name of the renderer as it should appear to users.

Returns
UI renderer name
void setUIName ( const MString name)

Set the name of the renderer as it should appear to users.

Parameters
[in]namename to set
MViewportRenderer::RenderingOverride renderingOverride ( ) const

Return the override status.

Returns
Override status.
void setRenderingOverride ( RenderingOverride  override)

Set the rendering override for the renderer.

Parameters
[in]overrideoverride value to set

The documentation for this class was generated from the following files:
  • MViewportRenderer.h
  • MViewportRenderer.cpp