All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.jogamp.nativewindow.package.html Maven / Gradle / Ivy

The newest version!



  NativeWindow Specification Overview

  
   

NativeWindow Protocol Specification Overview

Preface

This specification, an optional set of packages, describing a protocol for a native windowing interface binding to Java(TM).
Currently specified native windowing systems are:
  • EGL/OpenKODE Windowing System
  • X11 Windowing System
  • Microsoft Windows
  • Apple MacOSX
  • Java's AWT

However, any other native windowing system may be added to the implementation, using a generic string identifier and an optional specialisation of:
  • {@link com.jogamp.nativewindow.AbstractGraphicsDevice AbstractGraphicsDevice},

    Shall return the new string identifier with {@link com.jogamp.nativewindow.AbstractGraphicsDevice#getType() getType()}

  • {@link com.jogamp.nativewindow.AbstractGraphicsScreen AbstractGraphicsScreen}
  • {@link com.jogamp.nativewindow.AbstractGraphicsConfiguration AbstractGraphicsConfiguration}

The implementor has to provide the following:

  • The specialisation of the abstract class {@link com.jogamp.nativewindow.NativeWindowFactory NativeWindowFactory}

    shall be registered with {@link com.jogamp.nativewindow.NativeWindowFactory#registerFactory NativeWindowFactory.registerFactory(..)}.

  • The specialisation of the abstract class {@link com.jogamp.nativewindow.GraphicsConfigurationFactory GraphicsConfigurationFactory}

    shall be registered with {@link com.jogamp.nativewindow.GraphicsConfigurationFactory#registerFactory GraphicsConfigurationFactory.registerFactory(..)}.

This protocol does not describe how to create native windows, but how to bind a native surface to an implementation of and window to an implementation of {@link com.jogamp.nativewindow.NativeSurface NativeSurface}.

{@link com.jogamp.nativewindow.NativeWindow NativeWindow} specializes the NativeSurface.

However, an implementation of this protocol (e.g. {@link com.jogamp.newt}) may support the creation.

Dependencies

This binding has dependencies to the following:

Package Structure

The packages defined by this specification include:
  • The com.jogamp.nativewindow package

    This package contains Java bindings for a native windowing system.

    Subsequent packages contain marker type classes, containing native characteristics of the windowing system.

    • The com.jogamp.nativewindow.awt package

      This sub package contains classes to cover the native characteristics of the AWT windowing system.

    • The com.jogamp.nativewindow.x11 package

      This sub package contains classes to cover the native characteristics of the X11 windowing system.

    • The com.jogamp.nativewindow.windows package

      This sub package contains classes to cover the native characteristics of the Windows windowing system.

    • The com.jogamp.nativewindow.macosx package

      This sub package contains classes to cover the native characteristics of the MacOSX windowing system.

    • The com.jogamp.nativewindow.egl package

      This sub package contains classes to cover the native characteristics of the EGL/OpenKODE windowing system.

Factory Model

Running on a platform with a supported windowing system, the factory model shall be used to instantiate a native window, see {@link com.jogamp.nativewindow.NativeWindowFactory NativeWindowFactory}.

Revision History

  • Early Draft Review, June 2009
  • 2.0.0 Maintenance Release, February 2011
  • 2.0.2 Major Release, July 18th 2013







© 2015 - 2024 Weber Informatics LLC | Privacy Policy