Skip to content

6.0.0 - Automatic Memory Management

Choose a tag to compare

@AlexanderJCS AlexanderJCS released this 24 Dec 02:38
· 20 commits to main since this release

6.0.0 - Automatic Memory Management

Breaking Changes

JANGL class

  • Rename from JANGL to Jangl, since there may be some confusion with JANGL being a constant instead of a class.

Image class

  • Rework the image class:
    • Allow the image to accept any Shape, instead of a Rect
    • Allow the image to accept up to two Bindables.

Text class

  • Introduce a TextBuilder
    • Text must be created with a TextBuilder class.
  • Text.getBatch() is private

TextureBuilder class

  • TextureBuilder.setFilterMode() takes in a jangl.graphics.textures.enums.FilterMode object instead of an integer.
  • Textures now use smooth scaling (linear filter mode) by default instead of pixelated scaling (nearest filter mode)

Transform class

  • Remove deprecated methods
  • Re-do how Transforms work to make it more intuitive
  • Remove Transform.rotateAround(), Transform.rotateRelative(), and Transform.rotateOrigin() for a single Transform.rotate() method, which only rotates around the object's center.

Shape classes

  • Remove Rect.setWidth() and Rect.setHeight() in lieu of Transform.setScaleX() and Transform.setScaleY()
  • Remove Circle.setRadius() in lieu of transform scaling

Model Class

  • Remove Model.setVertices(). Instead, manipulate the model with a Transform class, substitute the vertices, or create a new Model class.

ColorFactory class

  • Change "Normalized" in method names to "Norm". E.g., fromNormalized() is now fromNorm()

Backwards Compatible Changes

Memory Management

  • All objects are now automatically freed when the garbage collector runs, so calling .close() at the end of an object's lifespan is not required. However, it is still recommended to call to prevent strain on the garbage collector.

Builder classes

  • For builders, add a .toObject() method (e.g., TextureBuilder.toTexture(), BatchBuilder.toBatch())

ColorFactory class

  • Add from255HSVA() method

Sound class

  • Change the pitch and speed of a sound using Sound.setPitchAndSpeed(float). You can also access the current set value using Sound.getPitchAndSpeed().

TextureBuilder class

  • Add TextureBuilder.setWrapMode(WrapMode), along with a new jangl.graphics.textures.enums.WrapMode object
  • Add a shortcut for TextureBuilder.setImagePath(pathstr): new TextureBuilder(pathstr)

Coordinates classes

  • Add a PixelCoords and WorldCoords copy constructor

Text class

  • Add a yCutoff value, that can be set in the text factory
  • Add a wrapWidth value, that can be set in the text factory.

Bugfixes

  • Model.getDrawCallCount() works correctly
  • Circles take into account scaling when checking for collision
  • Binding points are checked when being added to the shader, instead of at creation of the UBO
  • Remove setting the window to the center of the screen due to scaling issues when the application is opened on a secondary monitor with a different resolution to the primary monitor.