 
                        
        
                        
        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