Skip to content

Commit

Permalink
Merge origin/main into main
Browse files Browse the repository at this point in the history
  • Loading branch information
selfemp committed Apr 7, 2024
2 parents 3a87177 + 08a9fca commit 0af946a
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 12 deletions.
6 changes: 3 additions & 3 deletions .github/workflows/maven.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@ jobs:

steps:
- uses: actions/checkout@v2
- name: Set up JDK 21
- name: Set up JDK 22
uses: actions/setup-java@v3
with:
distribution: 'zulu' # See 'Supported distributions' for available options
java-version: '21'
distribution: 'temurin' # See 'Supported distributions' for available options
java-version: '22'
architecture: 'x64' # defaults to 'x64'
cache: 'maven'
- name: Cache Maven packages
Expand Down
18 changes: 9 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ All raw formats can be loaded with the Image class and manipulated by Pixelwrite

**JDK 18 is required for v1.8.0** because of the foreign linker API usage and the big changes for threading happenend in Panama in JDK18

**JDK 21 and JavaFX 21 is required for v1.8.5** because of the foreign linker API usage, changes in JavaFX 21 and the big changes for threading happenend in Panama in JDK21.
**JDK 22 and JavaFX 22 is required for v1.8.6** because of the foreign linker API usage, changes in JavaFX 21 and the big changes for threading happenend in Panama in JDK22. Major rewrite without separate Win/Linux code anymore.

## Status
Now the lib is in production ready status. That means it is tested on all operating systems (OSX, Linux, Win10) and under different threading scenarious.
Expand All @@ -16,7 +16,7 @@ Supported OS:
- OSX up to 12.5 including Apple M1
- Windows 10/11

I have integrated LibRaw SNAPSHOT version 202110 (https://www.libraw.org/news/libraw-202110-snapshot)
I have integrated LibRaw SNAPSHOT version 0.21.2 (https://www.libraw.org/news/libraw-202110-snapshot)

Actually only the following raw formats are enabled (see class `RAWDescriptor.java`):
- Adobe DNG
Expand All @@ -43,12 +43,12 @@ Point to the maven coordinates:
<version>1.8.0</version>
</dependency>
```
**JDK21**
**JDK22**
```
<dependency>
<groupId>org.librawfx</groupId>
<artifactId>LibRawFX</artifactId>
<version>1.8.5</version>
<version>1.8.6</version>
</dependency>
```

Expand All @@ -70,7 +70,7 @@ Point to the maven coordinates:

- and add the following lines to your java config on JDK 20:
```
--enable-preview --enable-native-access=org.librawfx
--enable-native-access=org.librawfx
--add-exports=javafx.graphics/com.sun.javafx.iio=org.librawfx
--add-exports=javafx.graphics/com.sun.javafx.iio.common=org.librawfx
```
Expand Down Expand Up @@ -107,17 +107,17 @@ You can have a look into the class TestAPP.java to see how to use it, but genera
You can also use the lib without adding the file handler. What I mean is that you can also forget the "...install" line and just load a file URL with the lib (see the `TestApp.java` to see how it works).

## Steps to create your own build:
- OpenJDK/Adoptium 19 or newer
- JavaFX 11 or newer (21 is recommended)
- OpenJDK/Adoptium 22 or newer
- JavaFX 20 or newer (22 is recommended)
- SET JAVA_HOME variable
- Execute `mvn clean compile package -f LibRawFX/pom.xml`
- To run the example execute `mvn javafx:run@cli-default`
- IDE Integration: execute as a maven goal `javafx:run@ide-debug` or `javafx:run@ide-profile`

# Notes:
- The lib is using unoffical JavaFX interfaces
- The lib is using heavily the foreign memory API from Java 18 including functions from the project Panama and therefore the tool `JExtract` (Must be build separately)
- All classes inside of package `org.libraw.win` / `org.libraw.linuxosx` are generated by jextract but tuned for operating system specifica
- The lib is using heavily the foreign memory API from Java 22 including functions from the project Panama and therefore the tool `JExtract` (Must be build separately)
- All classes inside of package `org.librawnativ` are generated by jextract but tuned for operating system specifica
- Inside of these packages above I exposed also the raw interface to libraw
- The main class to interact with the native lib is the class `LibrawImage.java` in package `org.librawfx`

0 comments on commit 0af946a

Please sign in to comment.