Releases: ebassi/graphene
Graphene 1.8.2 (stable)
New stable release.
The main change is that we've now disabled SIMD optimisations on 32 bit Intel architectures; there aren't many of those left, and in general compilers have been less than stellar when supporting SIMD types on them. This is especially problematic when it comes to using Graphene types inside other allocated structures, where SIMD alignment rules break system allocators on platforms like Windows. To avoid introducing weird bugs, if you're on 32 bit IA, you're only going to have access to the scalar SIMD implementation.
List of changes since 1.8.0:
- Fix include header reference in the GIR [Rico Tzschichholz]
- #114: Check if C pre-processor symbols are available before using them
- #121: Remove unused GObject hiearchy chapter from the API reference
- Fix the include header declaration in the API reference
- Various fixes for building with MSYS2 [Christoph Reiter]
- Fix various double to float conversion warnings
- Disable SSE2 and GCC vector SIMD implementations on 32bit IA
- Ensure that different SIMD implementations do not break ABI
- Require MSVC 2017 for 32bit builds on Windows/Visual Studio
Graphene 1.8.0 (stable)
No new API, this cycle, but it's time to spin a new stable release.
The major news for this release is that we dropped the Autotools build from the repository; Graphene is now built exclusively with Meson.
We've added various fixes to the build on macOS, in order to maintain compatibility with the old Autotools build.
The variables in the pkg-config file that expose the SIMD functionality built inside Graphene have been updated, to ensure that they can be easily consumed by other projects; instead of a single string that needs to be split, we now expose boolean variables for all SIMD implementations.
We've also improved the ability to use Graphene as a Meson sub-project; this allows Meson to check out, build, and depend on Graphene when building complex projects, like GTK. This is really useful inside CI pipelines, as it minimises the amount of separate steps needed when setting up the build.
Graphene 1.6.2 (stable)
Mostly fixes for the Meson build, to ensure it's a bit more idiomatic and conforms to what newer versions of Meson expect from a project.
Graphene 1.6.0 (stable)
Graphene 1.6.0 is the first stable release of the 1.6 cycle.
Notable changes
- The Meson dependency has been bumped to 0.37.0.
- Added
graphene_frustum_equal()
method. - Dropped the
-Denable-debug
option for the Meson build; debugging levels are handled through the--buildtype
Meson option; you can userelease
to disable all debugging code paths when building Graphene. - Graphene now automatically builds binaries for Windows (i686 and x86_64) using Appveyor; you can find the builds attached to the release notes.
Graphene 1.5.4 (snapshot)
Graphene 1.5.4 is a development snapshot towards the next stable release, 1.6.
Notable changes
- For the time being and after requests from distributors, the autotools build environment has been reinstated in Git, though Meson is still the preferred build environment; I still expect to drop the autotools build in the near future.
- Various improvements in the Meson build environment for the MSYS2 distribution
- Graphene now correctly identifies whether the platform has an aligned memory allocator
- Compatibility fixes for printing
int64_t
to terminal - Updated documentation on how to build Graphene on Windows and MSYS2
- Ensure that introspection data is correctly generated on Windows
Issues fixed
- Andrew Chadwick worked on the MSYS2 and Windows builds of Graphene
- Patrick Griffis fixed the cross-references to GLib types in the API reference build
- Nirbheek Chauhan worked on improving the builtin detection in the Meson build and the build of Graphene under MingW
Graphene 1.5.2 (snapshot)
Graphene 1.5.2 is a development snapshot towards the next stable release, 1.6.
Notable changes
- While support for the Meson build system was added during the 1.4 stable series in parallel with the existing autotools build, Graphene has now fully switched to Meson. This means that Graphene should now build faster and portably on different platforms.
- The initialization macros for
graphene_point_t
,graphene_point3d_t
,graphene_size_t
, andgraphene_rect_t
have been changed to use C99 designated initializers, and to allow their use as compound literals.
Issues fixed
- Matthias Clasen fixed the bounds transformation of matrices, especially for the 2D case
- Frederik Heger fixed the build of Graphene on ARM
- Chun-wei Fan improved the build under Windows
- Thibault Saunier improved the build in order to use Graphene as a Meson sub-project
Graphene 1.4.0 (stable)
Changes in 1.4.0 (2016-04-08)
- Build fix for on MSVC 2013 and newer (#58)
- Fix decomposition and interpolation between matrices
- Fix build when debugging is disabled (#57)
- Add radians-based API to
graphene_quaternion_t
(#32) - Fix bug in the
union()
operator ofgraphene_rect_t
(#49) - Documentation improvements (#44, #47, #48, #50, #52, #53, #53, #56; thanks to Sébastien Wilmet)
- Ensure that all SIMD implementations return similar results in edge cases
- Detect and use SSE 4.1 intrinsics for the SSE SIMD implementation
- Improve ARM NEON SIMD implementation
- Small micro-optimizations for all SIMD implementations
- Add non-mutating methods to
graphene_rect_t
- Add
graphene_ray_t
, a simple type used for ray casting
Graphene 1.2.10 (stable)
Changes since 1.2.8
- Avoid false positives in the affine/2D matrix detection, due to excessive rounding