Skip to content

jMonkeyEngine 3.5.0-beta4

Pre-release
Pre-release
Compare
Choose a tag to compare
@stephengold stephengold released this 17 Dec 18:07
· 52 commits to v3.5 since this release

A non-production release for development and testing, which will hopefully lead to a "stable" release.

Noteworthy changes relative to 3.4.1-stable:

  • Upgrade considerations (potential breaking changes):

    • explicitly requires Java 8 or higher (issue #1661)
    • 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)
    • to use the "jme3-lwjgl3" library in a Gradle build, you'll need Gradle v6.3 or later
  • 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)
    • 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)
    • convert inner class Layer to a top-level class (issue #1566, PR #1656)
  • Bugs and defects addressed:

    • LWJGL v3 hangs while creating a window (issues #1193, #1514, and #1558, PR #1690)
    • Right-to-Left and cursive fonts displayed incorrectly (issue #1158, PR #1685)
    • incorrect cursor position on macOS with Retina (issue #893, PR #1607)
    • incorrect VirtualIndexBuffer for a LineLoop mesh (issue #1603, PR #1605)
    • 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)
    • fromJmeKeyCode() returns garbage for unknown keys (issue #1596, PR #1638)
    • serialization bugs:
      • CartoonEdgeFilter class (issue #1640, PR #1647)
      • ShaderNodeVariable class (PR #1585)
      • Torus class (PR #1586)
    • typos in logger/exception messages (PR #1584, 3beca2b)
  • General improvements:

  • New deprecations:

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