# I3DExRendererBox Struct Reference
[External Interfaces]

Inheritance diagram for I3DExRendererBox:

List of all members.

## Public Types
enum | EAdvancedRednerCapabilities { kBumpMap = 0, kSpecularMap = 1, kNonPowerOfTwoTextureSize }
## Public Member Functions
virtual void MCCOMAPI | SetCamera (I3DShCamera *camera, const TBBox2D &viewPane)=0
virtual void MCCOMAPI | SetScene (I3DShScene *scene)=0
virtual void MCCOMAPI | SetWorkingBox (IWorkingBox *workingBox)=0
virtual void MCCOMAPI | DeleteRenderableCache (I3DShRenderable &renderable)=0
virtual void MCCOMAPI | PreDraw (SystWindowPtr awnd, const TMCRect &windowContentRect, const TMCRect &windowUpdateRect)=0
virtual void MCCOMAPI | DrawInstances (const TRenderableAndTfmArray &instances, const TRenderable2DArray &renderables2D)=0
virtual MCErr MCCOMAPI | PostDraw ()=0
virtual MCCOMErr MCCOMAPI | DrawOnScreen (SystWindowPtr awnd, const TMCRect &windowContentRect, const TMCRect &windowUpdateRect)=0
virtual MCCOMErr MCCOMAPI | DrawInGC (IMCGraphicContext *gc, const TMCRect &windowContentRect, const TMCRect &windowUpdateRect)=0
virtual void MCCOMAPI | SetRenderingMode (const InteractiveSettings::ERenderMode renderingMode)=0
virtual uint32 MCCOMAPI | GetRenderingMode ()=0
virtual void MCCOMAPI | GetRenderingModeIDs (TMCArray< ResourceID > &renderingModes)=0
virtual void MCCOMAPI | SetRenderActivity (const InteractiveSettings::ERenderActivity renderActivity)=0
virtual void MCCOMAPI | Set2DZoomAndPan (const TVector2 &zoom, const TVector2 &pan)=0
virtual void MCCOMAPI | Dehydrate ()=0
virtual void MCCOMAPI | Rehydrate ()=0
virtual MCCOMErr MCCOMAPI | PreDrawChannels (TMCPixelBucket *colorChannel, TMCPixelBucket *depthChannel, TMCPixelBucket *objectChannel, const boolean useAverageZ)=0
virtual boolean MCCOMAPI | MustDrawInSeparateWindow ()=0
virtual void | PrepareToDestroy ()=0
virtual void MCCOMAPI | SetPlaneImage (TMCPixelBucket *bucket, TMCPoint &startPoint)=0
virtual boolean MCCOMAPI | DoesSupportCapability (EAdvancedRednerCapabilities querriedCapability) const =0
virtual boolean MCCOMAPI | DoesRequireReRender () const =0
virtual void MCCOMAPI | GetRenderWindow (IShowBackBufferWindow **window, TMCRect &bounds)=0

## Detailed Description

A Renderer Box is a real time renderer used to display objects in the 3D view window. (For instance OpenGL is implemented as a renderer box.

## Member Enumeration Documentation

enum I3DExRendererBox::EAdvancedRednerCapabilities

Enumerator:

  kBumpMap |
  kSpecularMap |
  kNonPowerOfTwoTextureSize |

## Member Function Documentation

virtual void MCCOMAPI I3DExRendererBox::Dehydrate | ( |  | ) | `[pure virtual]`

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

Implemented in TBasicRendererBox.

virtual void MCCOMAPI I3DExRendererBox::DeleteRenderableCache | ( | I3DShRenderable & | renderable | ) | `[pure virtual]`

Delete a single renderable cache

Parameters:

  | renderable | : the renderable whose cache should be deleted

Implemented in TBasicRendererBox.

virtual boolean MCCOMAPI I3DExRendererBox::DoesRequireReRender | ( |  | ) | const`[pure virtual]`

virtual boolean MCCOMAPI I3DExRendererBox::DoesSupportCapability | ( | EAdvancedRednerCapabilities | querriedCapability | ) | const`[pure virtual]`

virtual MCCOMErr MCCOMAPI I3DExRendererBox::DrawInGC | ( | IMCGraphicContext * | gc,
|  | const TMCRect & | windowContentRect,
|  | const TMCRect & | windowUpdateRect |
| ) |  |  | `[pure 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

Implemented in TBasicRendererBox.

virtual void MCCOMAPI I3DExRendererBox::DrawInstances | ( | const TRenderableAndTfmArray & | instances,
|  | const TRenderable2DArray & | renderables2D |
| ) |  |  | `[pure 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

Implemented in TBasicRendererBox.

virtual MCCOMErr MCCOMAPI I3DExRendererBox::DrawOnScreen | ( | SystWindowPtr | awnd,
|  | const TMCRect & | windowContentRect,
|  | const TMCRect & | windowUpdateRect |
| ) |  |  | `[pure 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

Implemented in TBasicRendererBox.

virtual uint32 MCCOMAPI I3DExRendererBox::GetRenderingMode | ( |  | ) | `[pure virtual]`

Returns the current rendering mode

Returns:
  the current rendering mode

Implemented in TBasicRendererBox.

virtual void MCCOMAPI I3DExRendererBox::GetRenderingModeIDs | ( | TMCArray< ResourceID > & | renderingModes | ) | `[pure virtual]`

Returns the different rendering modes

Parameters:

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

Implemented in TBasicRendererBox.

virtual void MCCOMAPI I3DExRendererBox::GetRenderWindow | ( | IShowBackBufferWindow ** | window,
|  | TMCRect & | bounds |
| ) |  |  | `[pure virtual]`

virtual boolean MCCOMAPI I3DExRendererBox::MustDrawInSeparateWindow | ( |  | ) | `[pure 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

Implemented in TBasicRendererBox.

virtual MCErr MCCOMAPI I3DExRendererBox::PostDraw | ( |  | ) | `[pure virtual]`

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

Implemented in TBasicRendererBox.

virtual void MCCOMAPI I3DExRendererBox::PreDraw | ( | SystWindowPtr | awnd,
|  | const TMCRect & | windowContentRect,
|  | const TMCRect & | windowUpdateRect |
| ) |  |  | `[pure 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

Implemented in TBasicRendererBox.

virtual MCCOMErr MCCOMAPI I3DExRendererBox::PreDrawChannels | ( | TMCPixelBucket * | colorChannel,
|  | TMCPixelBucket * | depthChannel,
|  | TMCPixelBucket * | objectChannel,
|  | const boolean | useAverageZ |
| ) |  |  | `[pure 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

Implemented in TBasicRendererBox.

virtual void I3DExRendererBox::PrepareToDestroy | ( |  | ) | `[pure 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.

Implemented in TBasicRendererBox.

virtual void MCCOMAPI I3DExRendererBox::Rehydrate | ( |  | ) | `[pure virtual]`

Called when the renderer must be active again

Implemented in TBasicRendererBox.

virtual void MCCOMAPI I3DExRendererBox::Set2DZoomAndPan | ( | const TVector2 & | zoom,
|  | const TVector2 & | pan |
| ) |  |  | `[pure virtual]`

Sets the zoom and pan

Parameters:

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

Implemented in TBasicRendererBox.

virtual void MCCOMAPI I3DExRendererBox::SetCamera | ( | I3DShCamera * | camera,
|  | const TBBox2D & | viewPane |
| ) |  |  | `[pure 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).

Implemented in TBasicRendererBox.

virtual void MCCOMAPI I3DExRendererBox::SetPlaneImage | ( | TMCPixelBucket * | bucket,
|  | TMCPoint & | startPoint |
| ) |  |  | `[pure 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

Implemented in TBasicRendererBox.

virtual void MCCOMAPI I3DExRendererBox::SetRenderActivity | ( | const InteractiveSettings::ERenderActivity | renderActivity | ) | `[pure virtual]`

Tell the renderer about the render activity taking place

Parameters:

  | renderActivity,: | the rendering activity

Implemented in TBasicRendererBox.

virtual void MCCOMAPI I3DExRendererBox::SetRenderingMode | ( | const InteractiveSettings::ERenderMode | renderingMode | ) | `[pure virtual]`

Sets the rendering mode

Parameters:

  | renderingMode | : the new rendering mode

Implemented in TBasicRendererBox.

virtual void MCCOMAPI I3DExRendererBox::SetScene | ( | I3DShScene * | scene | ) | `[pure virtual]`

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

Parameters:

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

Implemented in TBasicRendererBox.

virtual void MCCOMAPI I3DExRendererBox::SetWorkingBox | ( | IWorkingBox * | workingBox | ) | `[pure 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)

Implemented in TBasicRendererBox.

The documentation for this struct was generated from the following file:

- I3DExRendererBox.h