ArcObjects Library Reference (Display)  

IDynamicMapEvents.BeforeDynamicDraw Method

Fired before the specified phase is drawn.

[Visual Basic .NET]
Public Sub BeforeDynamicDraw ( _
    ByVal DynamicMapDrawPhase As esriDynamicMapDrawPhase, _
    ByVal Display As IDisplay, _
    ByVal dynamicDisplay As IDynamicDisplay _
)
[C#]
public void BeforeDynamicDraw (
    esriDynamicMapDrawPhase DynamicMapDrawPhase,
    IDisplay Display,
    IDynamicDisplay dynamicDisplay
);
[C++]
HRESULT BeforeDynamicDraw(
  esriDynamicMapDrawPhase DynamicMapDrawPhase,
  IDisplay* Display,
  IDynamicDisplay* dynamicDisplay
);
[C++]

Parameters

DynamicMapDrawPhase [in]

  DynamicMapDrawPhase is a parameter of type esriDynamicMapDrawPhase

Display [in]

  Display is a parameter of type IDisplay

dynamicDisplay [in]

  dynamicDisplay is a parameter of type IDynamicDisplay

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Remarks

The BeforeDynamicDraw event is getting fired with two different phases (enum esriDynamicMapDrawPhase). Each phase has a different meaning and usage:

  1. esriDMDPDynamicLayers – This is getting fired on each dynamic cycle that the Dynamic Map re-renders the scene. The BeforeDynamicDraw event is fired just before the first layer is rendered, and AfterDynamicDraw event is fired just after the last layer (including any Graphic Layer) is rendered.
    In this context, there is an active OpenGL Rendering context (with a preset rendering volume, viewport, etc).
    Use this context to plug-in any custom dynamic drawings with the DynamicDisplay API as well as with the OpenGL API. This context can be useful in order to draw dynamic elements behind or on top of the Layers and Graphics, which do not need to be associated with a layer.
  2. esriDMDPLayers – When the Dynamic Map is sensing that it needs to fetch tiles in order to be able to render the scene, the BeforeDynamicDraw will get fired. When the last missing tile will be available and rendered the AfterDynamicDraw event will get fired.
    Note that it is not valid to use the DynamicDisplay API, nor the OpenGL API in this context, since the OpenGL Rendering Context is not fully setup.
    Use this context if you need to monitor when the Dynamic Map is still in a process of fetching tiles for rendering the display.

See Also

IDynamicMapEvents Interface