Skip to content

Commit 79563f7

Browse files
committed
Expand README
1 parent 0a827e0 commit 79563f7

File tree

2 files changed

+29
-2
lines changed

2 files changed

+29
-2
lines changed

README.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,29 @@
11
# Learn Vulkan
22

33
[![Build status](https://github.com/cpp-gamedev/learn-vulkan/actions/workflows/ci.yml/badge.svg)](https://github.com/cpp-gamedev/learn-vulkan/actions/workflows/ci.yml)
4+
5+
This repository hosts the [learn-vulkan](https://cpp-gamedev.github.io/learn-vulkan/) guide's C++ source code. It also hosts the sources of the [guide](./guide) itself.
6+
7+
## Building
8+
9+
### Requirements
10+
11+
- CMake 3.24+
12+
- C++23 compiler and standard library
13+
- [Linux] [GLFW dependencies](https://www.glfw.org/docs/latest/compile_guide.html#compile_deps_wayland) for X11 and Wayland
14+
15+
### Steps
16+
17+
Standard CMake workflow. Using presets is recommended, in-source builds are not recommended. See the [CI script](.github/workflows/ci.yml) for building on the command line.
18+
19+
## Branches
20+
21+
1. `main`^: latest, stable code (builds and runs), stable history (never rewritten)
22+
1. `production`^: guide deployment (live), stable code and history
23+
1. `section/*`^: reflection of source at the end of corresponding section in the guide, stable code
24+
1. `feature/*`: potential upcoming feature, shared contributions, stable history
25+
1. others: unstable
26+
27+
_^ rejects direct pushes (PR required)_
28+
29+
[Original Repository](https://github.com/cpp-gamedev/learn-vulkan)

guide/src/README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Introduction
22

3-
Vulkan is known for being explicit and verbose. But the _required_ verbosity has steadily reduced with each successive version, its new features, and previous extensions being absorbed into the core API. Similarly, RAII has been a pillar of C++ since its inception, yet most Vulkan guides do not utilize it, instead choosing to "extend" the explicitness by manually cleaning up resources.
3+
Vulkan is known for being explicit and verbose. But the _required_ verbosity has steadily reduced with each successive version, its new features, and previous extensions being absorbed into the core API. Similarly, RAII has been a pillar of C++ since its inception, yet most existing Vulkan tutorials do not utilize it, instead choosing to "extend" the explicitness by manually cleaning up resources.
44

55
To fill that gap, this guide has the following goals:
66

@@ -10,6 +10,8 @@ To fill that gap, this guide has the following goals:
1010

1111
To reiterate, the focus is _not on performance_, it is on a quick introduction to the current standard multi-platform graphics API while utilizing the modern paradigms and tools (at the time of writing). Even disregarding potential performance gains, Vulkan has a better and more modern design and ecosystem than OpenGL, eg: there is no global state machine, parameters are passed by filling structs with meaningful member variable names, multi-threading is largely trivial (yes, it is actually easier to do on Vulkan than OpenGL), there are a comprehensive set of validation layers to catch misuse which can be enabled without _any_ changes to application code, etc.
1212

13+
For an in-depth Vulkan guide, the [official tutorial](https://docs.vulkan.org/tutorial/latest/00_Introduction.html) is recommended. [vkguide](https://vkguide.dev/) and the original [Vulkan Tutorial](https://vulkan-tutorial.com/) are also very popular and intensely detailed.
14+
1315
## Target Audience
1416

1517
The guide is for you if you:
@@ -30,4 +32,3 @@ Some examples of what this guide _does not_ focus on:
3032
## Source
3133

3234
The source code for the project (as well as this guide) is located in [this repository](https://github.com/cpp-gamedev/learn-vulkan). A `section/*` branch intends to reflect the state of the code at the end of a particular section of the guide. Bugfixes / changes are generally backported, but there may be some divergence from the current state of the code (ie, in `main`). The source of the guide itself is only up-to-date on `main`, changes are not backported.
33-

0 commit comments

Comments
 (0)