Sync from SUSE:SLFO:Main graphene revision 1d5801b53a3b05bb0dd3c0f902c3454e

This commit is contained in:
Adrian Schröter 2024-05-03 13:16:46 +02:00
parent 5f7b806900
commit 56e3e17f05
5 changed files with 455 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
baselibs.conf Normal file
View File

@ -0,0 +1 @@
libgraphene-1_0-0

BIN
graphene-1.10.8.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

295
graphene.changes Normal file
View File

@ -0,0 +1,295 @@
-------------------------------------------------------------------
Fri Mar 18 17:29:48 UTC 2022 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 1.10.8:
+ ray:
- simplify NaN checking.
- Improve intersection
+ Build fixes.
+ SIMD:
- Make reciprocal operations 0-safe.
- Add simplified scalar reciprocal.
+ tests:
- Fix installed introspection test.
- Add ray intersection unit.
+ Fix detection of AArch64.
+ Documentation fixes.
-------------------------------------------------------------------
Thu Apr 15 11:42:40 UTC 2021 - Dominique Leuenberger <dimstar@opensuse.org>
- Update to version 1.10.6:
+ Hide GRAPHENE_SIMD_S from the introspection data.
+ Nudge ray axis when intersecting a box.
- Changes from version 1.10.4:
+ Add ARM NEON support when building with Visual Studio.
+ Build fix on ARM64 Windows.
+ Drop deprecated "python3" Meson module.
+ Fix detection of non-intersecting boxes.
+ Only enable SSE2 on x86_64.
+ Use the compiler-appropriate alignment attributes.
+ Change introspection option to a yielding feature.
- Change -Dintrospection=true meson parameter to
-Dintrospection=enabled: follow upstream build system changes.
- Wrap -Dsse2=true meson parameter into %ifarch x86_64: 32bit
builds for example do not support sse2 (likely boo#1184678).
-------------------------------------------------------------------
Thu Jan 28 12:08:06 UTC 2021 - Bjørn Lie <bjorn.lie@gmail.com>
- Pass conditional Darm_neon=false instead of Darm-neon=true to
meson, fix build for armv7.
- Stop passing Dbenchmarks=true, no longer recognized nor used.
-------------------------------------------------------------------
Tue Jun 23 19:20:50 UTC 2020 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 1.10.2:
+ Disable SSE on 32bit builds on Windows with MSVC
+ Add more documentation on the conventions used by matrix
operations
+ Fix Euler angles/matrix conversion
+ Various bugs fixed.
-------------------------------------------------------------------
Tue May 5 12:25:24 UTC 2020 - Dominique Leuenberger <dimstar@opensuse.org>
- Use %{_libexecdir} instead of %{_prefix}/lib: follow the package
installer definition.
-------------------------------------------------------------------
Mon Sep 9 08:41:28 UTC 2019 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 1.10.0:
+ API additions, mostly driven by Gthree:
- Add graphene_matrix_decompose().
- Add intersection methods to graphene_ray_t.
- graphene_triangle_init_from_float().
- graphene_triangle_get_uv().
+ Fix graphene_ray_transform().
+ Documentation fixes.
-------------------------------------------------------------------
Fri Sep 6 15:53:59 NZST 2019 - luke@ljones.dev
- Update to version 1.9.6:
+ Add radians based initialisers for graphene_euler_t.
+ Use pragma once for the header inclusion guard.
+ Remove unused function (#159)
+ Add multiply(), scale(), and add() operators to
graphene_quaternion_t.
+ Add lerp() operator to all vector types.
+ Add graphene_plane_transform()
+ Documentation updates for graphene_ray_t.
+ Fix graphene_box_get_center() and.
graphene_box_get_bounding_sphere() (#165)
+ Ensure that we detect empty or infinite boxes in the.
graphene_box_t API.
- Changes from version 1.9.4:
+ Graphene now uses an ancillary library called µTest for its
test suite; this means it's possible to build and run the test
suite without necessarily depending on GLib.
+ the conversion of the Euler angles type to and from matrices and.
quaternions has been rewritten from scratch, and should not only
be finally correct, but it should also cover more use cases—namely
the "proper" Euler angles as well as the TaitBryan angles.
+ the ARM NEON implementation of the SIMD types has been improved,
fixed, and tested, so it's not marked as experimental any more.
+ Require Meson ≥ 0.50.1.
+ Fix graphene_quaternion_equal() to consider the orientation, not
just the component equality.
+ Fix graphene_quaternion_slerp() to always interpolate along the
shortest path.
+ Re-implement the conversion of graphene_euler_t to and from
graphene_matrix_t and graphene_quaternion_t.
+ Add graphene_rectangle_get_area()
+ Document restrictions of graphene_rect_round(), and deprecate the function.
+ Add graphene_rect_round_extents()
+ Port the test suite from GLib's testing utilities to µTest.
+ Remove internal floating point comparisons.
+ Improve the NEON extensions detection code.
+ Fix comparison operators for graphene_simd4f_t on ARM using the
NEON extensions.
+ Remove the "experimental" compiler warning from the ARM NEON
implementation of graphene_simd4f_t.
- Changes from version 1.9.2:
+ Add graphene_rect_scale() method.
+ Fix warning from Meson by dropping unnecessary argument to.
configure_file()
+ Clean up arguments of pkgconfig.generate()
+ Add equality operators to graphene_matrix_t.
+ Add getters for translation components of a graphene_matrix_t.
+ Use darwin_versions argument instead of rolling our own.
+ Add GRAPHENE_RECT_INIT_ZERO
-------------------------------------------------------------------
Mon Mar 25 23:24:28 UTC 2019 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 1.8.6:
+ Bug fixes, bug fixes everywhere! Also: documentation changes to
clarify what we do behind the veil of the various matrix
multiplication functions. Hopefully, this should help people
using Graphene especially when it comes to integration with
other libraries.
+ Fix matrix multiplication when the result matrix is also one of
the operands.
+ Fix check when converting a 4x4 matrix into an affine
transformation matrix.
+ Fix interpolation between matrices with a perspective
component.
+ Documentation fixes for matrix/matrix and matrix/vector
multiplication operators.
- Changes from version 1.8.4:
+ Mostly a bug fixing release, with an especially glaring bug fix
in the point transformation function of graphene_matrix_t that
was found thanks to GTK 4. Now the function is covered by the
test suite, so it should not regress.
+ Another major fix is the ensuring that we have a description of
the SIMD types through introspection, which means that language
bindings can finally know how big every other structure using
them is. The SIMD API is still not available through
introspection, as it's a pure C convenience.
+ Require Meson ≥ 0.48.0.
+ Fix matrix/point transformation.
+ Build fixes for MSVC.
+ Introspection fixes for bool.
+ Fix the InitOnce checks on Windows.
+ Correctly parse SIMD types for introspection.
+ Build fixes for the pkg-config file.
+ Documentation fixes:
- Clarify matrix/vector/point multiplication.
- Clarify plane description.
- Clarify the units for the matrix skew factors.
- Document use of graphene-gobject with Meson.
-------------------------------------------------------------------
Thu Jun 14 19:37:38 UTC 2018 - bjorn.lie@gmail.com
- Update to version 1.8.2:
+ 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.
-------------------------------------------------------------------
Fri Feb 23 01:05:52 UTC 2018 - bjorn.lie@gmail.com
- Update to version 1.8.0:
+ 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.
- Update options passed to meson, following upstream changes:
gtk_doc=true, gobject_types=true, introspection=true,
gcc_vector=true, sse2=true, arm-neon=true, tests=true and
benchmarks=true.
-------------------------------------------------------------------
Thu Feb 22 23:34:27 UTC 2018 - bjorn.lie@gmail.com
- Update to version 1.6.2:
+ 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.
- Do a minor spec clean, use autosetup and license macros.
- Stop exporting LANG=C.UTF-8, fixed upstream.
- Stop exporting i586 conditional SUSE_ASNEEDED=0, fixed upstream.
- Pass explict enable-gtk-doc=true, enable-gobject-types=true,
enable-introspection=true, enable-gcc-vector=true,
enable-sse2=true and enable-arm-neon=true to meson, ensure we
build the features we want.
- Following the above, add gtk-doc BuildRequires and package the
now built documentation in devel subpackage.
- Stop using sed to ensure we are using python3, fixed upstream.
- Add fdupes BuildRequires and macro, remove duplicate files.
-------------------------------------------------------------------
Wed Nov 29 12:22:26 UTC 2017 - dimstar@opensuse.org
- Switch to python3:
+ Update the shebang in src/identfilter.py using sed.
+ Replace --identifier-filter-cmd=python in src/meson.build with
--identifier-filter-cmd=python3 (using sed).
+ Add python3-base BuildRequires: needed to have the python3
interpreter present.
-------------------------------------------------------------------
Thu Aug 10 01:57:07 CEST 2017 - ro@suse.de
- on i586, disable sse2 for the moment, otherwise the package
fails in the testsuite on the "box" test
-------------------------------------------------------------------
Sat Mar 4 08:47:33 UTC 2017 - zaitor@opensuse.org
- Update to version 1.6.0:
+ 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 use release 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.
-------------------------------------------------------------------
Tue Feb 28 18:30:47 UTC 2017 - dimstar@opensuse.org
- Add baselibs.conf: produce libgraphene-1_0-0-32bit, required by
gtk4.
-------------------------------------------------------------------
Wed Jan 11 13:19:22 UTC 2017 - zaitor@opensuse.org
- Update to version 1.5.4:
+ 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.
+ Graphene now correctly identifies whether the platform has an
aligned memory allocator.
+ Compatibility fixes for printing int64_t to terminal.
+ Fixed the cross-references to GLib types in the API reference
build.
+ Improve the builtin detection in the Meson build and the build
of Graphene under MingW.
- Switch to github url, gnome url is currently broken.
- Pass export LANG=C.UTF-8, workaround meson issue.
- Drop sed call to workaround Mesa issue.
-------------------------------------------------------------------
Tue Dec 6 14:13:57 UTC 2016 - dimstar@opensuse.org
- Use meson provided macros to build instead of carrying the long
meson command lines.
-------------------------------------------------------------------
Mon Nov 28 00:01:10 UTC 2016 - jengelh@inai.de
- Trim description outside the main subpackage of interest;
reflow summaries.
-------------------------------------------------------------------
Thu Nov 24 14:38:15 UTC 2016 - dimstar@opensuse.org
- Initial package, version 1.5.2.

133
graphene.spec Normal file
View File

@ -0,0 +1,133 @@
#
# spec file for package graphene
#
# Copyright (c) 2022 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: graphene
Version: 1.10.8
Release: 0
Summary: Thin type layer for graphic libraries
License: MIT
Group: Development/Languages/C and C++
URL: https://ebassi.github.io/graphene/
Source: https://download.gnome.org/sources/graphene/1.10/%{name}-%{version}.tar.xz
Source99: baselibs.conf
BuildRequires: fdupes
BuildRequires: gobject-introspection-devel
BuildRequires: gtk-doc
BuildRequires: meson >= 0.48.0
BuildRequires: pkgconfig
BuildRequires: python3-base
BuildRequires: pkgconfig(gobject-2.0) >= 2.30.0
%description
The Graphene library provides types and their relative API for affine
matrices, 4×4 matrices, projections, transformations, vectors and
quaternions.
%package -n libgraphene-1_0-0
Summary: Thin type layer for graphic libraries
Group: System/Libraries
%description -n libgraphene-1_0-0
When creating graphic libraries you most likely end up dealing with points
and rectangles. If you're particularly unlucky, you may end up dealing
with affine matrices and 2D transformations. If you're writing a graphic
library with 3D transformations, though, you are going to hit the jackpot:
4x4 matrices, projections, transformations, vectors, and quaternions.
This library provides types and their relative API; it does not deal with
windowing system surfaces, drawing, scene graphs, or input. You're
supposed to do that yourself, in your own canvas implementation, which is
the whole point of writing the library in the first place.
%package -n typelib-1_0-Graphene-1_0
Summary: GObject introspection for libgraphene, a thin type layer for graphic libraries
Group: System/Libraries
%description -n typelib-1_0-Graphene-1_0
The Graphene library provides types and their relative API for affine
matrices, 4×4 matrices, projections, transformations, vectors and
quaternions.
%package -n libgraphene-devel
Summary: Development files for libgraphene, a thin type layer for graphic libraries
Group: Development/Languages/C and C++
Requires: libgraphene-1_0-0 = %{version}
Requires: typelib-1_0-Graphene-1_0 = %{version}
%description -n libgraphene-devel
The Graphene library provides types and their relative API for affine
matrices, 4×4 matrices, projections, transformations, vectors and
quaternions.
This subpackage contains the development files for the Graphene library.
%prep
%autosetup -p1
%build
%meson \
-Dgtk_doc=true \
-Dgobject_types=true \
-Dintrospection=enabled \
-Dgcc_vector=true \
%ifarch x86_64
-Dsse2=true \
%endif
%ifarch armv7hl
-Darm_neon=false \
%else
-Darm_neon=true \
%endif
-Dtests=true \
%{nil}
%meson_build
%install
%meson_install
%fdupes %{buildroot}%{_libdir}/pkgconfig
%check
%meson_test
%post -n libgraphene-1_0-0 -p /sbin/ldconfig
%postun -n libgraphene-1_0-0 -p /sbin/ldconfig
%files -n libgraphene-1_0-0
%license LICENSE.txt
%{_libdir}/libgraphene-1.0.so.*
%files -n typelib-1_0-Graphene-1_0
%{_libdir}/girepository-1.0/Graphene-1.0.typelib
%files -n libgraphene-devel
%doc %{_datadir}/gtk-doc/html/*
%{_includedir}/graphene-1.0/
%{_libexecdir}/installed-tests/
%{_libdir}/libgraphene-1.0.so
%{_libdir}/pkgconfig/graphene-1.0.pc
%{_libdir}/pkgconfig/graphene-gobject-1.0.pc
%dir %{_libdir}/graphene-1.0
%dir %{_libdir}/graphene-1.0/include
%{_libdir}/graphene-1.0/include/graphene-config.h
%{_datadir}/gir-1.0/Graphene-1.0.gir
%dir %{_datadir}/installed-tests
%dir %{_datadir}/installed-tests/graphene-1.0
%{_datadir}/installed-tests/graphene-1.0/*
%changelog