TBasicRendererBox Class Reference
[Base Classes for plugins]

Inheritance diagram for TBasicRendererBox:
TBasicDataExchanger I3DExRendererBox TBasicUnknown IExDataExchanger IExDataExchanger TMCObject IMCUnknown IMCUnknown IMCUnknown

List of all members.

Public Member Functions

virtual MCErr MCCOMAPI QueryInterface (const MCIID &riid, void **ppvObj)
virtual uint32 MCCOMAPI AddRef ()
virtual void MCCOMAPI Clone (IExDataExchanger **clonedObject, IMCUnknown *pUnkOuter)
virtual boolean MCCOMAPI IsEqual (IExDataExchanger *otherDataExchanger)
virtual MCCOMErr MCCOMAPI GetParameter (IDType keyword, void *parameter)
virtual MCCOMErr MCCOMAPI SetParameter (IDType keyword, void *parameter)
virtual MCCOMErr MCCOMAPI ExtensionDataChanged ()
virtual MCCOMErr MCCOMAPI HandleEvent (MessageID message, IMFResponder *source, void *data)
virtual MCCOMErr MCCOMAPI SimpleHandleEvent (MessageID message, IMFResponder *source, void *data)
virtual void MCCOMAPI GetUIHandler (TUIHandlerFunctionPtr &outHandler)
virtual int16 MCCOMAPI GetResID ()
virtual int16 MCCOMAPI GetMiniPartID ()
virtual MCCOMErr MCCOMAPI OverridesMiniPartID ()
virtual MCCOMErr MCCOMAPI InitComponent ()
virtual MCCOMErr MCCOMAPI CopyComponentExtraData (IExDataExchanger *dest)
virtual void MCCOMAPI SetCamera (I3DShCamera *camera, const TBBox2D &viewPane)
virtual void MCCOMAPI SetScene (I3DShScene *scene)
virtual void MCCOMAPI SetWorkingBox (IWorkingBox *workingBox)
virtual void MCCOMAPI DeleteRenderableCache (I3DShRenderable &renderable)
virtual void MCCOMAPI PreDraw (SystWindowPtr awnd, const TMCRect &windowContentRect, const TMCRect &windowUpdateRect)
virtual void MCCOMAPI DrawInstances (const TRenderableAndTfmArray &instances, const TRenderable2DArray &renderables2D)
virtual MCErr MCCOMAPI PostDraw ()
virtual MCCOMErr MCCOMAPI DrawOnScreen (SystWindowPtr awnd, const TMCRect &windowContentRect, const TMCRect &windowUpdateRect)
virtual MCCOMErr MCCOMAPI DrawInGC (IMCGraphicContext *gc, const TMCRect &windowContentRect, const TMCRect &windowUpdateRect)
virtual void MCCOMAPI SetRenderingMode (const InteractiveSettings::ERenderMode renderingMode)
virtual uint32 MCCOMAPI GetRenderingMode ()
virtual void MCCOMAPI GetRenderingModeIDs (TMCArray< ResourceID > &renderingModes)
virtual void MCCOMAPI SetRenderActivity (const InteractiveSettings::ERenderActivity renderActivity)
virtual void MCCOMAPI Set2DZoomAndPan (const TVector2 &zoom, const TVector2 &pan)
virtual void MCCOMAPI Dehydrate ()
virtual void MCCOMAPI Rehydrate ()
virtual MCCOMErr MCCOMAPI PreDrawChannels (TMCPixelBucket *colorChannel, TMCPixelBucket *depthChannel, TMCPixelBucket *objectChannel, const boolean useAverageZ)
virtual boolean MCCOMAPI MustDrawInSeparateWindow ()
virtual void PrepareToDestroy ()
virtual void MCCOMAPI SetPlaneImage (TMCPixelBucket *bucket, TMCPoint &startPoint)

Detailed Description

Basic Renderer Box class. Derive from this for a default implementation of I3DExRendererBox

See also:
I3DExRendererBox

Member Function Documentation

virtual uint32 MCCOMAPI TBasicRendererBox::AddRef (  )  [inline, virtual]

Increments the reference count of the object

Reimplemented from TBasicDataExchanger.

virtual void MCCOMAPI TBasicRendererBox::Clone ( IExDataExchanger **  clonedObject,
IMCUnknown pUnkOuter 
) [inline, virtual]

Creates a copy of an external component. You only need to implement this method if your object has data that are not stored in its Parameter Map (Pmap).

Parameters:
clonedObject : the resulting copy of the current object
pUnkOuter : the internal component that needs to be linked to your object (call SetControllingUnknown(pUnkOuter) on the clone)

Reimplemented from TBasicDataExchanger.

virtual MCCOMErr MCCOMAPI TBasicRendererBox::CopyComponentExtraData ( IExDataExchanger dest  )  [inline, virtual]

Some components can contain data that aren't part of its pMap but need to copy during the Undo/Redo action for example. Implement this method to copy these "outside the pmap" data. Typicaly, it should copy the extra data that are cloned in the Clone method implementation.

Parameters:
dest The component where the date should be copied.

Reimplemented from TBasicDataExchanger.

virtual void MCCOMAPI TBasicRendererBox::Dehydrate (  )  [virtual]

Free all render buffers to dehydrate InteractiveRenderer when it's not activated

Implements I3DExRendererBox.

virtual void MCCOMAPI TBasicRendererBox::DeleteRenderableCache ( I3DShRenderable renderable  )  [virtual]

Delete a single renderable cache

Parameters:
renderable : the renderable whose cache should be deleted

Implements I3DExRendererBox.

virtual MCCOMErr MCCOMAPI TBasicRendererBox::DrawInGC ( IMCGraphicContext gc,
const TMCRect windowContentRect,
const TMCRect windowUpdateRect 
) [virtual]

Update the screen without rerendering

Parameters:
gc,: graphic context where the rendering should be blitted
windowContentRect,: Rectangle of the window content
windowUpdateRect,: Rectangle that needs to be updated
Returns:
MC_S_OK if the blit succeeded

Implements I3DExRendererBox.

virtual void MCCOMAPI TBasicRendererBox::DrawInstances ( const TRenderableAndTfmArray instances,
const TRenderable2DArray renderables2D 
) [virtual]

Render the instances (should be called after PreDraw())

Parameters:
instances : array of renderables that needs to be drawn
renderables2D : array of renderables 2D that needs to be drawn

Implements I3DExRendererBox.

virtual MCCOMErr MCCOMAPI TBasicRendererBox::DrawOnScreen ( SystWindowPtr  awnd,
const TMCRect windowContentRect,
const TMCRect windowUpdateRect 
) [virtual]

This is an opportunity for the renderer to update the screen without re-rendering

Parameters:
awnd,: Window where the rendering should be blitted.
windowContentRect,: Rectangle of the window content
windowUpdateRect,: Rectangle that needs to be updated
Returns:
MC_S_OK if the blit succeeded

Implements I3DExRendererBox.

virtual MCCOMErr MCCOMAPI TBasicRendererBox::ExtensionDataChanged (  )  [inline, virtual]

Called each time a parameter of the parameter map (Pmap) is modified. This should only be used to invalidate caches and should be quick since it can be called many times.

Reimplemented from TBasicDataExchanger.

virtual int16 MCCOMAPI TBasicRendererBox::GetMiniPartID (  )  [inline, virtual]

Returns the resource ID of the NodePart used for the MiniPart of the component.
If you want this value to be used, implement OverridesMiniPartID.

Reimplemented from TBasicDataExchanger.

virtual MCCOMErr MCCOMAPI TBasicRendererBox::GetParameter ( IDType  keyword,
void *  parameter 
) [inline, virtual]

Returns the value of a given parameter of this dataExchanger. This function is called when the shell cannot find the given parameter in the Parameter Map (Pmap) of the component You need to implement this method only if your object has parameters that are not inside the parameter map.

Parameters:
keyword The ID of the parameter.
parameter A pointer to buffer where the value of the parameter can be copied.

Reimplemented from TBasicDataExchanger.

virtual uint32 MCCOMAPI TBasicRendererBox::GetRenderingMode (  )  [virtual]

Returns the current rendering mode

Returns:
the current rendering mode

Implements I3DExRendererBox.

virtual void MCCOMAPI TBasicRendererBox::GetRenderingModeIDs ( TMCArray< ResourceID > &  renderingModes  )  [virtual]

Returns the different rendering modes

Parameters:
renderingModes,: returns the list of rendering modes supported by this rendering

Implements I3DExRendererBox.

virtual int16 MCCOMAPI TBasicRendererBox::GetResID (  )  [inline, virtual]

Returns the resource ID of the NodePart used for the properties of the component.
Return 0 to use the default node id (the same number than the one used for the 'COMP' resource). This is the default.
Return -1 if you want an auto pmap (very rarely needed)

Each implementation MUST always return the same value !

Reimplemented from TBasicDataExchanger.

virtual void MCCOMAPI TBasicRendererBox::GetUIHandler ( TUIHandlerFunctionPtr outHandler  )  [inline, virtual]

Returns a static function that handles complex ui events. That function is allowed to change the UI, but it must take into account all the components and use the multivalue mode for parts.

See also:
LoadMultiValue (in MFPartUtilities.h) Each implementation MUST always return the same handler ! If needed, you can implement both GetUIHandler and SimpleHandleEvent.

Reimplemented from TBasicDataExchanger.

virtual MCCOMErr MCCOMAPI TBasicRendererBox::HandleEvent ( MessageID  message,
IMFResponder source,
void *  data 
) [inline, virtual]
Deprecated:
(doesn't work with multiple selections)

Reimplemented from TBasicDataExchanger.

virtual MCCOMErr MCCOMAPI TBasicRendererBox::InitComponent (  )  [inline, virtual]

Set the data of a component to their default value Returns kNotImplementedError if not implemented, MC_S_OK otherwise.

Reimplemented from TBasicDataExchanger.

virtual boolean MCCOMAPI TBasicRendererBox::IsEqual ( IExDataExchanger otherDataExchanger  )  [inline, virtual]

Returns true if the two pointers are referring to the same data exchanger. When IsEqual is called you can assume that otherDataExchanger is of the same type as "this"

Parameters:
otherDataExchanger the extension to which it will be compared

Reimplemented from TBasicDataExchanger.

virtual boolean MCCOMAPI TBasicRendererBox::MustDrawInSeparateWindow (  )  [inline, virtual]

Tells the application if the renderer needs to draw in its own platform window

Returns:
True if the renderer needs to draw in its own platform window

Implements I3DExRendererBox.

virtual MCCOMErr MCCOMAPI TBasicRendererBox::OverridesMiniPartID (  )  [inline, virtual]

Returns the resource ID of the NodePart used for the properties of the component.
Return MC_E_NOTIMPL to use the default node id (the same number than the one used for the 'COMP' resource). This is the default.
Return MC_S_OK if you want to use the ID from GetMiniPartID.

Reimplemented from TBasicDataExchanger.

virtual MCErr MCCOMAPI TBasicRendererBox::PostDraw (  )  [virtual]

Finishes the rendering (should be called after DrawInstances())

Implements I3DExRendererBox.

virtual void MCCOMAPI TBasicRendererBox::PreDraw ( SystWindowPtr  awnd,
const TMCRect windowContentRect,
const TMCRect windowUpdateRect 
) [virtual]

Called at the beginning of the rendering

Parameters:
awnd : pointer to a system window ( specific to the platform )
windowContentRect : rectangle corresponding to the content of the window
windowUpdateRect : rectangle that needs to be rendered

Implements I3DExRendererBox.

virtual MCCOMErr MCCOMAPI TBasicRendererBox::PreDrawChannels ( TMCPixelBucket colorChannel,
TMCPixelBucket depthChannel,
TMCPixelBucket objectChannel,
const boolean  useAverageZ 
) [virtual]

An optional call that the default interactive renderer supports. The caller supplies pixel buckets to render channel data from the renderer into. Only two channels at a time, so multiple passes may be required to generate the various channels. This call is followed with DrawInstances, PostDraw.

Note:
This call is only supported by software renderers
Parameters:
colorChannel,: A pointer to the bucket where the color channel must be stored (can be NULL)
depthChannel,: A pointer to the bucket where the depth channel must be stored (can be NULL)
objectChannel,: A pointer to the bucket where the object channel must be stored (can be NULL)
useAverageZ,: If true the depth channel will be filled with the average value of z

Implements I3DExRendererBox.

virtual void TBasicRendererBox::PrepareToDestroy (  )  [virtual]

Called by the shell to notify the renderer that it is not going to be used anymore. This allow the renderer to delete caches and references to windows or context.

Implements I3DExRendererBox.

virtual MCErr MCCOMAPI TBasicRendererBox::QueryInterface ( const MCIID riid,
void **  ppvObj 
) [virtual]

Check if the object supports a given interface and returns a pointer to that interface if it does. Note that QueryInterface will increment the reference count of the object by one if the interface is found.

Parameters:
riid GUID of the interface
ppvObj A pointer to the pointer being returned.

Reimplemented from TBasicDataExchanger.

virtual void MCCOMAPI TBasicRendererBox::Rehydrate (  )  [virtual]

Called when the renderer must be active again

Implements I3DExRendererBox.

virtual void MCCOMAPI TBasicRendererBox::Set2DZoomAndPan ( const TVector2 zoom,
const TVector2 pan 
) [virtual]

Sets the zoom and pan

Parameters:
zoom,: the zoom to be set
pan,: the pan to be set

Implements I3DExRendererBox.

virtual void MCCOMAPI TBasicRendererBox::SetCamera ( I3DShCamera camera,
const TBBox2D viewPane 
) [virtual]

Called by the 3D database to inform the renderer that the rendering camera changed

Parameters:
camera,: The camera used for the rendering
viewPane,: The coordinates of the view pane (be careful this is not in camera coordinates! You need to apply the zoom and pan to the camera coordinates).

Implements I3DExRendererBox.

virtual MCCOMErr MCCOMAPI TBasicRendererBox::SetParameter ( IDType  keyword,
void *  parameter 
) [inline, virtual]

Sets the value of a parameter. You need to implement this method only if your object has parameters that are not inside the parameter map.

Parameters:
keyword The ID of the parameter.
parameter A pointer to buffer where the value of the parameter can be copied.

Reimplemented from TBasicDataExchanger.

virtual void MCCOMAPI TBasicRendererBox::SetPlaneImage ( TMCPixelBucket bucket,
TMCPoint startPoint 
) [inline, virtual]

Sets a pointer to an image to be display before display the scene in real time rendering. This image won't be rendered in the final rendering, it's just an helper image.

Note that the Sree software rendere does not support this mode

Parameters:
bucket pointer to the image
startPoint in window where to start the rendering

Implements I3DExRendererBox.

virtual void MCCOMAPI TBasicRendererBox::SetRenderActivity ( const InteractiveSettings::ERenderActivity  renderActivity  )  [virtual]

Tell the renderer about the render activity taking place

Parameters:
renderActivity,: the rendering activity

Implements I3DExRendererBox.

virtual void MCCOMAPI TBasicRendererBox::SetRenderingMode ( const InteractiveSettings::ERenderMode  renderingMode  )  [virtual]

Sets the rendering mode

Parameters:
renderingMode : the new rendering mode

Implements I3DExRendererBox.

virtual void MCCOMAPI TBasicRendererBox::SetScene ( I3DShScene scene  )  [virtual]

Sets the scene that is going to rendered. (used to get the backdrop)

Parameters:
scene,: the scene that is going to be rendered.

Implements I3DExRendererBox.

virtual void MCCOMAPI TBasicRendererBox::SetWorkingBox ( IWorkingBox workingBox  )  [virtual]

To set the working box information, don't forget to invalidate renderer if it changes

Parameters:
workingBox : a pointer to the working box (can be NULL)

Implements I3DExRendererBox.

virtual MCCOMErr MCCOMAPI TBasicRendererBox::SimpleHandleEvent ( MessageID  message,
IMFResponder source,
void *  data 
) [inline, virtual]

Replaces the deprecated HandleEvent ONLY IN SIMPLE CASES. This function MUST NOT change the user interface (its called for every selected component). Example of allowed use : if (source && (source->GetInstanceID() == 'shfl')) { fPMap.fSeed = gShellUtilities->TickCount(); ExtensionDataChanged(); }

Parameters:
message,: the ID of the message being sent (All MessageIDs are preceeded with "kMsg")
source,: the part that sent the message (can be NULL !)
data,: a pointer to private data corresponding to the message

Reimplemented from TBasicDataExchanger.


The documentation for this class was generated from the following file:
Generated on Mon Apr 26 22:47:58 2010 for Carrara SDK Doc by  doxygen 1.6.3