Class Screen

java.lang.Object
com.jogamp.newt.Screen

public abstract class Screen extends Object
A screen may span multiple MonitorDevices representing their combined virtual size.

All values of this interface are represented in pixel units, if not stated otherwise.

Coordinate System

  • Screen space has it's origin in the top-left corner, and may not be at 0/0.
  • Virtual viewport covers all MonitorDevices viewports and has it's origin in the top-left corner, and may not be at 0/0.

  • Field Details

    • SCREEN_MODE_CHANGE_TIMEOUT

      public static final int SCREEN_MODE_CHANGE_TIMEOUT
      A 10s timeout for screen mode change. It is observed, that some platforms need a notable amount of time for this task, especially in case of rotation change.
      See Also:
    • DEBUG

      public static final boolean DEBUG
  • Constructor Details

    • Screen

      public Screen()
  • Method Details

    • hashCode

      public abstract int hashCode()
      return precomputed hashCode from FQN getFQName()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      return true if obj is of type Display and both FQN getFQName() equals
      Overrides:
      equals in class Object
    • createNative

      public abstract void createNative() throws NativeWindowException
      Manual trigger the native creation, if not done yet..
      This is useful to be able to request the AbstractGraphicsScreen, via getGraphicsScreen().
      Otherwise the abstract device won't be available before the dependent component (Window) is realized.

      This method is usually invoke by addReference()

      This method invokes Display.addReference() after creating the native peer,
      which will issue Display.createNative() if the reference count was 0.

      Throws:
      NativeWindowException - if the native creation failed.
    • destroy

      public abstract void destroy()
      Manually trigger the destruction, incl. native destruction.

      This method is usually invoke by removeReference()

      This method invokes Display.removeReference() after it's own destruction,
      which will issue Display.destroy() if the reference count becomes 0.

    • isNativeValid

      public abstract boolean isNativeValid()
    • getReferenceCount

      public abstract int getReferenceCount()
      Returns:
      number of references
    • addReference

      public abstract int addReference() throws NativeWindowException
      Returns:
      number of references post operation
      Throws:
      NativeWindowException - if the native creation failed.
      See Also:
    • removeReference

      public abstract int removeReference()
      Returns:
      number of references post operation
      See Also:
      • addReference()
      • #setDestroyWhenUnused(boolean)
      • #getDestroyWhenUnused()
    • getGraphicsScreen

      public abstract AbstractGraphicsScreen getGraphicsScreen()
    • getIndex

      public abstract int getIndex()
      Returns:
      this Screen index of all Screens of getDisplay().
    • getX

      public abstract int getX()
      Returns:
      the x position of the virtual viewport's top-left origin in pixel units.
    • getY

      public abstract int getY()
      Returns:
      the y position of the virtual viewport's top-left origin in pixel units.
    • getWidth

      public abstract int getWidth()
      Returns:
      the rotated virtual viewport's width in pixel units.
    • getHeight

      public abstract int getHeight()
      Returns:
      the rotated virtual viewport's height in pixel units.
    • getViewport

      public abstract RectangleImmutable getViewport()
      Returns:
      the rotated virtual viewport, i.e. top-left origin and size, in pixel units.
      See Also:
    • getViewportInWindowUnits

      public abstract RectangleImmutable getViewportInWindowUnits()
      Returns:
      the rotated virtual viewport, i.e. top-left origin and size, in window units.
      See Also:
    • getDisplay

      public abstract Display getDisplay()
      Returns:
      the associated Display
    • getFQName

      public abstract String getFQName()
      Returns:
      The screen fully qualified Screen name, which is a key of Display.getFQName() + getIndex().
    • getMonitorModes

      public abstract List<MonitorMode> getMonitorModes()
      Return a list of all MonitorModes for all MonitorDevices.

      The list is ordered in descending order, see MonitorMode.compareTo(MonitorMode).

    • getMonitorDevices

      public abstract List<MonitorDevice> getMonitorDevices()
      Return a list of available MonitorDevices.
    • getPrimaryMonitor

      public abstract MonitorDevice getPrimaryMonitor()
      Returns the windowing manager's primary MonitorDevice, which holds the system menu bar, etc.
      See Also:
    • getMainMonitor

      public final MonitorDevice getMainMonitor(RectangleImmutable r)
      Returns the MonitorDevice with the highest viewport coverage of the given rectangle in window units, which is not a clone.

      If no coverage is detected the first MonitorDevice is returned.

      Parameters:
      r - arbitrary rectangle in window units
    • getMonitor

      public final MonitorDevice getMonitor(int monitorId)
    • unionOfMonitorViewports

      public final void unionOfMonitorViewports(Rectangle viewport, Rectangle viewportInWindowUnits)
      Calculates the union of all monitor's viewport in pixel- and window units.

      Should be equal to getX(), getY(), getWidth() and getHeight(), however, some native toolkits may choose a different virtual screen area.

      Parameters:
      viewport - storage for result in pixel units, maybe null
      viewportInWindowUnits - storage for result in window units, maybe null
    • addMonitorModeListener

      public abstract void addMonitorModeListener(MonitorModeListener sml)
      Parameters:
      sml - MonitorModeListener to be added for MonitorEvent
    • removeMonitorModeListener

      public abstract void removeMonitorModeListener(MonitorModeListener sml)
      Parameters:
      sml - MonitorModeListener to be removed from MonitorEvent
    • getFirstScreenOf

      public static Screen getFirstScreenOf(Display display, int idx, int fromIndex)
      Parameters:
      type -
      name -
      fromIndex - start index, then increasing until found or end of list *
      Returns:
    • getLastScreenOf

      public static Screen getLastScreenOf(Display display, int idx, int fromIndex)
      Parameters:
      type -
      name -
      fromIndex - start index, then decreasing until found or end of list. -1 is interpreted as size - 1.
      Returns:
    • getAllScreens

      public static Collection<Screen> getAllScreens()
      Returns the global screen collection
    • getActiveScreenNumber

      public static int getActiveScreenNumber()