summaryrefslogtreecommitdiffstats
path: root/README.md
blob: bd3247cc3cadcaea1bbeb84631328d07bd949237 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246

JOGL, High-Performance Graphics Binding for Java™

Original document location

Git Repository

This project's canonical repositories is hosted on JogAmp.

Overview

The JOGL project hosts the development of high-performance graphics binding for Java™, and is designed to provide hardware-supported 3D graphics and multimedia to applications written in Java™.

JOGL provides full access to the APIs in the OpenGL® [ 1.0 .. 4.5 ], ES [ 1.0 .. 3.2 ] and EGL [ 1.0 .. 1.5 ] specification as well as nearly all vendor extensions. OpenGL Evolution & JOGL and this API Specification may give you a brief overview.

JOGL also embraces multimedia technology and binds to FFMpeg as well as to other media libraries providing a unified access API with JOAL. Further, stereo devices are supported in a generic fashion as well as for early OculusVR.

JOGL integrates with the AWT, Swing, OpenJFX and SWT widget sets, as well as with custom windowing toolkits using the NativeWindow API.

JOGL also provides its own native windowing toolkit, NEWT, running on top of X11, Windows, MacOS and even on bare-metal console mode without a windowing system.

JOGL contains Graph, a resolution-independent GPU NURBS curve renderer suitable for desktop and embedded devices and supporting text type rendering [ paper, slides ]. Graph is used in the contained Graph UI, enabling immersive UI within the 3D scene.

JOGL is part of the JogAmp project.

List of proposed work items & use-cases and current blog entries.

The JogAmp project needs funding and we offer commercial support!
Please contact Göthel Software (Jausoft).

Organization of the JOGL source tree

doc/                Build and user documentation
make/               Ant build scripts
make/config         Configuration files for glue code generation
make/stub_includes  Header files for glue code generation
src/                Java and native source code for:
src/jogl            - JOGL
src/nativewindow    - NativeWindow Interface
src/newt            - NEWT
src/graphui         - GraphUI
src/demos           - Demos
src/test            - Unit tests
www/                Web pages

NativeWindow, NEWT and GraphUI might be build seperately.

Contact Us

References

JogAmp History & Milestones

Bottom line, too much work has been performed to be listed here.
However, let's have a few sentimental points listed and we may add a few more as we go.

OpenGL™ for Java™ (GL4Java)

OpenGL™ for Java™ (GL4Java) was developed from March 1997 until March 2003.
Its concepts were reused in the subsequently launched JOGL project
initially lead by Sun Microsystems and later by the JogAmp community,
rendering GL4Java effectively JOGL's predecessor. A few of the concepts reused were:

  • C-Header Compiler to JNI glue code: C2J -> GlueGen
  • AWT integration: GLCanvas, GLJPanel (swing)
  • WinHandleAccess -> NativeWindow
  • GLDrawableFactory, GLDrawable, GLContext, GLEvenListener

GlueGen, JOAL and JOGL at Sun Microsystems & Co

JogAmp Period

Conferences

Papers

Santina, Rami. Resolution Independent NURBS Curve Rendering using Programmable Graphics Pipeline. GraphiCon'2011. Paper, Slides, Initial Blog, Blog Series

Acknowledgments

The JogAmp Community is grateful for all the contributions of all of the individuals who have advanced the project. For sure we are not able to list all of them here. Please contact us if you like to be added to this list.

This list can hardly cover all contributors and their contributions.

Since roughly 2010, JOGL development has been continued by individuals of the JogAmp community, see git log for details.

Chronological

Sven Gothel created OpenGL™ for Java™ (GL4Java) in March 1997 and maintained it up until March 2003.

Kenneth Bradley Russell and Christopher John Kline launched JOGL @ Sun Microsystems in 2003 having authored the first version.

Gerard Ziemski contributed the original port of JOGL to Mac OS X.

Rob Grzywinski and Artur Biesiadowski contributed the Ant build support. Alex Radeski contributed the cpptasks support in the build process.

Pepijn Van Eeckhoudt and Nathan Parker Burg contributed the Java port of the GLU tessellator. Pepijn also contributed the initial version of the FPSAnimator utility class.

James Walsh (GKW) contributed the substantial port of the GLU mipmap generation code to Java, as well as robustness fixes in the Windows implementation and other areas.

The JSR-231 expert group as a whole provided valuable discussions and guidance in the design of the current APIs. In particular, Kevin Rushforth, Daniel Rice and Travis Bryson were instrumental in the design of the current APIs.

Travis Bryson did extensive work on the GlueGen tool to make it conform to the desired API design. He also shepherded JSR-231 through the standardization process, doing extensive cross-validation of the APIs and implementation along the way, and authored JOGL's nightly build system.

Lilian Chamontin contributed the JOGLAppletLauncher, opening new ways of deploying 3D over the web.

Christopher Campbell collaborated closely with the JOGL development team to enable interoperability between Sun's OpenGL pipeline for Java2D and JOGL in Java SE 6, and also co-authored the TextureIO subsystem.

Sven Gothel refactored the windowing subsystem layer to be generic, introduced the support for multiple GL profiles, realized NEWT etc. He teamed up with Rami Santina, realizing the new graph package exposing generic curve, text and UI support.

Rami Santina researched and implemented the math behind the new graph package RSantina, etc.

The following individuals made significant contributions to various areas of the project (Alphabetical):

  • Michael Bien
  • Artur Biesiadowski
  • Travis Bryson
  • Nathan Parker Burg
  • Lilian Chamontin
  • Alban Cousinié
  • Pepijn Van Eeckhoudt
  • Athomas Goldberg
  • Sven Gothel
  • Julien Gouesse
  • Rob Grzywinski
  • Yuri Vladimir Gushchin
  • Harvey Harrison
  • Christopher John Kline
  • Martin Pernollet
  • Gregory Pierce
  • Emmanuel Puybaret
  • Xerxes Rånby
  • Alex Radeski
  • Daniel Rice
  • Kevin Rushforth
  • Kenneth Bradley Russell
  • Rami Santina
  • Dominik Ströhlein (DemoscenePassivist)
  • Dmitri Trembovetski
  • Wade Walker
  • James Walsh (GKW)
  • Carsten Weisse
  • Gerard Ziemski

The JogAmp Community is grateful for the support of the javagaming.org community and it's own JogAmp forum, from where dozens, if not hundreds, of individuals have contributed discussions, bug reports, bug fixes, and other forms of support.