Giter VIP home page Giter VIP logo

wayland-javafx's Introduction

wayland-javafx

A Wayland backend for JavaFX.

This is a work in progress. Currently software rendering, mouse & keyboard works (touch too but untested).

TODO:

  • output using hw rendering (via wayland drm buffers).
  • Rewrite & cleanup code to production quality standards.
  • Remove all 3rd party jdk libraries.
  • Include in openjfx as monocle back-end?
  • Create a non monocle, desktop enabled wayland back-end.

DONE:

  • output using sw rendering (via wayland shared memory buffers)
  • input handling through wayland's input protocols (keyboard+pointer+touch)

This library will make use of libraries not present in a standard jdk/jfx install as to get things up and running as quickly as possible.

The primary goal is to be able to use JavaFX as a pure client side widget toolkit capable to run on any Wayland compositor.

Initial effort will focus on creating a Wayland implementation for the JavaFX Monocle back-end. This back-end is meant for the embedded, fullscreen, single application use case.

Secondary effort is to create JavaFX Wayland back-end for general desktop usage.

#Running

In case you've decided you're crazy enough to take this ugly poc for a spin. Here's how:

  • Make sure you have a javafx version with monocle support available. This will most likely mean you'll have to build it from source (eglx86 profile for non embedded usage). See https://wiki.openjdk.java.net/display/OpenJFX/Building+OpenJFX#BuildingOpenJFX-CrossBuilds

  • Edit the pom.xml of the project and make sure <jfxrt.path>/home/zubzub/hg/openjfx8-devrt/build/sdk/rt/lib/ext/jfxrt.jar</jfxrt.path>matches the jfxrt.jar of your monacle enabled and installed jfx library.

  • Build the project. You will also need to build the latest SNAPSHOT versions of jaccall & wayland-java-bindings.

  • Copy the ./target/wayland-javafx-1.0.0-SNAPSHOT.jar to your local jdk installation's ext folder; eg. /usr/lib/jvm/oracle-jdk-bin-1.8/jre/lib/ext/

  • Run your javafx application; eg. unset DISPLAY && java -Dglass.platform=Monocle -Dmonocle.platform=Wayland -jar Ensemble8.jar

  • Make sure you delete wayland-javafx-1.0.0-SNAPSHOT.jar from your jdk installation once you're done as it might introduce some unwanted behavior in other programs.

wayland-javafx's People

Contributors

zubnix avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

wayland-javafx's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.