WindowKey

class HPS.WindowKey : public HPS.SegmentKey

The WindowKey class is a smart pointer to a database object. Windows are special segments that are backed by a driver instance and a physical window. Some operations and attributes can only be performed or set from window keys. The WindowKey class itself is a base class for more specific window types (application windows, off-screen windows, stand-alone windows).

Subclassed by HPS.ApplicationWindowKey, HPS.OffScreenWindowKey, HPS.StandAloneWindowKey

Public Functions

bool ConvertCoordinate (HPS.Coordinate.Space in_space, HPS.Point in_point, HPS.Coordinate.Space in_output_space, out HPS.Point out_point)

Converts the point in_point from in_space to in_output_space using the transforms associated with this window. Returns success.

override void Dispose ()
ulong FindFonts (out HPS.FontSearchResults out_results)

Searches the system for fonts.

Param out_results

Out parameter that contains results of the font search

Return

The number of fonts found

ulong FindHighlights (HPS.HighlightSearchOptionsKit in_options, out HPS.HighlightSearchResults out_results)

Searches for any highlights under this WindowKey.

Param in_options

Search options constraining what type of highlights to look for. If this is empty, all highlights will be returned.

Param out_results

The key paths under the window that are highlighted with the given search options.

Return

The number of highlighted key paths found.

ulong FindHighlights (HPS.KeyPath in_key_path, HPS.HighlightSearch.Scope in_scope, HPS.HighlightSearchOptionsKit in_options, out HPS.HighlightSearchResults out_results)

Searches for any highlights under this WindowKey.

Param in_key_path

The key path to scope this highlight search by.

Param in_scope

Determines how the scope is interpreted during a highlight search.

Param in_options

Search options constraining what type of highlights to look for. If this is empty, all highlights will be returned.

Param out_results

The key paths under the window that are highlighted with the given search options.

Return

The number of highlighted key paths found.

HPS.DebuggingControl GetDebuggingControl ()

Returns a control that allows the user to manipulate and query details of the debugging attribute on this segment.

HPS.EventDispatcher GetEventDispatcher ()

Returns a control that allows the user to interact with events in various ways.

HPS.HighlightControl GetHighlightControl ()

Returns a control that allows the user to highlight segments or geometry in this window.

HPS.PostProcessEffectsControl GetPostProcessEffectsControl ()

Returns a control that allows the user to manipulate and query details of the post-process effects attribute on this segment.

HPS.SelectionControl GetSelectionControl ()

Returns a control that allows the user to perform selections in this window.

HPS.SelectionOptionsControl GetSelectionOptionsControl ()

Returns a control that allows the user to manipulate and query details of the selection options on this window.

HPS.UpdateOptionsControl GetUpdateOptionsControl ()

Returns a control that allows the user to change update options in this window.

HPS.WindowInfoControl GetWindowInfoControl ()

Returns a control that allows the user to query various window properties, including size, aspect ratio, resolution, etc.

override HPS.Type ObjectType ()

This function returns the type the object, as declared (if the object is derived, this does not give the true type of the derived object).

Return

The declared type of the object in question, which may differ from the true, underlying type.

HPS.WindowKey SetDebugging (HPS.DebuggingKit in_kit)

Sets the debugging attributes designated by in_kit on this segment.

HPS.WindowKey SetDriverEventHandler (HPS.DriverEventHandler in_handler, IntPtr in_type)

Sets the specified driver event handler as the handler for the specified driver event type on this window.

Param in_handler

Driver event handler to be set.

Param in_type

Type of driver event to add the handler for.

HPS.WindowKey SetPostProcessEffects (HPS.PostProcessEffectsKit in_kit)

Sets the post-process effects attributes designated by in_kit on this segment.

HPS.WindowKey SetSelectionOptions (HPS.SelectionOptionsKit in_kit)

Sets the options that will be used by default for selections performed from this window. Note: these options cannot be unset.

HPS.WindowKey SetUpdateOptions (HPS.UpdateOptionsKit in_kit)

Sets the options that will be used by default for update options performed from this window. Note: these options cannot be unset.

bool ShowDebugging (out HPS.DebuggingKit out_kit)

Shows the debugging attribute settings on this segment.

Return

False if no debugging attribute settings exist on this segment.

bool ShowPostProcessEffects (out HPS.PostProcessEffectsKit out_kit)

Shows the post-process effects attribute settings on this segment. Returns false if no post-process effects attribute settings exist on this segment.

bool ShowSelectionOptions (out HPS.SelectionOptionsKit out_kit)

Shows the options that will be used by default for selections performed from this window.

bool ShowSnapshot (out HPS.ImageKit out_kit)

Shows the current display as an image. Note: this will return false if an Update was never made or if the window key has framebuffer retention disabled.

Param out_kit

An image kit to show the display into.

Return

true if able to show display into ImageKit, false otherwise.

bool ShowUpdateOptions (out HPS.UpdateOptionsKit out_kit)

Shows the options that will be used by default for update options performed from this window.

bool ShowWindowInfo (out HPS.WindowInfoKit out_kit)
HPS.WindowKey UnsetDriverEventHandler (IntPtr in_type)

Unsets the driver event handler for the specified driver event type on this window.

Param in_type

Type of driver event to remove the handler for

void Update ()

Performs a default update in this window, redrawing and refreshing the display.

void Update (HPS.UpdateOptionsKit in_kit)

Performs an update in this window, redrawing and refreshing the display using the options in the UpdateOptionsKit.

Param in_kit

Allows the user to control how thorough an update should be.

void Update (HPS.Window.UpdateType in_type)

Performs an update in this window within the specified amount of time, redrawing and refreshing the display based on the Window.UpdateType value. Key behavioral notes regarding a timed-update:

  • Geometry deferral/omission

    • View-dependent shadows will not be drawn (view-independent shadows will be drawn.)

    • Transparent geometry will be deferred and processed after the rest of the scene.

    • If static tree + lmv is enabled, text and lines will be deferred and drawn after opaque facetted geometry

  • Non-incremental rendering modes/attributes

    • A timed update requires Visualize to interrupt the rendering process. However, certain types of rendering modes/attributes cannot be interrupted because they are ‘non-incremental’. - If your application wishes to use such modes/attributes alongside fixed-framerate, it will need to make a decision about whether Fixed-framerate is preferred. They include: - HiddenLine and FastHiddenLine rendering algorithms

      • Transparency that is drawn using ‘depth peeling’. (All depth-peeled transparent geometry will be processed once it is started.)

void Update (HPS.Window.UpdateType in_type, double in_time_limit)

Performs an update in this window within the specified amount of time, redrawing and refreshing the display based on the Window.UpdateType value. Key behavioral notes regarding a timed-update:

  • Geometry deferral/omission

    • View-dependent shadows will not be drawn (view-independent shadows will be drawn.)

    • Transparent geometry will be deferred and processed after the rest of the scene.

    • If static tree + lmv is enabled, text and lines will be deferred and drawn after opaque facetted geometry

  • Non-incremental rendering modes/attributes

    • A timed update requires Visualize to interrupt the rendering process. However, certain types of rendering modes/attributes cannot be interrupted because they are ‘non-incremental’. - If your application wishes to use such modes/attributes alongside fixed-framerate, it will need to make a decision about whether Fixed-framerate is preferred. They include: - HiddenLine and FastHiddenLine rendering algorithms

      • Transparency that is drawn using ‘depth peeling’. (All depth-peeled transparent geometry will be processed once it is started.)

Param in_time_limit

Specifies the desired maximum time this update should take.

HPS.UpdateNotifier UpdateWithNotifier ()

Performs a default update in this window, redrawing and refreshing the display.

Return

A UpdateNotifier object that can be used to find out information about the update.

HPS.UpdateNotifier UpdateWithNotifier (HPS.UpdateOptionsKit in_kit)

Performs a default update in this window, redrawing and refreshing the display.

Return

A UpdateNotifier object that can be used to find out information about the update.

HPS.UpdateNotifier UpdateWithNotifier (HPS.Window.UpdateType in_type)

Performs an update in this window, redrawing and refreshing the display.

Param in_type

Allows the user to control how thorough an update should be.

Return

A UpdateNotifier object that can be used to find out information about the update.

HPS.UpdateNotifier UpdateWithNotifier (HPS.Window.UpdateType in_type, double in_time_limit)

Performs an update in this window, redrawing and refreshing the display.

Param in_type

Allows the user to control how thorough an update should be.

Param in_time_limit

Specifies a maximum time this update should take.

Return

A UpdateNotifier object that can be used to find out information about the update.

WindowKey ()

An uninitialized key refers to no database object and Type() will return Type.None.

WindowKey (HPS.Key in_key)

Shares a reference to a database object referred to by in_that. If the key assignment is invalid, this key will revert to an uninitialized state.

WindowKey (HPS.WindowKey in_window)

Shares a reference to a database object referred to by in_window.