From 7feee2e4997ba0e7f904afd3a14f7a2057c3964a7e4d651b69e4a1358c67d17f Mon Sep 17 00:00:00 2001 From: Michael Vetter Date: Tue, 31 Mar 2020 09:29:16 +0000 Subject: [PATCH] - Update to 3.0.0: * All global variables from the multiple raylib modules have been moved to a global context state, it has several benefits, first, better code readability with more comprehensive variables naming and categorization (organized by types, i.e. CORE.Window.display.width, CORE.Input.Keyboard.currentKeyState or RLGL.State.modelview). Second, it allows better memory management to load global context state dynamically when required (not at the moment), making it easy to implement a hot-reloading mechanism if desired. * All memory allocations on raylib and its dependencies now use RL_MALLOC, RL_FREE and similar macros. Now users can easely hook their own memory allocations mechanism if desired, having more control over memory allocated internally by the library. Additionally, it makes it easier to port the library to embedded devices where memory control is critical. For more info check raylib issue #1074. * All I/O file accesses from raylib are being moved to memory data access, now all I/O file access is centralized into just four functions: LoadFileData(), SaveFileData(), LoadFileText(), SaveFileText(). Users can just update those functions to any I/O file system. This change makes it easier to integrate raylib with Virtual File Systems or custom I/O file implementations. * All raylib data structures have been reviewed and optimized for pass-by-value usage. One of raylib distinctive design decisions is that most of its functions receive and return data by value. This design makes raylib really simple for newcomers, avoiding pointers and allowing complete access to all structures data in a simple way. The downside is that data is copied on stack every function call and that copy could be costly so, all raylib data structures have been optimized to stay under 64 bytes for fast copy and retrieve. * All raylib tracelog messages have been reviewd and categorized OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/raylib?expand=0&rev=20 --- 2.5.0.tar.gz | 3 --- 3.0.0.tar.gz | 3 +++ raylib.changes | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++ raylib.spec | 27 +++++++++++------------ 4 files changed, 74 insertions(+), 17 deletions(-) delete mode 100644 2.5.0.tar.gz create mode 100644 3.0.0.tar.gz diff --git a/2.5.0.tar.gz b/2.5.0.tar.gz deleted file mode 100644 index 8bf0470..0000000 --- a/2.5.0.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:fa947329975bdc9ea284019f0edc30ca929535dc78dcf8c19676900d67a845ac -size 73808565 diff --git a/3.0.0.tar.gz b/3.0.0.tar.gz new file mode 100644 index 0000000..582afc3 --- /dev/null +++ b/3.0.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d9c77695f1206b56a5d49d0c1b4087d6ac2679611eee16b36c4b9871036cca7 +size 92255617 diff --git a/raylib.changes b/raylib.changes index 15ce626..b2259ce 100644 --- a/raylib.changes +++ b/raylib.changes @@ -1,3 +1,61 @@ +------------------------------------------------------------------- +Tue Mar 31 09:17:57 UTC 2020 - Michael Vetter + +- Update to 3.0.0: + * All global variables from the multiple raylib modules have + been moved to a global context state, it has several benefits, first, better + code readability with more comprehensive variables naming and categorization + (organized by types, i.e. CORE.Window.display.width, + CORE.Input.Keyboard.currentKeyState or RLGL.State.modelview). Second, it allows + better memory management to load global context state dynamically when required + (not at the moment), making it easy to implement a hot-reloading mechanism if + desired. + * All memory allocations on raylib and its dependencies now use + RL_MALLOC, RL_FREE and similar macros. Now users can easely hook their own + memory allocations mechanism if desired, having more control over memory + allocated internally by the library. Additionally, it makes it easier to port + the library to embedded devices where memory control is critical. For more info + check raylib issue #1074. + * All I/O file accesses from raylib are being moved + to memory data access, now all I/O file access is centralized into just four + functions: LoadFileData(), SaveFileData(), LoadFileText(), SaveFileText(). + Users can just update those functions to any I/O file system. This change makes + it easier to integrate raylib with Virtual File Systems or custom I/O file + implementations. + * All raylib data structures have been reviewed and optimized + for pass-by-value usage. One of raylib distinctive design decisions is that + most of its functions receive and return data by value. This design makes + raylib really simple for newcomers, avoiding pointers and allowing complete + access to all structures data in a simple way. The downside is that data is + copied on stack every function call and that copy could be costly so, all + raylib data structures have been optimized to stay under 64 bytes for fast copy + and retrieve. + * All raylib tracelog messages have been reviewd and categorized + for a more comprehensive output information when developing raylib + applications, now all display, input, timer, platform, auxiliar libraries, + file-accesses, data loading/unloading issues are properly reported with more + detailed and visual messages. + * raudio module has been internally reviewed to + accomodate the new Music structure (converted from previous pointer format) and + the module has been adapted to the highly improved miniaudio v0.10. + * text module reviewed to improve fonts generation and text management functions, Font + structure has been redesigned to better accomodate characters data, decoupling + individual characters as Image glyphs from the font atlas parameters. Several + improvements have been made to better support Unicode strings with UTF-8 + encoding. + * Multiple new examples added (most of them contributed by raylib + users) and all examples reviewed for correct execution on most of the supported + platforms, specially Web and Raspberry Pi. A detailed categorized table has + been created on github for easy examples navigation and code access. + * New GitHub Actions CI system has been implemented for Windows, Linux and macOS code + and examples compilation on every new commit or PR to make sure library keeps + stable and usable with no breaking bugs. + * Note that only key changes are + listed here but there is way more! About 30 new functions, multiple functions + reviewed, bindings to +40 programming languages and great + samples/demos/tutorials created by the community, including raylib integration + with Spine, Unity, Tiled, Nuklear, enet and more! + ------------------------------------------------------------------- Fri May 31 09:26:07 UTC 2019 - mvetter@suse.com diff --git a/raylib.spec b/raylib.spec index 6b1f0e9..3045547 100644 --- a/raylib.spec +++ b/raylib.spec @@ -1,7 +1,7 @@ # # spec file for package raylib # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,12 +12,12 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # Name: raylib -Version: 2.5.0 +Version: 3.0.0 Release: 0 Summary: C library for learning video game programming License: Zlib @@ -39,21 +39,21 @@ raylib is inspired by the Borland BGI graphics library and by the XNA framework. %package -n raylib-devel Summary: Development files for %{name} Group: Development/Libraries/C and C++ -Requires: libraylib2 = %{version} +Requires: libraylib301 = %{version} Requires: openal-soft-devel %description -n raylib-devel Development files and headers for %{name}. -%package -n libraylib2 +%package -n libraylib301 Summary: C library for learning video game programming Group: System/Libraries -%description -n libraylib2 +%description -n libraylib301 A C library for learning video game programming. %prep -%setup -q -n raylib-2.5.0 +%setup -q -n raylib-3.0.0 %build %cmake \ @@ -62,17 +62,16 @@ A C library for learning video game programming. %install %cmake_install -#rm %{buildroot}%{_libdir}/libraylib.a -%post -n libraylib2 -p /sbin/ldconfig -%postun -n libraylib2 -p /sbin/ldconfig +%post -n libraylib301 -p /sbin/ldconfig +%postun -n libraylib301 -p /sbin/ldconfig -%files -n libraylib2 -%{_libdir}/libraylib.so.2 -%{_libdir}/libraylib.so.2.5.0 +%files -n libraylib301 +%{_libdir}/libraylib.so.301 +%{_libdir}/libraylib.so.3.0.0 %files -n raylib-devel -%license LICENSE.md +%license LICENSE %doc CHANGELOG README.md %{_includedir}/raylib.h %{_libdir}/libraylib.so