LWJGL / lwjgl3

LWJGL is a Java library that enables cross-platform access to popular native APIs useful in the development of graphics (OpenGL, Vulkan, bgfx), audio (OpenAL, Opus), parallel computing (OpenCL, CUDA) and XR (OpenVR, LibOVR, OpenXR) applications.
https://www.lwjgl.org
BSD 3-Clause "New" or "Revised" License
4.72k stars 632 forks source link

libusb & hidapi bindings #664

Open SWinxy opened 3 years ago

SWinxy commented 3 years ago

libusb is an open-source, cross-platform C library that allows for communication through the USB standard. Supports:

hidapi is another open-source, cross-platform C library, but interacts with USB and Bluetooth human interface devices. Supports:

Motivation

While LWJGL provides GLFW, application developers may want to tinker with specialized USB devices that GLFW doesn't cover. These may be digital instruments, interfaces, or a whole host of things. Accessing them in the efficient manner that LWJGL does would give Java a leg up.

For example, if I wanted to interface with an Arduino or Raspberry Pi with a not-invented-here mindset, or I needed to get inputs from a digital knob, these libraries would allow me to access those devices directly.

Alternatives and their drawbacks

Sciss commented 2 years ago

Apologies for hijacking on the thread - but @SWinxy what is your recommendation for USB Java bindings that work on Raspberry Pi (4) with custom USB controllers?

SWinxy commented 2 years ago

what is your recommendation for USB Java bindings that work on Raspberry Pi (4) with custom USB controllers?

I don't know. My best advice would to try the alternatives?