Java Fx Video Texture
JVM video texture driven by JavaFX MediaPlayer. JavaFX has no per-frame callback API, so we host the MediaView in an off-screen Scene (no javafx.stage.Stage attached) and snapshot the view on every JavaFX AnimationTimer pulse — that's the standard idiom for "give me the current video frame as pixels".
The snapshot returns a WritableImage; we read its pixels in PixelFormat.getByteBgraInstance format into a heap byte array and forward to the CallbackVideoTexture base. The GL thread uploads on the next bind.
Runtime requirement: OpenJFX 21+ runtime JARs (javafx-base, javafx-graphics, javafx-media, javafx-swing) with the host platform classifier on the module path — JavaFX rejects classpath loads since JDK 9.
Properties
Caller opt-out for mipmap generation.
Filesystem path or URL to the media. A bare path is wrapped via File.toURI.