changelog/v4/4.0-rc/CHANGELOG-v4.0-rc.3.md
This release candidate introduces better pixel art controls, and fixes performance issues related to pixel art options.
Updates since RC2:
GameObject#vertexRoundMode added to control vertex pixel rounding on a per-object basis.
"off": Never round vertex positions."safe": Round vertex positions if the object is "safe": it is rendering with a transform matrix which only affects the position, not other properties such as scale or rotation."safeAuto" (default): Like "safe", but only if rendering through a camera where roundPixels is enabled."full": Always round vertex positions. This can cause sprites to wobble if their vertices are not safely aligned with the pixel resolution, e.g. during rotations. This is good for a touch of PlayStation 1 style jank."fullAuto": Like "full", but only if rendering through a camera where roundPixels is enabled.GameObject#willRoundVertices(camera, onlyTranslated) returns whether vertices should be rounded. In the unlikely event that you need to control vertex rounding even more precisely, you are intended to override this method.Blocky filter added. This is similar to Pixelate, but it picks just a single color from the image, preserving the palette of pixel art. You can also configure the pixel width and height, and offset. This is a good option for pixelating a retro game at high resolution, setting up for additional filters such as CRT emulation.WebGLSnapshot and snapshot functions based on it now return the correct pixel, instead of the one above it (or nothing if they're at the top of the image).ArcadePhysics#closest() and #furthest() are properly defined (thanks @samme).GamepadPlugin.stopListeners and GamepadPlugin.disconnectAll now have guards around them so they won't try to invoke functions on potentially undefined gamepads (thanks @cryonautlex)Thanks to the following people:
@ospira @samme @OuttaBounds @raaaahman