Jogamp
d30b4a8dfcca62bf6525f7f34991f2acca02a026
[jogl.git] / src / nativewindow / classes / javax / media / nativewindow / package.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4   <title>NativeWindow Protocol Draft Public Review Specification</title>
5 </head>
6   <body>
7    
8 <h2><i>NativeWindow Protocol</i> Specification Overview</h2>
9    
10 <h3>Preface</h3>
11   This specification, an optional set of packages, describing a <i>protocol</i> for a 
12   <i>native windowing interface</i> binding to Java(TM).<br>
13   Currently specified <i>native windowing systems</i> are:<br><br>
14   <ul>
15     <li> EGL/OpenKODE Windowing System</li>
16     <li> X11 Windowing System</li>
17     <li> Microsoft Windows</li>
18     <li> Apple MacOSX</li>
19     <li> Java's AWT</li>
20   </ul>
21   <br>
22   However, any other native windowing system may be added to the implementation,
23   using a generic string identifier and an optional specialisation of:<br><br>
24   <ul>
25     <li>{@link javax.media.nativewindow.AbstractGraphicsDevice AbstractGraphicsDevice},<br>
26        <br>
27        Shall return the new string identifier with {@link javax.media.nativewindow.AbstractGraphicsDevice#getType() getType()}</li><br>
28     <li>{@link javax.media.nativewindow.AbstractGraphicsScreen AbstractGraphicsScreen}</li>
29     <li>{@link javax.media.nativewindow.AbstractGraphicsConfiguration AbstractGraphicsConfiguration}</li><br>
30   </ul>
31   <br>
32   The implementor has to provide the following:<br><br>
33   <ul>
34     <li> The specialisation of the abstract class {@link javax.media.nativewindow.NativeWindowFactory NativeWindowFactory}<br>
35          <br>
36          shall be registered with {@link javax.media.nativewindow.NativeWindowFactory#registerFactory NativeWindowFactory.registerFactory(..)}.</li><br>
37
38     <li> The specialisation of the abstract class {@link javax.media.nativewindow.GraphicsConfigurationFactory GraphicsConfigurationFactory}<br>
39          <br>
40          shall be registered with {@link javax.media.nativewindow.GraphicsConfigurationFactory#registerFactory GraphicsConfigurationFactory.registerFactory(..)}.</li><br>
41   </ul><br>
42   This protocol <i>does not</i> describe how to <i>create</i> native windows, but how to <i>bind</i> a native window to an implementation of
43   {@link javax.media.nativewindow.NativeWindow NativeWindow}.<br>
44   However, an implementation of this protocol (e.g. {@link com.jogamp.javafx.newt}) may support the creation.<br>
45    
46 <h3>Dependencies</h3>
47   This binding has dependencies to the following:<br><br>
48   <ul>
49     <li> Either of the following Java implementations:<br>
50     <ul>
51         <li> <a href="http://java.sun.com/j2se/1.4.2/docs/api/">Java SE 1.4 or later</a> </li><br>
52         <li> <a href="http://java.sun.com/javame/technology/cdc/">Java ME CDC 1.1.2 (JSR 218)</a> and 
53              <a href="http://java.sun.com/products/foundation/">Foundation Profile 1.1.2 (JSR 219)</a><br>
54              and either of the following <i>java.nio</i> implementations:<br>
55              <ul>
56                 <li> <a href="http://java.sun.com/javame/reference/apis/jsr239/java/nio/package-summary.html"> JSR239 <i>java.nio</i> subset</a> </li>
57                 <li> <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/nio/package-summary.html"> Java 1.4 <i>java.nio</i> implementation</a> </li>
58              </ul><br>
59     </ul>    
60   </ul>
61   <br>
62
63 <h3>Package Structure</h3>
64   The packages defined by this specification include:<br><br>
65 <ul>
66     <li>The <b>javax.media.nativewindow</b> package<br>
67       <br>
68   This package contains Java bindings for a native windowing system.<br>
69   Subsequent packages contain marker type classes, containing native characteristics of the windowing system.</li><br><br>
70   <ul>
71     <li>The <b>javax.media.nativewindow.awt</b> package<br>
72       <br>
73   This sub package contains classes to cover the native characteristics of the AWT windowing system.</li><br>
74
75     <li>The <b>javax.media.nativewindow.x11</b> package<br>
76       <br>
77   This sub package contains classes to cover the native characteristics of the X11 windowing system.</li><br>
78
79     <li>The <b>javax.media.nativewindow.windows</b> package<br>
80       <br>
81   This sub package contains classes to cover the native characteristics of the Windows windowing system.</li><br>
82
83     <li>The <b>javax.media.nativewindow.macosx</b> package<br>
84       <br>
85   This sub package contains classes to cover the native characteristics of the MacOSX windowing system.</li><br>
86
87     <li>The <b>javax.media.nativewindow.egl</b> package<br>
88       <br>
89   This sub package contains classes to cover the native characteristics of the EGL/OpenKODE windowing system.</li><br>
90   </ul>
91 </ul>
92
93 <h3>Factory Model</h3>
94 Running on a platform with a supported windowing system, the factory model shall be used
95 to instantiate a native window, see {@link javax.media.nativewindow.NativeWindowFactory NativeWindowFactory}.<br>
96 The implementor has to specialize 
97 All supported 
98 Regardless of the knowledge of the underly
99 <br>
100
101 <h3>Revision History<br>
102   </h3>
103    
104 <ul>
105 <li> Early Draft Review, June 2009
106 </ul>
107   <br>
108   <br>
109  <br>
110 </body>
111 </html>
http://JogAmp.org git info: FAQ, tutorial and man pages.