com.jogamp.nativewindow.package.html Maven / Gradle / Ivy
Show all versions of jogl-all Show documentation
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:
- Either of the following Java implementations:
- Java SE 1.6 or later
- A mobile JavaVM with language 1.6 support, ie:
with
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