javax.media.nativewindow

## Interface VisualIDHolder

- All Known Subinterfaces:
    AbstractGraphicsConfiguration, CapabilitiesImmutable
  All Known Implementing Classes:
    Capabilities, DefaultGraphicsConfiguration

      public interface VisualIDHolder

  Visual ID holder interface.

  Allows queries of different types of native visual IDs, see `#getVisualID(int)`.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface and Description
    --- | ---
    `static class` | `VisualIDHolder.VIDComparator` Comparing `VisualIDHolder.VIDType.NATIVE`
    `static class` | `VisualIDHolder.VIDType`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `VID_UNDEFINED` `getVisualID(VIDType)` result indicating an undefined value, which could be cause by an unsupported query.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `getVisualID(VisualIDHolder.VIDType type)` Returns the native visual ID of the given `type` if supported, or `VID_UNDEFINED` if not supported.

- - ### Field Detail

    - #### VID_UNDEFINED

          static final int VID_UNDEFINED

      `getVisualID(VIDType)` result indicating an undefined value, which could be cause by an unsupported query.

      We assume the const value `0` doesn't reflect a valid native visual ID and is interpreted as no value on all platforms. This is currently true for Android, X11 and Windows.

      See Also:
        Constant Field Values

  - ### Method Detail

    - #### getVisualID

          int getVisualID(VisualIDHolder.VIDType type)
                          throws NativeWindowException

      Returns the native visual ID of the given `type` if supported, or `VID_UNDEFINED` if not supported.

      Depending on the native windowing system, `type` is handled as follows:

      - X11 throws NativeWindowException on `EGL_CONFIG`, `WIN32_PFD`
        - `INTRINSIC`: X11 XVisual ID
        - `NATIVE`: X11 XVisual ID
        - `X11_XVISUAL`: X11 XVisual ID
        - `X11_FBCONFIG`: `VID_UNDEFINED`
      - X11/GL throws NativeWindowException on `EGL_CONFIG`, `WIN32_PFD`
        - `INTRINSIC`: X11 XVisual ID
        - `NATIVE`: X11 XVisual ID
        - `X11_XVISUAL`: X11 XVisual ID
        - `X11_FBCONFIG`: X11 FBConfig ID or `VID_UNDEFINED`
      - Windows/GL throws NativeWindowException on `EGL_CONFIG`, `X11_XVISUAL`, `X11_FBCONFIG`
        - `INTRINSIC`: Win32 PIXELFORMATDESCRIPTOR ID
        - `NATIVE`: Win32 PIXELFORMATDESCRIPTOR ID
        - `WIN32_PFD`: Win32 PIXELFORMATDESCRIPTOR ID
      - EGL/GL throws NativeWindowException on `X11_XVISUAL`, `X11_FBCONFIG`, `WIN32_PFD`
        - `INTRINSIC`: EGL Config ID
        - `NATIVE`: EGL NativeVisual ID (X11 XVisual ID, Win32 PIXELFORMATDESCRIPTOR ID, ...)
        - `EGL_CONFIG`: EGL Config ID
      Note: `INTRINSIC` and `NATIVE` are always handled, but may result in `VID_UNDEFINED`. The latter is true if the native value are actually undefined or the corresponding object is not mapped to a native visual object.
      Throws:
        `NativeWindowException` - if `type` is neither `INTRINSIC` nor `NATIVE` and does not match the native implementation.

Copyright 2010 JogAmp Community.