commit 9b9d8a187fd7af9b81a09a7797fedb749b4e40a6 Author: Emmanuele Bassi Date: Thu Sep 10 11:19:19 2015 +0100 Release Graphene 1.2.8 (stable) configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) commit bed9077a4c7001d43d882673e72e7d042b960e13 Author: Emmanuele Bassi Date: Wed Sep 9 19:37:17 2015 +0100 matrix: Go back to the simd4x4 is_2d() operator Now that we have a working baseline, and now that the is_2d() operator for graphene_simd4x4f_t is not affected by floating point fluctuations, we can go back to using it. We can leave the fuzzy comparison code in place, in case of regressions, for ease of debugging. src/graphene-matrix.c | 4 ++++ 1 file changed, 4 insertions(+) commit bbb069f9c28dd2c5533bd58825993465a8d9a092 Author: Emmanuele Bassi Date: Wed Sep 9 19:34:18 2015 +0100 simd4x4: Use nearbyint() to check for equality Instead of using direct equality, we should use the nearbyintf() function, so that any rounding errors get squashed. src/graphene-simd4x4f.h | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) commit c16ce27d47e0411f975be6dee3f5c9ae6825df01 Author: Emmanuele Bassi Date: Wed Sep 9 19:28:47 2015 +0100 simd4x4: Unroll conditions for is_2d() Split up the conditions, for readability. src/graphene-simd4x4f.h | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) commit 8ba7fdd0a298e24e58c954ace82c2589037f45e5 Author: Emmanuele Bassi Date: Wed Sep 9 19:24:20 2015 +0100 tests: Check the effects of rotating a 2D matrix Rotating a 2D matrix on the Z axis should not result in a non-affine transformation; conversely, rotating the same matrix on the Y axis should result in a non-affine transformation. Let's test both assumptions. src/tests/matrix.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) commit c5e57280d5187e653f5b38c03f39ad24a49bfe5b Author: Emmanuele Bassi Date: Wed Sep 9 19:22:21 2015 +0100 matrix: Unroll the is_2d() operator The is_2d() implementation inside graphene_simd4x4f_t is susceptible to floating point rounding errors. We can make the public wrapper API inside graphene_matrix_t a bit more forgiving, by using the private fuzzy comparison macro. src/graphene-matrix.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) commit 2d2510d0d6134dc3d40aca6094f64cbb6e25380e Author: Emmanuele Bassi Date: Wed Sep 9 18:58:49 2015 +0100 private: Add a fuzzy comparison macro We use it in the test suite, but it's also useful internally. src/graphene-private.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) commit cf30a56c134d385faab35121ca6261ee9f6846d9 Author: Emmanuele Bassi Date: Wed Sep 9 16:19:30 2015 +0100 tests: Add tests for 2D matrices It's nicer if we ensure that this stuff does not break with every commit. src/tests/matrix.c | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) commit 02cce7babfdde8761774c72d0cd065ffbfff5654 Author: Emmanuele Bassi Date: Wed Sep 9 15:53:55 2015 +0100 matrix: Optimize the 2D matrix conversion Check for a valid 2D affine transformation matrix while we're reading it, instead of before hand. src/graphene-matrix.c | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) commit 619c0ddd894cfb52c011afa86a2b9684dcb1d6c1 Author: Emmanuele Bassi Date: Wed Sep 9 15:52:18 2015 +0100 simd4x4: Flip the boolean check Use a boolean AND between conditions, and negate its result, instead of a boolean OR. This allows faster short-circuiting of expensive single channel read operations. src/graphene-simd4x4f.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) commit 02944f4b9d37a5df65d479b9d5ace2ac9ffb0342 Author: Emmanuele Bassi Date: Wed Sep 9 15:51:29 2015 +0100 matrix: Fix a typo in the 2D matrix initializer We're setting the two fields with the same value. src/graphene-matrix.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 3842fef4a2f291b64d83a3977946b07c86ac46d6 Author: Emmanuele Bassi Date: Wed Sep 9 11:54:00 2015 +0100 Fix spacing in the filter script Conflicting file loading directives in Vim screwed up the tab stops. build/identfilter.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) commit ce326efc310ee056a153df4bf1555f4dbc025229 Author: Emmanuele Bassi Date: Wed Sep 9 11:47:27 2015 +0100 build: Use an external script for filtering type names When building introspection data we need to turn our lowercase type names ending with '_t' into camel-case identifiers that match the expectations of GObject-Introspection. We currently use a Sed invocation, but we're also relying on GNU Sed extensions that are not portable to other operating systems — e.g. MacOS and *BSD. Instead of using Sed, we can use a small Python script that does the same transformation, with a higher chance at being portable. Fixes #42 Makefile.am | 3 ++- build/identfilter.py | 29 +++++++++++++++++++++++++++++ src/Makefile.am | 8 ++------ 3 files changed, 33 insertions(+), 7 deletions(-) commit 921a6246911d703f882155c37204abb3ab9f9d06 Author: Emmanuele Bassi Date: Wed Sep 9 10:35:10 2015 +0100 build: Clean up the introspection rules Use a separate variable to store the Sed incantantion, to improve readability. src/Makefile.am | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) commit 5a64e0f848d8a5ee5eb7676eb69db7800294f567 Author: Emmanuele Bassi Date: Fri Aug 14 15:57:22 2015 +0100 Post-release version bump to 1.2.7 configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)