diff options
author | Sven Gothel <[email protected]> | 2023-07-01 02:50:18 +0200 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2023-07-01 02:50:18 +0200 |
commit | dd5829a4fed25fbad766361b87c65076ef596ded (patch) | |
tree | ace12be630697838c1674fa9e3d1714f3144c314 | |
parent | a73c992290930e617c78241bae9fe20cb18a01a9 (diff) |
GlueGen Intro: Add section about its comprehensive runtime library, shorten the JNI_OnLoad section
-rw-r--r-- | README.md | 13 | ||||
-rw-r--r-- | doc/GlueGen_Mapping.html | 43 | ||||
-rw-r--r-- | doc/GlueGen_Mapping.md | 13 | ||||
-rw-r--r-- | www/index.html | 17 |
4 files changed, 66 insertions, 20 deletions
@@ -10,7 +10,16 @@ This project's canonical repositories is hosted on [JogAmp](https://jogamp.org/c generating Java™ and JNI C code offline at compile time and allows using native libraries within your Java™ application. -It reads ANSI C header files +GlueGen also provides a comprehensive [runtime library](https://jogamp.org/deployment/jogamp-next/javadoc/gluegen/javadoc/) offering +- Support for multi-arch and java code fat-jar deployment + - Native library including JNI bundle handling and Jar file cache + - Platform architecture information retrieval, ELF parser, alignment etc +- Enhanced NIO buffer handling for pointer, arrays, DMA mapping etc</li> +- Network Uri RFC 2396, connection and resource handler to simplify asset loading +- Bitstream, hash maps, ringbuffer, sha cumulator, reflection and threading utils +- Abstract AudioFormat and AudioSink interfaces, concurrent locks .. and more + +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 @@ -31,7 +40,7 @@ GlueGen also supports [producing an OO-Style API mapping](doc/GlueGen_Mapping.md 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. -Further, GlueGen supports generating `JNI_OnLoad(..)` for dynamic and `JNI_OnLoad_<LibraryBasename>(..)` for static libraries via [`LibraryOnLoad LibraryBasename`](doc/GlueGen_Mapping.md#libraryonload-librarybasename-for-jni_onload-), which also provides `JVMUtil_GetJNIEnv(..)` to resolve the `JNIEnv*` as used by [Java™ callback methods](doc/GlueGen_Mapping.md#java-callback-from-native-c-api-support). +Further, GlueGen supports [generating `JNI_OnLoad*(..)` for dynamic and static libraries](doc/GlueGen_Mapping.md#libraryonload-librarybasename-for-jni_onload-), also resolving off-thread `JNIEnv*` lookup. GlueGen utilizes [JCPP](https://jogamp.org/cgit/jcpp.git/about/), migrated C preprocessor written in Java™. diff --git a/doc/GlueGen_Mapping.html b/doc/GlueGen_Mapping.html index 2bbc07a..e173c01 100644 --- a/doc/GlueGen_Mapping.html +++ b/doc/GlueGen_Mapping.html @@ -501,12 +501,31 @@ Build</a></li> 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>It 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 also provides a comprehensive <a +href="https://jogamp.org/deployment/jogamp-next/javadoc/gluegen/javadoc/">runtime +library</a> offering</p> +<ul> +<li>Support for multi-arch and java code fat-jar deployment +<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> +<li>Enhanced NIO buffer handling for pointer, arrays, DMA mapping +etc</li></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> +</ul> +<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="#struct-mapping">map native data structures</a> to be fully accessible from Java™ including potential calls to <a @@ -524,14 +543,10 @@ 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 generating <code>JNI_OnLoad(..)</code> for -dynamic and <code>JNI_OnLoad_<LibraryBasename>(..)</code> for -static libraries via <a -href="#libraryonload-librarybasename-for-jni_onload-"><code>LibraryOnLoad LibraryBasename</code></a>, -which also provides <code>JVMUtil_GetJNIEnv(..)</code> to resolve the -<code>JNIEnv*</code> as used by <a -href="#java-callback-from-native-c-api-support">Java™ callback -methods</a>.</p> +<p>Further, GlueGen supports <a +href="#libraryonload-librarybasename-for-jni_onload-">generating +<code>JNI_OnLoad*(..)</code> for dynamic and static libraries</a>, also +resolving off-thread <code>JNIEnv*</code> lookup.</p> <p>GlueGen utilizes <a href="https://jogamp.org/cgit/jcpp.git/about/">JCPP</a>, migrated C preprocessor written in Java™.</p> diff --git a/doc/GlueGen_Mapping.md b/doc/GlueGen_Mapping.md index dbc66aa..9a169d7 100644 --- a/doc/GlueGen_Mapping.md +++ b/doc/GlueGen_Mapping.md @@ -19,7 +19,16 @@ table, th, td { generating Java and JNI C code offline at compile time and allows using native libraries within your Java application. -It reads ANSI C header files +GlueGen also provides a comprehensive [runtime library](https://jogamp.org/deployment/jogamp-next/javadoc/gluegen/javadoc/) offering +- Support for multi-arch and java code fat-jar deployment + - Native library including JNI bundle handling and Jar file cache + - Platform architecture information retrieval, ELF parser, alignment etc +- Enhanced NIO buffer handling for pointer, arrays, DMA mapping etc</li> +- Network Uri RFC 2396, connection and resource handler to simplify asset loading +- Bitstream, hash maps, ringbuffer, sha cumulator, reflection and threading utils +- Abstract AudioFormat and AudioSink interfaces, concurrent locks .. and more + +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 @@ -40,7 +49,7 @@ GlueGen also supports [producing an OO-Style API mapping](#oo-style-api-interfac 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. -Further, GlueGen supports generating `JNI_OnLoad(..)` for dynamic and `JNI_OnLoad_<LibraryBasename>(..)` for static libraries via [`LibraryOnLoad LibraryBasename`](#libraryonload-librarybasename-for-jni_onload-), which also provides `JVMUtil_GetJNIEnv(..)` to resolve the `JNIEnv*` as used by [Java™ callback methods](#java-callback-from-native-c-api-support). +Further, GlueGen supports [generating `JNI_OnLoad*(..)` for dynamic and static libraries](#libraryonload-librarybasename-for-jni_onload-), also resolving off-thread `JNIEnv*` lookup. GlueGen utilizes [JCPP](https://jogamp.org/cgit/jcpp.git/about/), migrated C preprocessor written in Java™. diff --git a/www/index.html b/www/index.html index 7fcca09..812d3b3 100644 --- a/www/index.html +++ b/www/index.html @@ -46,7 +46,20 @@ and allows using native libraries within your Java™ application. </p> <p> - It reads ANSI C header files + 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 @@ -72,7 +85,7 @@ the AWT Native Interface (JAWT) back up to the Java programming language. </p> <p> - Further, GlueGen supports generating `JNI_OnLoad(..)` for dynamic and `JNI_OnLoad_{LibraryBasename}(..)` for static libraries via <a href="../doc/GlueGen_Mapping.html#libraryonload-librarybasename-for-jni_onload-">`LibraryOnLoad LibraryBasename`</a>, which also provides `JVMUtil_GetJNIEnv(..)` to resolve the `JNIEnv*` as used by <a href="../doc/GlueGen_Mapping.html#java-callback-from-native-c-api-support">Java™ callback methods</a>. + 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™. |