aboutsummaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2011-09-18 00:12:33 +0200
committerSven Gothel <[email protected]>2011-09-18 00:12:33 +0200
commit2421ce2d3bfe169336c4009639e24e197908477f (patch)
treeea258e0246771b784e59ccd2a6c096abb1879e20 /doc
parenta03eb2a9d9c480ac6eff3a53ba1d34f13e01f720 (diff)
html fixes
Diffstat (limited to 'doc')
-rw-r--r--doc/NEWT-Overview.html6
-rw-r--r--doc/Overview-OpenGL-Evolution-And-JOGL.html101
2 files changed, 51 insertions, 56 deletions
diff --git a/doc/NEWT-Overview.html b/doc/NEWT-Overview.html
index 430a81c0b..4f8f71870 100644
--- a/doc/NEWT-Overview.html
+++ b/doc/NEWT-Overview.html
@@ -78,18 +78,18 @@ This gives you fluent animation even for complex models.</p>
<p>
<a href="/deployment/jogamp-next/javadoc/jogl/javadoc/com/jogamp/newt/awt/NewtCanvasAWT.html">NewtCanvasAWT</a>,
-representing an AWT Canvas, allows you to hook a NEWT Window into it.<p/>
+representing an AWT Canvas, allows you to hook a NEWT Window into it.</p>
Since the NewtCanvasAWT is an AWT heavyweight Component, this gives you the ability hook NEWT into an AWT UI.<br/>
<p>
The implementation uses the AWT native JAWT API to reparent the NEWT Window natively into the AWT one<br/>
-and hence is even more compatible with JOGL&#8217;s GLCanvas implementation.<p/>
+and hence is even more compatible with JOGL&#8217;s GLCanvas implementation.</p>
<p>
This enables us to use both worlds, AWT/Swing UI and decoupled high performance rendering.</p>
<p>
<a href="http://jogamp.org/git/?p=jogl.git;a=blob;f=src/test/com/jogamp/opengl/test/junit/newt/parenting/TestParenting01cAWT.java;hb=HEAD">TestParenting01cAWT.java</a>
[<a href="http://jogamp.org/git/?p=jogl.git;a=blob;f=src/test/com/jogamp/opengl/test/junit/newt/parenting/TestParenting01cAWT.java;h=4477c3f8e8ebc43c91ea90a82af69a5bb0f38091;hb=HEAD">v2.0-rc3</a>]
-shows you how to add an GLWindow to an NewtCanvasAWT, which iself is added to an AWT Frame.</br>
+shows you how to add an GLWindow to an NewtCanvasAWT, which iself is added to an AWT Frame.<br/>
It also shows how the NewtCanvasAWT can be easily removed from the AWT Frame and placed into another AWT Container.<br/>
Since we use native reparenting, the native window resource keeps alive and hence your OpenGL application (GLEventListener)
is not being asked to dispose all resources.<br/>
diff --git a/doc/Overview-OpenGL-Evolution-And-JOGL.html b/doc/Overview-OpenGL-Evolution-And-JOGL.html
index 74ea4b391..86b5b180e 100644
--- a/doc/Overview-OpenGL-Evolution-And-JOGL.html
+++ b/doc/Overview-OpenGL-Evolution-And-JOGL.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<!DOCTYPE HTML>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
@@ -32,148 +32,143 @@
<h3>OpenGL Evolution</h3>
<hr/>
-<P>
+<p>
<a href="http://www.opengl.org/">OpenGL</a> is an application programming interface (API) giving application developers
-access to hardware accelerated 3D rendering (incl. 2D).</P>
+access to hardware accelerated 3D rendering (incl. 2D).</p>
-<P>
+<p>
SGI released the first OpenGL specification in January 1992.
-Since this point OpenGL 1.x constantly evolved, first under the ARB and later under the <a href="http://www.khronos.org/">Khronos Group</a>.</P>
+Since this point OpenGL 1.x constantly evolved, first under the ARB and later under the <a href="http://www.khronos.org/">Khronos Group</a>.</p>
-<P>
+<p>
The OpenGL API was specified with the objective of maximal hardware acceleration,
ie the API functions shall be implemented in hardware - as much as possible.
Further more, OpenGL is considered a vendor neutral and platform agnostic API,
-ie should run anywhere, implemented by all 3D GPU manufacturer.</P>
+ie should run anywhere, implemented by all 3D GPU manufacturer.</p>
-<P>
+<p>
Up until OpenGL 1.5, released in July 2003, the core API reflected the so called fixed function pipeline (FFP).
FFP allowed a user to pass triangles, textures and attributes to the GPU.
The attributes had to be utilized to select predefined function of rendering,
-hence the name fixed function.</P>
+hence the name fixed function.</p>
-<P>
+<p>
Around 2000 new types of GPU hardware evolved,
allowing custom code running on the GPU hardware,
-instead of being restricted to the fixed function rendering code.</P>
+instead of being restricted to the fixed function rendering code.</p>
-<P>
+<p>
To allow processing of such user defined algorithms on the GPU,
in 2002 the programmable shader pipeline (PSP) was introduced.
The OpenGL Shading Language (GLSL) used to write such shader programs
-became an extension to OpenGL 1.4.</P>
+became an extension to OpenGL 1.4.</p>
-<P>
GLSL allows users to
<ul>
<li> write ANSI-C like shader programs</li>
<li> compile shader programs</li>
<li> upload shader programs to the GPU </li>
-</ul></P>
+</ul>
-<P>
+<p>
The shader, executed on the GPU, transform the
-triangle position and determine the pixel color.</P>
+triangle position and determine the pixel color.</p>
-<P>
+<p>
Within this process, the shader may use any form of data,
arrays, textures and framebuffer.
It reads it, computes and stores the result in the target framebuffer(s),
-hence the name programmable.</P>
+hence the name programmable.</p>
-<P>
+<p>
In September 2004, GLSL subsumed into the core OpenGL 2.0 API,
-hence OpenGL 2.0 supported both, FFP and PSP.</P>
+hence OpenGL 2.0 supported both, FFP and PSP.</p>
-<P>
+<p>
The desire to utilize OpenGL on embedded devices increased
-the more 3D capabilities appeared.</P>
+the more 3D capabilities appeared.</p>
-<P>
+<p>
Around 2005 a subset of the FFP of OpenGL 1.3
-for embedded systems was released, OpenGL ES 1.0.</P>
+for embedded systems was released, OpenGL ES 1.0.</p>
-<P>
+<p>
In March 2007 a programmable shader (PSP) only subset of OpenGL 2.0
-for embedded systems was released.</P>
+for embedded systems was released.</p>
-<P>
+<p>
In July 2010 OpenGL 4.1 was released and it's core profile
-is fully compatible to OpenGL ES 2.0.</P>
+is fully compatible to OpenGL ES 2.0.</p>
-<P>
+<p>
Today, desktop and embedded GPU's implement the programmatic shader (PSP)
-based rendering.</P>
+based rendering.</p>
-<P>
+<p>
Still the fixed function subset is provided by most drivers.
However, since the hardware itself does not implement such functionality anymore,
-it is completely implemented in software by the OpenGL driver.</P>
+it is completely implemented in software by the OpenGL driver.</p>
-<P>
+<p>
This leads to the conclusion it is best advised for OpenGL applications
to avoid the FFP, but using the PSP. This allows the implementor
to utilize application level optimization which usually cannot be reached
-by the very generic implemented FFP in the OpenGL drivers.</P>
+by the very generic implemented FFP in the OpenGL drivers.</p>
<h3>JOGL &amp; The OpenGL Evolution</h3>
<hr/>
-<P>
+<p>
Like <a href="http://jausoft.com/gl4java/">GL4Java</a>, the 1st JOGL release 1.x
mapped OpenGL in one interface. This architecture was feasible and correct until the new OpenGL
profiles surfaced. There was only one unique way to create an OpenGL context for all available
-OpenGL versions.</P>
+OpenGL versions.</p>
-<P>
+<p>
The continously developed <a href="http://jogamp.org/">JOGL 2.x</a> reflects the aforementioned OpenGL evolution
by <a href="/deployment/jogamp-next/javadoc/jogl/javadoc/overview-summary.html#overview_description">mapping the OpenGL profiles to interfaces</a>.
This is essential since creating an OpenGL context for each class of OpenGL profiles
-requires it's <a href="/deployment/jogamp-next/javadoc/jogl/javadoc/overview-summary.html#GLAPIInclusionCriteria">specific initialisation</a>.<br>
+requires it's <a href="/deployment/jogamp-next/javadoc/jogl/javadoc/overview-summary.html#GLAPIInclusionCriteria">specific initialisation</a>.<br/>
Some OpenGL profiles like
<a href="/deployment/jogamp-next/javadoc/jogl/javadoc/javax/media/opengl/GLES2.html">GLES2</a>
-for embedded may not be available on desktop machines.</P>
+for embedded may not be available on desktop machines.</p>
-<P>
Fixed Function (FFP) Only Profiles:
<ul>
<li><a href="/deployment/jogamp-next/javadoc/jogl/javadoc/javax/media/opengl/GLES1.html">GLES1</a></li>
-</ul></P>
+</ul><br/>
-<P>
Programmable Shader (PSP) Only Profiles:
<ul>
<li><a href="/deployment/jogamp-next/javadoc/jogl/javadoc/javax/media/opengl/GLES2.html">GLES2</a></li>
<li><a href="/deployment/jogamp-next/javadoc/jogl/javadoc/javax/media/opengl/GL3.html">GL3</a></li>
<li><a href="/deployment/jogamp-next/javadoc/jogl/javadoc/javax/media/opengl/GL4.html">GL4</a></li>
-</ul></P>
+</ul><br/>
-<P>
FFP &amp; PSP Profiles:
<ul>
<li><a href="/deployment/jogamp-next/javadoc/jogl/javadoc/javax/media/opengl/GL2.html">GL2</a></li>
<li><a href="/deployment/jogamp-next/javadoc/jogl/javadoc/javax/media/opengl/GL3bc.html">GL3bc</a></li>
<li><a href="/deployment/jogamp-next/javadoc/jogl/javadoc/javax/media/opengl/GL4bc.html">GL4bc</a></li>
-</ul></P>
+</ul><br/>
-<P>
+<p>
The following UML diagram show that JOGL also adds common subsets of OpenGL profiles
-to allow easy development of multiple target profiles.</P>
+to allow easy development of multiple target profiles.</p>
-<P>
Common OpenGL Profile Subsets:
<ul>
<li><a href="/deployment/jogamp-next/javadoc/jogl/javadoc/javax/media/opengl/GL.html">GL</a></li>
<li><a href="/deployment/jogamp-next/javadoc/jogl/javadoc/javax/media/opengl/GL2ES1.html">GL2ES1</a></li>
<li><a href="/deployment/jogamp-next/javadoc/jogl/javadoc/javax/media/opengl/GL2ES2.html">GL2ES2</a></li>
<li><a href="/deployment/jogamp-next/javadoc/jogl/javadoc/javax/media/opengl/GL2GL3.html">GL2GL3</a></li>
-</ul></P>
+</ul><br/>
-<br>
+<br/>
For example using the common interface
<a href="/deployment/jogamp-next/javadoc/jogl/javadoc/javax/media/opengl/GL2ES2.html">GL2ES2</a>
of <a href="/deployment/jogamp-next/javadoc/jogl/javadoc/javax/media/opengl/GL2.html">GL2</a>
and <a href="/deployment/jogamp-next/javadoc/jogl/javadoc/javax/media/opengl/GLES2.html">GLES2</a>,
-ensures the code complies with the GL2 and GLES2 profile and an implementation may use both:</P>
+ensures the code complies with the GL2 and GLES2 profile and an implementation may use both:<br/>
<pre>
void renderSomethingForGL2(GL2 gl, int program) {
renderSomethingForGL2AndGLES2(gl, program);
@@ -191,7 +186,7 @@ ensures the code complies with the GL2 and GLES2 profile and an implementation m
</pre>
<h4><a href="bouml/html-svg/fig128069.svg">OpenGL Profile Model (UML)</a> (<a href="bouml/html-svg/index-withframe.html">with frames</a>)</h4>
-<embed src="bouml/html-svg/fig128069.svg" width="125%" height="800px"/>
+<embed src="bouml/html-svg/fig128069.svg" width="1024" height="800" />
<h3>References</h3>
<ul>