This document is archived and information here might be outdated.  Recommended version.

IDynamicMapEvents.BeforeDynamicDraw Event (ArcObjects .NET 10.8 SDK)
ArcObjects Help for .NET developers > ArcObjects Help for .NET developers > ArcObjects namespaces > Display > ESRI.ArcGIS.Display > Interfaces > ID > IDynamicMapEvents Interface > IDynamicMapEvents.BeforeDynamicDraw Event
ArcGIS Developer Help

IDynamicMapEvents.BeforeDynamicDraw Event

Fired before the specified phase is drawn.

N/A Error in GetEventSigVB N/A Error in GetEventSigCS
HRESULT BeforeDynamicDraw(
  esriDynamicMapDrawPhase DynamicMapDrawPhase,
  IDisplay* Display,
  IDynamicDisplay* dynamicDisplay
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.


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