From 37b7e3e5c1fada59cf978ddcf5ae9d54e23a4f3f Mon Sep 17 00:00:00 2001 From: Michael Zhilin Date: Mon, 28 Sep 2020 08:49:09 +0300 Subject: [PATCH] [improvement] add FreeBSD native support via XLib This commit brings ability to run benchmark via JNA/XLib on FreeBSD platform. Also it bumps version of JNA because version 4.2.0 cause NPE in case of JNA@FreeBSD. Comparison between native and AWT modes should significant difference: around 5-10ms. Tested on FreeBSD 13-CURRENT & Gnome 3.x --- pom.xml | 6 ++++-- .../com/pavelfatin/typometer/screen/ScreenAccessor.java | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 6488afa..26667e1 100644 --- a/pom.xml +++ b/pom.xml @@ -17,7 +17,7 @@ net.java.dev.jna jna - 4.2.0 + 5.5.0 junit @@ -60,6 +60,8 @@ com/sun/jna/win32/* com/sun/jna/win32-x86/* com/sun/jna/win32-x86-64/* + com/sun/jna/freebsd-x86/* + com/sun/jna/freebsd-x86-64/* @@ -100,4 +102,4 @@ - \ No newline at end of file + diff --git a/src/main/java/com/pavelfatin/typometer/screen/ScreenAccessor.java b/src/main/java/com/pavelfatin/typometer/screen/ScreenAccessor.java index 34b8428..f431231 100644 --- a/src/main/java/com/pavelfatin/typometer/screen/ScreenAccessor.java +++ b/src/main/java/com/pavelfatin/typometer/screen/ScreenAccessor.java @@ -26,7 +26,7 @@ public interface ScreenAccessor { void dispose(); static boolean isNativeApiSupported() { - return Platform.isWindows() || Platform.isLinux(); + return Platform.isWindows() || Platform.isLinux() || Platform.isFreeBSD(); } static ScreenAccessor create(boolean isNative) { @@ -34,7 +34,7 @@ static ScreenAccessor create(boolean isNative) { if (Platform.isWindows()) { return new WindowsScreenAccessor(); } - if (Platform.isLinux()) { + if (Platform.isLinux() || Platform.isFreeBSD()) { return new LinuxScreenAccessor(); } }