Ebitengine 2.8 Release Notes

v2.8.0

Issues for v2.8.0

This release primarily includes minor feature additions, bug fixes, and performance improvements.

Starting with Ebitengine 2.8, Go 1.22 or higher is required.

32-bit Float Audio Stream

Issue #2160

This release adds 32-bit float as a format for audio streams. Compared to 16-bit integer audio streams, 32-bit float streams make processing easier and may improve performance by reducing internal conversions.

The current 16-bit integer audio stream format will still be supported. You can mix 16-bit integer and 32-bit float streams. While there are no plans to deprecate 16-bit streams for now, Ebitengine version 3 is expected to support only 32-bit float streams.

Adding Custom Data to Vertex

Issue #2640

Four new float32 members—Custom0, Custom1, Custom2, and Custom3—have been added to the ebiten.Vertex structure as custom elements. This allows for more complex processing using Kage, the custom shader.

Correspondingly, the signature of the Fragment function in Kage has been updated. When using custom elements, use the signature that accepts custom vec4.

Improved Portability of exp/textinput

Issue #3072

exp/textinput supported Windows and macOS but was not implemented for environments like Linux. When used on Linux, no text could be input.

From this release, when exp/textinput is used in environments where IME handling is not implemented, text input will be possible without using IME. This improves code portability. The plan is to extend IME handling to more environments in the future.

OpenGL ES Preference

Issue #2944

In environments where OpenGL ES is available, it will now be preferred over OpenGL. This resolves performance issues in environments like the Raspberry Pi. The environment variable EBITENGINE_OPENGL is now ignored.

New APIs

Deprecated APIs

Before v2.8 After v2.8 Issue
ebiten.FillAll ebiten.FillRuleFillAll #3006
ebiten.NonZero ebiten.FillRuleNoneZero #3006
ebiten.EvenOdd ebiten.FillRuleEvenOdd #3006

Bug Fixes

This release includes all bug fixes from version 2.7 in addition to the following fixes:

Performance Improvements

Breaking Changes