jMonkeyEngine 3.5.0-stable
A production-quality release of JMonkeyEngine with the following noteworthy changes relative to v3.4.1-stable:
-
Upgrade considerations (potential breaking changes):
- explicitly requires Java v8 or higher (issue #1661)
- cannot create a GL window on armhf (issue #1710)
- to use the "jme3-lwjgl3" library in a Gradle build, you'll need Gradle v6.3 or later
- more precise return types for 13
clone()
methods (issue #1676, PR #1683) - changed the semantics of
FastMath.sphericalToCartesianZ()
(issue #1349, PR #1573) - deleted the
Weights
class, which was deprecated in v3.4 (issue #1620, PR #1632) - protected the no-arg constructor of
TransformTrack
(PR #1531)
-
New features:
- enhancements to
SurfaceView
for Android (PR #1650), including:- optional binding to activity lifecycle
- added listeners for "layout drawn" and "renderer started"
- new
DestructionPolicy
applied when exiting an activity - add full stack trace and a "copy log" button to the error dialog
- added settings for "show error dialog", "exit on Esc pressed", and "show Esc exit prompt"
- added the
getGlEsVersion()
method
- determine the maximum supported width for lines (issue #1555, PR #1643)
- support for additional compressed texture formats (issue #1619, PR #1621)
- texture flipping for certain RGTC formats (PR #1629)
- app settings to position the initial window in LWJGL v3 (issue #1668, PR #1670)
- a color-adjustment filter (issue #781, PR #1665, a9e88b0)
RectangleMesh
class for custom quads (PR #1701)calculateD()
andcalculateNormal()
methods inRectangle
class (PR #1701)CenterQuad
mesh in jme3-core (PR #1704)- added
getNbMorphTargets()
,setKeyframesWeight()
, andsetNbMorphTargets()
to theMorphTrack
class (PR #1608) - made
getOffsetTransform()
andgetAttachmentsNode()
accessible to subclasses ofJoint
(PR #1536) - distinguish ARM macOS/Windows from other platforms (issue #1528, PR #1530)
Platform.getOs()
to determine the generic OS name (cc75352)- convert inner class
Layer
to a top-level class (issue #1566, PRs #1656 and #1730)
- enhancements to
-
Bugs and defects addressed:
- LWJGL v3 hangs while creating a window (issues #1193, #1514, and #1558; PRs #1690 and #1722)
- incorrect cursor position on macOS with Retina (issue #893, PRs #1607, #1746, and #1753; c44d74b)
- Right-to-Left and cursive fonts displayed incorrectly (issue #1158, PR #1685)
- incorrect
VirtualIndexBuffer
for aLineLoop
mesh (issue #1603, PR #1605) ChaseCamera
won't rotate after being re-enabled (PR #1692)- ineffective audio filters (issue #1699, PRs #1707 and #1728)
NullPointerException
inreloadJoysticks()
when joystick lacks buttons (issue #1739, PR #1740)LwjglCanvas
doesn't initialize OpenCL for LWJGL v2 (PR #1720)sphericalToCartesianZ()
doesn't reversecartesianZToSpherical()
(issue #1349, PR #1573)- null-pointer exceptions while loading erroneous glTF models:
- cryptic crash when more than 16 textures are used (issue #37, PR #1574)
- error 1280 in macOS querying
GL_FRAMEBUFFER_SRGB_CAPABLE_EXT
(PR #1749) fromJmeKeyCode()
returns garbage for unknown keys (issue #1596, PR #1638)- serialization bugs:
- typo in the value returned by
LodGenerator.toString()
(cfa497d) - typos in logger/exception messages (PRs #1584 and #1737, 3beca2b)
-
General improvements:
- upgraded LWJGL to v3.3.0 (PR #1659)
- faster asset loading on Android devices (issue #1622, PR #1627)
- faster writing of MJPEG files (PR #1592)
- more efficient logging (issues #1672 and #1680, PRs #1673 and #1682)
- un-deprecate
AndroidBufferImageLoader
(PR #1660) - numerous javadoc improvements
- improvements to examples and tests
-
New deprecations: