Experiment in graphics programming, C++, OpenGL, simulation techniques.
| {#} | Time | Hash | Subject | Author | # | (+) | (-) | GPG? |
|---|---|---|---|---|---|---|---|---|
| 12 | 09 Dec 2023 13:51 | 1467546 | Update README | Josh Stockin | 1 | 1 | 1 | G |
| Object | Latest Commit Subject | Time | Hash |
|---|---|---|---|
| Fractal renderer update for article | 08 Dec 2023 15:21 | 5a717fe | |
| Fractal renderer update for article | 08 Dec 2023 15:21 | 5a717fe | |
| Use GL3W | 05 Aug 2023 23:14 | 3c60e1a | |
| Fractal renderer update for article | 08 Dec 2023 15:21 | 5a717fe | |
| Initial commit | 03 Aug 2023 17:13 | a07587e | |
| Update README | 09 Dec 2023 13:51 | 1467546 | |
| ImGui bringup | 03 Sep 2023 23:17 | 7457fba | |
| Create base Engine class | 04 Aug 2023 22:32 | f2ac8af |
Hobby project/experiment in C++, graphics programming, and world generation.
Run ./zydeco.sh to compile, build, and run. Requires CMake and a
C++20-capable compiler, as well as the dependencies below. Executable is
outputted at build/zydeco in the project root directory.
Zydeco depends upon the following C/C++ libraries:
| Library | Purpose | Source |
|---|---|---|
fmt |
String formatting for debug output messages | libfmt-dev |
cpptrace |
Producing stack traces for fault output | GitHub |
SDL2 |
Cross-platform solution for creating and managing windows, OpenGL contexts | libsdl2-dev |
GL |
OpenGL | libgl-dev |
gl3w |
OpenGL loader with extensions enabled | GitHub |
imgui |
Immediate-mode GUI, used for debug menus | GitHub (docking branch) |
Notes on installing dependencies:
cpptrace is included by CMakeLists.txt as a system-wide dependency. You can
either install it this way by the instructions in the linked repo, or remove
its use in src/util/Fault.cpp and the requirement in CMakeLists.txt.gl3w should be run in a new directory lib/gl3w with python3 gl3w_gen.py --extgit clone --branch docking --single-branch --depth=1 https://github.com/ocornut/imgui.git to lib/imguiDepending on how your package manager installed SDL2, there might be a
disparity for SDL2 #includes between imgui and this application. If this is
the case, you may need to manually update imgui or this source code to add or
remove "SDL2/" in <SDL2/sdl_file_name.h>, depending on where your package
manager installed things.
It's not as pretty as I made it look in the article. OpenGL abstractions in
src/render. Fractal application in src/game/Mandelbrot.cpp. Shaders in
include/render/shaders. If you're looking to try out new z-transforms, you'll
want to modify include/render/shaders/fractal.cs.glsl.