Jackalope / jrf (public) (License: GPLv3 or later version) (since 2019-11-21) (hash sha1)
Libriary for reading and writing resource files: vertices, indices, meshes, images, models and scene data.
Supports reading from filesystem as well as from zip files.
It uses unique binary container format for those resources.
It is used in tool for converting popular formats like wavefront .obj file, TARGA image to this container and also used in resource loader as part of graphics framework.

It requires jlib libriary (see my user repositories) and libzip.
It is possible to remove libzip dependency.
List of commits:
Subject Hash Author Date (UTC)
Disable including zip.h when JRF_ZIP is set to OFF. 1d08eeac2e17869048343374824b2a20b989c06d Jackalope 2020-06-04 22:17:26
jrf-tool - executable tool for writing resources to jrf format. 02445928c639b84594802362b00954756c7cb4d2 Jackalope 2020-06-03 21:35:29
VertexAttribute to string 57fbaedce57e67d38b4d82969b93c3a97b20b2b7 Jackalope 2020-06-04 18:13:19
ResourceHandle instead of ResourceUnion. e38ee04ee3b9d07118a9ce687d872bbe3ee9bcca Jackalope 2020-06-03 21:33:34
Convert array of images to image array. 3a46e488e402842fa713d4689ede7c948779c58d Jackalope 2020-06-03 01:47:05
Wavefront obj file converter. aa9023cf916fb5af85bc181a04c3e9252f97c098 Jackalope 2020-06-03 01:45:56
Forget to add config to installation! 9eb91f41049b2f0dcda1442c1750da4266e97376 Jackalope 2020-06-01 16:26:51
Better config, solving some issues with linking to jrf. 11ab2d21090cf684c08954ffabea0fe317afcc0a Jackalope 2020-06-01 16:24:51
Link jrf-shared to jlib-shared and jrf-static to jrf-static. b965856e0f894aa48555b9ccfef812bd15d2e3a6 Jackalope 2020-06-01 16:23:26
Version 0.2.2 d6aaf170a2db27ddcd429a89fd873341ea8a0082 Jackalope 2020-05-31 23:47:23
Move definitions to configuration file. a7b28738de65520eddd08cbd5d8c958fa16eedbe Jackalope 2020-05-31 21:45:28
CMake: build both shared and static with JRF_SHARED and JRF_STATIC options. When is subdirectory, select only one instead. 0dc49150959af90cd9210367a61113eca85650eb Jackalope 2020-05-31 21:38:50
CMake: version check changed. 500bcbe11c7f1e418e5d8116e89654d160c8dbd6 Jackalope 2020-05-31 21:37:47
Reduced warnings. 865f2c52ed60c37c050a1033905bb2df278032a0 Jackalope 2020-05-27 15:03:07
Make "find_package(jlib 0.2.0 REQUIRED)" optional 58bfc04890fab24adf5fc84963cb1a3bca7a8706 Jackalope 2020-05-24 16:39:14
changed notice about native compilation 0ed7e9e5e72a2d13e8add619f7999a51634f8e9c Jackalope 2020-05-24 16:37:54
Version 0.2.1 02d30aa69e9026a3f96d8549a297fccfbefbda47 Jackalope 2020-05-24 14:31:31
Why there is Doxyfile? 16cf9fe9e64353a2a717668cc4083465e2f8dff5 Jackalope 2020-05-24 14:25:20
Add license notice to CMakeLists.txt db2e7f018714cd2643c7928a8cce966d3da25059 Jackalope 2020-05-24 14:23:39
Make zip functionality optional 8e4409ba503637e5981f98c4df39ff4d649351de Jackalope 2020-05-24 14:23:18
Commit 1d08eeac2e17869048343374824b2a20b989c06d - Disable including zip.h when JRF_ZIP is set to OFF.
Author: Jackalope
Author date (UTC): 2020-06-04 22:17
Committer name: Jackalope
Committer date (UTC): 2020-06-05 00:45
Parent(s): 02445928c639b84594802362b00954756c7cb4d2
Signing key:
Tree: 772b39a17822110d612221531f278a762f255866
File Lines added Lines deleted
CMakeLists.txt 1 1
include/jrf/read.h 4 1
include/jrf/zip.h 4 0
src/config.h.in 1 0
File CMakeLists.txt changed (mode: 100644) (index 274180d..330283b)
... ... if (NOT JRF_SKIP_PACKAGE_JLIB-0.4)
26 26 find_package(jlib 0.4.3 REQUIRED) find_package(jlib 0.4.3 REQUIRED)
27 27 endif() endif()
28 28
29 option(JRF_ZIP "Enable reading from zip AND libzip wrapper" ON)
29 option(JRF_ZIP "Enable reading from zip AND libzip wrapper" OFF)
30 30 if(JRF_ZIP) if(JRF_ZIP)
31 31 find_library(ZIP_LIB NAMES libzip libzip.so) find_library(ZIP_LIB NAMES libzip libzip.so)
32 32 else() else()
File include/jrf/read.h changed (mode: 100644) (index a409cfa..f33b54c)
18 18 */ */
19 19 #pragma once #pragma once
20 20 #include "jrf.h" #include "jrf.h"
21 #if JRF_ZIP
21 22 #include "zip.h" #include "zip.h"
23 #endif
22 24 #include <jlib/darray.h> #include <jlib/darray.h>
23 25 #include <jlib/io_agent_mem_ro.h> #include <jlib/io_agent_mem_ro.h>
24 26 #include <jlib/fs.h> #include <jlib/fs.h>
 
... ... namespace jrf
244 246 return Result::FILE_UNEXPECTED_EOF; return Result::FILE_UNEXPECTED_EOF;
245 247 return res; return res;
246 248 } }
247
249 #if JRF_ZIP
248 250 template<ResourceType RT> [[nodiscard]] inline template<ResourceType RT> [[nodiscard]] inline
249 251 Result read(typename Resource<RT>::T *p_resource, Result read(typename Resource<RT>::T *p_resource,
250 252 const char *p_zip_path, const char *p_fpath_in_zip) { const char *p_zip_path, const char *p_fpath_in_zip) {
 
... ... namespace jrf
267 269 return Result::FILE_UNEXPECTED_EOF; return Result::FILE_UNEXPECTED_EOF;
268 270 return res; return res;
269 271 } }
272 #endif
270 273 //single path - file path, two paths - zip and file in zip //single path - file path, two paths - zip and file in zip
271 274 template<typename ... PATHS> [[nodiscard]] inline template<typename ... PATHS> [[nodiscard]] inline
272 275 Result read(ResourceType type, ResourceHandle rh, PATHS ... paths) { Result read(ResourceType type, ResourceHandle rh, PATHS ... paths) {
File include/jrf/zip.h changed (mode: 100644) (index 63e9171..ce919bc)
17 17 * along with this library. If not, see <https://www.gnu.org/licenses/> * along with this library. If not, see <https://www.gnu.org/licenses/>
18 18 */ */
19 19 #pragma once #pragma once
20 #include "config.h"
21 #if !JRF_ZIP
22 #error JRF zip functionality is disabled.
23 #endif
20 24 #include <zip.h> #include <zip.h>
21 25 #include <jlib/allocate.h> #include <jlib/allocate.h>
22 26
File src/config.h.in changed (mode: 100644) (index 617c1d2..51141b9)
5 5 #define JRF_VERSION_PATCH ${PROJECT_VERSION_PATCH} #define JRF_VERSION_PATCH ${PROJECT_VERSION_PATCH}
6 6 #define JRF_VERSION "${PROJECT_VERSION}" #define JRF_VERSION "${PROJECT_VERSION}"
7 7 #define JRF_CONTAINER_VERSION_NUMBER ${JRF_CONTAINER_VERSION_NUMBER} #define JRF_CONTAINER_VERSION_NUMBER ${JRF_CONTAINER_VERSION_NUMBER}
8 #cmakedefine01 JRF_ZIP
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/Jackalope/jrf

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/Jackalope/jrf

Clone this repository using git:
git clone git://git.rocketgit.com/user/Jackalope/jrf

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main