Jackalope / jen (#659) (public) (License: GPLv3 or later version) (since 2020-05-18)
----> ABOUT:

3D rendering and computing framework based on Vulkan API.

Libraries:
- simdcpp submodule (see my simdcpp repo)
- jmath submodule (see my jmath repo)
- mesh (constexpr generation of cubes, spheres, icosahedrons subdivisions)
- atlas (1D lines and 2D rectangles cutting)
- jlib submodule (see my jlib repo)
- jrf submodule (see my jrf repo)
- vkw (Vulkan API C++ wrapper)
Modules:
- compute (run compute shaders on gpu)
- graphics (draw models with clustered forward rendering and onscreen text)
- resource manager (load meshes, models, textures, scene data from
files and create related objects in graphics module)

----> INSTALLING:

To download all the parts of this framework it's enough to launch
git clone with recursive flag:

$ git clone —recursive ssh://rocketgit@ssh.rocketgit.com/user/Jackalope/jen

After this look at git tags:

$ git tag

It is recommended to use a tagged version instead of the latest commit,
because the first commit after the tagged one mostly includes incompatible
parts of future changes for the next version.

$ git checkout v0.1.0

----> DEPENDENCIES:

To use JEN as CMake subdirectory and successfully build programs with it
you need to make sure you have all of its dependencies:
- compiler: Clang or GCC, support for C++17. Clang 10+ or GCC 9+ is recommended,
compiling on Windows OS is tricky and requires something like MinGW with MSYS,
there are also some complications to go through to make dependencies work;
- GLFW3 library, supported version is 3.2.1;
- FreeType library, if graphics module will be used;
- Vulkan API headers, and optional validation layers to debug sneaky problems,
you also need Vulkan support in your graphics driver to run compiled programs;
- LibZip can be necessary, if JRF is used to read zip files;
- CMake, for obvious reasons;
- glslangValidator to compile shader for the graphics module.

CMake must be able to find GLFW3, Vulkan and FreeType (for graphics)
with find_package().

----> HOW TO USE IT:

To use JEN, you need to add it as a subdirectory:

add_subdirecroty(${PATH_TO_JEN})

There are several configuration options:
- JEN_MODULE_COMPUTE - turn compute module on for compiling and including;
- JEN_MODULE_GRAPHICS - turn graphics module on ...;
- JEN_MULTITHREADED_DRAW_FRAME - draw_frame function will use thread pool queue
instead of linear executing;
- JEN_MODULE_RESOURCE_MANAGER - resource manager module ON, if graphics is ON;
- JEN_VLK_VALIDATION - enable Vulkan Validation Layers to debug some errors
related to JEN. This will often produce false-positive,
as well as true-positive errors.

Look in CMakeLists.txt at JenExamples repo for details on how to use and
configure JEN automatically:

$ git clone ssh://rocketgit@ssh.rocketgit.com/user/Jackalope/JenExamples

Also I recommend to compile and run examples to make sure it works correctly.

----> SUPPORTED HARDWARE:

JEN has not been tested well, because it requires running it on large amount of
different hardware to do so. It must work with mesa driver and modern
Intel i965 GPUs as well as AMD GPUs.


----> DOCUMENTATION:

You can generate Doxygen documentation, to do so
turn on any of JEN_DOXYGEN_* options and run documentation target in cmake:

$ cmake -G %1 -DJEN_DOXYGEN_HTML=ON -DJEN_DOXYGEN_LATEX=ON
$ cmake —build —target documentation

Resource manager is not documented because it still requires large enhancements.
Date (UTC) User Event
2020-05-29 16:52 Jackalope Reference refs/heads/master updated from 18bf33ca4e0e7f0369f6b5fdc59b81a8420dde8e to c828a38456627d0383d431165b802f97fd303349
2020-05-27 15:08 Jackalope Reference refs/heads/master updated from 1cedb5886becc0f70c19d1c649e96f7eac5e0037 to 18bf33ca4e0e7f0369f6b5fdc59b81a8420dde8e
2020-05-27 13:04 Jackalope Reference refs/heads/master updated from e877e7a688ee4a899480c12acba55c340622f993 to 1cedb5886becc0f70c19d1c649e96f7eac5e0037
2020-05-27 12:38 Jackalope Reference refs/heads/master updated from 1c713a320ced91d0ad5f1606c39f1187871d28e5 to e877e7a688ee4a899480c12acba55c340622f993
2020-05-26 11:44 Jackalope Reference refs/heads/master updated from bf3ec94ce3020715e246107a47efc9a8772db382 to 1c713a320ced91d0ad5f1606c39f1187871d28e5
2020-05-24 22:48 Jackalope Reference refs/heads/master updated from b4903e20d9128227163119fe73e32cda5050cb67 to bf3ec94ce3020715e246107a47efc9a8772db382
2020-05-24 16:36 Jackalope Reference refs/heads/master updated from 3518adb37045d4e4eb4488c8c07e3f674f5fbac3 to b4903e20d9128227163119fe73e32cda5050cb67
2020-05-24 14:29 Jackalope Reference refs/heads/master updated from 8720e50ca5f692a96ba764cab1a250683c6a0c59 to 3518adb37045d4e4eb4488c8c07e3f674f5fbac3
2020-05-24 13:49 Jackalope Reference refs/heads/master updated from 2d12a790d0c81448db6a920e5dc9186d1dce758e to 8720e50ca5f692a96ba764cab1a250683c6a0c59
2020-05-24 13:39 Jackalope Reference refs/heads/master updated from 98c73665c12797a530d12e34dc764e72a8767ad1 to 2d12a790d0c81448db6a920e5dc9186d1dce758e
2020-05-24 01:15 Jackalope Reference refs/heads/master updated from 6cbf56692fcb6b6187f39aa4cb0cb0d722eada0f to 98c73665c12797a530d12e34dc764e72a8767ad1
2020-05-24 00:28 Jackalope Reference refs/heads/master updated from adcfd55f60dfc6eea019f083019012a0b4aa8f02 to 6cbf56692fcb6b6187f39aa4cb0cb0d722eada0f
2020-05-23 16:24 Jackalope Reference refs/heads/master updated from 834ceab8e0ea99b6b8c25928c9f3be968679cff3 to adcfd55f60dfc6eea019f083019012a0b4aa8f02
2020-05-21 11:54 Jackalope Reference refs/heads/master updated from f1adac801689ee3f7905d2582ac26948260bb352 to 834ceab8e0ea99b6b8c25928c9f3be968679cff3
2020-05-20 22:19 Jackalope Reference refs/heads/master updated from 3c38bb0e9916aea31ef796a53a024aa3111e1ec7 to f1adac801689ee3f7905d2582ac26948260bb352
2020-05-19 17:45 Jackalope Reference refs/heads/master updated from 072430e257166208d6f4a7b759169779f21bf4c8 to 3c38bb0e9916aea31ef796a53a024aa3111e1ec7
2020-05-18 17:58 Jackalope Reference refs/heads/master updated from 55b1d39969b9a27a602c464ca216a89ec92cee0b to 072430e257166208d6f4a7b759169779f21bf4c8
2020-05-17 08:20 Jackalope Reference refs/heads/master updated from 84231ce8c36619f9c696cb7da2879f504fa2e66c to 55b1d39969b9a27a602c464ca216a89ec92cee0b
2020-05-17 07:46 Jackalope Reference refs/heads/master updated from 4fab20bc30f66ff96fdc9a336708cc5049c13ecb to 84231ce8c36619f9c696cb7da2879f504fa2e66c
2020-05-17 04:10 Jackalope Reference refs/heads/master updated from efa9657336852c3543221bc56f4121f698f26044 to 4fab20bc30f66ff96fdc9a336708cc5049c13ecb
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/jen

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

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

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