# Subwindow

class `Subwindow`

  This is the Subwindow Class

  Public Types

  enum class `Background` : uint32_t

    Values:

    enumerator `SolidColor`

      Subwindow Background.

    enumerator `Image`

      Subwindow Background.

    enumerator `Cubemap`

      Subwindow Background.

    enumerator `Blend`

      Subwindow Background.

    enumerator `Transparent`

      Subwindow Background.

    enumerator `Interactive`

      Subwindow Background.

    enumerator `GradientTopToBottom`

      Subwindow Background.

    enumerator `GradientBottomToTop`

      Subwindow Background.

    enumerator `GradientLeftToRight`

      Subwindow Background.

    enumerator `GradientRightToLeft`

      Subwindow Background.

    enumerator `GradientTopLeftToBottomRight`

      Subwindow Background.

    enumerator `GradientTopRightToBottomLeft`

      Subwindow Background.

    enumerator `GradientBottomLeftToTopRight`

      Subwindow Background.

    enumerator `GradientBottomRightToTopLeft`

      Subwindow Background.

  enum class `Border` : uint32_t

    Values:

    enumerator `None`

      Subwindow Border.

    enumerator `Inset`

      Subwindow Border.

    enumerator `InsetBold`

      Subwindow Border.

    enumerator `Overlay`

      Subwindow Border.

    enumerator `OverlayBold`

      Subwindow Border.

  enum class `RenderingAlgorithm` : uint32_t

    Specifies the Rendering Algorithm to use for drawing the scene.

    Values:

    enumerator `ZBuffer`

      Instructs the system to use a z-buffering algorithm which is of O(n) complexity. A hardware z-buffer will be used if the active display driver supports it, otherwise a software-buffer will be used.

    enumerator `HiddenLine`

      Instructs the system to display visible (i.e. unobscured) lines, edges, markers and text. Recommended when rendering an HLR result to any 2D driver device such as hardcopy. Faces which are set to be visible are used to obscure the lines, edges, markers and text. It is O(n log n) complexity, and therefore computationally intensive when dealing with a large amount of geometry in the scene. This rendering algorithm is not interruptible, and Visualize will perform a full update regardless of the amount of time required. Therefore it is not compatible with time-bound updates which are also used by Visualize to provide fixed-framerate support.

    enumerator `FastHiddenLine`

      Instructs the system to display visible (i.e. unobscured) lines, edges, markers and text. Recommended when you wish to display accurate HLR result on the screen. Faces which are set to be visible are used to obscure the lines, edges, markers and text. It is O(n) complexity and uses a multi-pass, z-buffer rendering approach that takes advantage of underlying 3D graphics hardware. This rendering algorithm is not interruptible, and Visualize will perform a full update regardless of the amount of time required. Therefore it is not compatible with time-bound updates which are also used by Visualize to provide fixed-framerate support.

    enumerator `Priority`

      Instructs the system to use the priority value specified by SegmentKey::SetPriority to ultimately determine the drawing order of objects. Objects with the highest priority are drawn on top, regardless of Z order. This algorithm is primarily intended to control layering within 2D scenes and will cause undesired results when rendering non-planar objects that have some parts overlapping others within the same primitive. The shader-based DirectX and OpenGL2 drivers have the ability to convert priority values into final Z positions, thereby enabling hardware-accelerated z-buffer rendering, and thus fast performance. Other drivers will produce the correct result, but rendering will be slower since all geometry will be sorted during scene-graph traversal. Priority can be set at a number of different levels:

          <p><b>Segment-level priority:</b> Priority values only control the traversal order of sibling segments. It does

      not directly control drawing order of geometry, however, segment-level priority will influence the draw order of two geometries in sibling segments which have the same priority value.

      Geometry-level priority: Priority values applied to primitives are global and are honored irrespective of the priority values of their parent segments. Use this to control draw order.

      Include links: All primitives behind an include link are put into the global list according to the priority set on the include link and then sorted relative to each other using their respective priorities.

      Limitations:

      This algorithm does NOT work with anti-aliasing. Anti-aliasing will not be applied to scenes rendered with priority. If it is attempted, geometry will be drawn, but it will NOT be anti-aliased.

      Working with priority on a mobile platform? You should be aware that when two geometries are inserted with the same priority, and one of those geometries is transparent, the transparent geometry will draw on top of the opaque one. This only apples when depth peeling is used as the transparency method.

Hello I'm HOOPSY!

HOOPSY BETA

Hello I am HOOPSY! your Docs generative AI assistant.

Ask me anything about HOOPS Visualize HPS or choose a sample question below to start a conversation:

Additional info

HOOPSY may store chats to provide and maintain the service according to OpenAI's data policy.

This feature is currently experimental. While we are continually enhancing its performance and quality, the underlying AI model may generate inaccurate or fabricated responses, especially if prompted to do so.

New Conversation
Continue generating