Skip to content

jMonkeyEngine 3.5.0-stable

Compare
Choose a tag to compare
@stephengold stephengold released this 23 Jan 08:26
· 6 commits to v3.5 since this release

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() and calculateNormal() methods in Rectangle class (PR #1701)
    • CenterQuad mesh in jme3-core (PR #1704)
    • added getNbMorphTargets(), setKeyframesWeight(), and setNbMorphTargets() to the MorphTrack class (PR #1608)
    • made getOffsetTransform() and getAttachmentsNode() accessible to subclasses of Joint (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)
  • 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 a LineLoop 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 in reloadJoysticks() when joystick lacks buttons (issue #1739, PR #1740)
    • LwjglCanvas doesn't initialize OpenCL for LWJGL v2 (PR #1720)
    • sphericalToCartesianZ() doesn't reverse cartesianZToSpherical() (issue #1349, PR #1573)
    • null-pointer exceptions while loading erroneous glTF models:
      • in GltfLoader.findChildren() (PR #1471)
      • in SkinningControl.getAttachmentsNode() (issue #1612, PR #1639)
    • 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:
      • CartoonEdgeFilter class (issue #1640, PR #1647)
      • RenderState class (issues #1718 and #1723; PRs #1719 and #1726)
      • ShaderNodeVariable class (PR #1585)
      • Torus class (PR #1586)
      • SkeletonInterBoneWire, SkeletonPoints, SkeletonWire, ArmatureInterJointsWire, Surface, and CenterQuad (issue #1705, PR #1754)
    • 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:

    • Quaternion.negate() (PR #1702)
    • BitmapText(BitmapFont font, boolean rightToLeft) (PR #1685)
    • CenterQuad mesh in jme3-vr (3097f05)