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
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<link href="../../style.css" rel="stylesheet" type="text/css"/>
<link href="../../style-alt1.css" rel="alternate stylesheet" title="default sans-serif font" type="text/css"/>
<title>Gluegen</title>
</head>
<body>
<div id="container">
<div id="header">
<div id="slogan">Native Binding Generator for Java™</div>
<div id="logo"><a href="http://jogamp.org/">Gluegen</a></div>
</div>
<div id="menu">
<ul>
<li><a href="http://jogamp.org/">Home</a></li>
<li><a href="../../joal/www/">JOAL</a></li>
<li><a href="../../jocl/www/">JOCL</a></li>
<li><a href="../../jogl/www/">JOGL</a></li>
<li><a href="../../demos/www/">Demos</a></li>
<li><a href="../../wiki/">Wiki</a></li>
<li><a href="../../deployment/jogamp-next/javadoc/gluegen/javadoc/">JavaDoc</a></li>
<li><a href="../../blog/">Blogs</a></li>
<li><a href="../../forum.html">Forums</a></li>
</ul>
</div>
<div id="main">
<div id="sidebar">
<h3>Useful Links</h3>
<ul>
<li><a href="https://jogamp.org/cgit/gluegen.git/about/">GlueGen Git Repo</a></li>
<li><a href="../../deployment/jogamp-next/javadoc/gluegen/javadoc/">GlueGen API-Doc</a></li>
<li><a href="../doc/GlueGen_Mapping.html">GlueGen Native Data & Function Mapping</a></li>
<li><a href="../doc/manual/">GlueGen Manual</a></li>
<li><a href="../doc/HowToBuild.html">How To Build</a></li>
<li><a href="../doc/JogAmpMacOSVersions.html">JogAmp's MacOS Version Support</a></li>
</ul>
</div>
<div id="text" class="fill">
<p>
GlueGen is a compiler for function and data-structure declarations,
generating Java™ and JNI C code offline at compile time
and allows using native libraries within your Java™ application.
</p>
<p>
GlueGen also provides a comprehensive <a href="../../deployment/jogamp-next/javadoc/gluegen/javadoc/">runtime library</a> offering
<ul>
<li>Support for multi-arch and java code fat-jar deployment</li>
<ul>
<li>Native library including JNI bundle handling and Jar file cache</li>
<li>Platform architecture information retrieval, ELF parser, alignment etc</li>
</ul>
<li>Enhanced NIO buffer handling for pointer, arrays, DMA mapping etc</li>
<li>Network Uri RFC 2396, connection and resource handler to simplify asset loading</li>
<li>Bitstream, hash maps, ringbuffer, sha cumulator, reflection and threading utils</li>
<li>Abstract AudioFormat and AudioSink interfaces, concurrent locks .. and more</li>
</p>
<p>
GlueGen's compiler reads ANSI C header files
and separate configuration files which provide control over many
aspects of the glue code generation. GlueGen uses a complete ANSI C
parser and an internal representation (IR) capable of representing all
C types to represent the APIs for which it generates interfaces. It
has the ability to perform significant transformations on the IR
before glue code emission.
</p>
<p>
GlueGen can produce native foreign function bindings to Java™ as well as
<a href="../doc/GlueGen_Mapping.html#struct-mapping">map native data structures</a> to be fully accessible from Java™ including
potential calls to <a href="../doc/GlueGen_Mapping.html#struct-function-pointer-support">embedded function pointer</a>.
</p>
<p>
GlueGen supports <a href="../doc/GlueGen_Mapping.html#java-callback-from-native-c-api-support">registering Java™ callback methods</a>
to receive asynchronous and off-thread native toolkit events,
where a generated native callback function dispatches the events to Java™.
</p>
<p>
GlueGen also supports <a href="../doc/GlueGen_Mapping.html#oo-style-api-interface-mapping">producing an OO-Style API mapping</a> like <a href="../../jogl/doc/uml/html/index.html">JOGL's incremental OpenGL Profile API levels</a>.
</p>
<p>
GlueGen is capable to bind low-level APIs such as the Java™ Native Interface (JNI) and
the AWT Native Interface (JAWT) back up to the Java programming language.
</p>
<p>
Further, GlueGen supports <a href="../doc/GlueGen_Mapping.html#libraryonload-librarybasename-for-jni_onload-">generating `JNI_OnLoad*(..)` for dynamic and static libraries</a>, also resolving off-thread `JNIEnv*` lookup.
</p>
<p>
GlueGen utilizes <a href="https://jogamp.org/cgit/jcpp.git/about/">JCPP</a>, migrated C preprocessor written in Java™.
</p>
<p>
GlueGen is used for the JogAmp projects
<a href="../../joal/www/">JOAL</a>,
<a href="../../jogl/www/">JOGL</a> and
<a href="../../jocl/www/">JOCL</a>.
</p>
<p>
<h3>Documentation</h3>
<ul>
<li><a href="https://jogamp.org/cgit/gluegen.git/about/">GlueGen Git Repo</a></li>
<li><a href="../../deployment/jogamp-next/javadoc/gluegen/javadoc/">GlueGen API-Doc</a></li>
<li><a href="../doc/GlueGen_Mapping.html">GlueGen Native Data & Function Mapping</a></li>
<li><a href="../doc/manual/">GlueGen Manual</a></li>
<li><a href="../doc/HowToBuild.html">How To Build</a></li>
<li><a href="../doc/JogAmpMacOSVersions.html">JogAmp's MacOS Version Support</a></li>
</ul>
</p>
</div>
</div>
<div id="footer">
<div id="footer_left">
<span>JogAmp.org</span>
by <a href="http://jogamp.org">http://jogamp.org</a>
is licensed under a <br/>
<a href="http://creativecommons.org/licenses/by/3.0/us/">Creative Commons Attribution 3.0 License</a>.
</div>
</div>
</div>
</body>
</html>
|