From b381e4ee88aa6866033a431e73cc019ba9d5a950 Mon Sep 17 00:00:00 2001 From: Gabor Galgoczy <ggabor2002@gmail.com> Date: Wed, 14 Feb 2024 13:17:36 +0100 Subject: [PATCH] Create mkdocs --- .../.clang-format => .clang-format | 0 .../starter-project/.gitignore => .gitignore | 0 .../CMakeLists.txt => CMakeLists.txt | 0 .../Vulkan Bevezet\305\221.pptx" | Bin 785622 -> 785806 bytes docs/index.md | 3 ++ docs/lectures/01.md | 22 ++++++++ mkdocs.yml | 49 ++++++++++++++++++ .../starter-project/src => src}/App.cpp | 0 .../starter-project/src => src}/App.hpp | 0 .../src => src}/CMakeLists.txt | 0 .../starter-project/src => src}/main.cpp | 0 11 files changed, 74 insertions(+) rename lectures/lecture_01/starter-project/.clang-format => .clang-format (100%) rename lectures/lecture_01/starter-project/.gitignore => .gitignore (100%) rename lectures/lecture_01/starter-project/CMakeLists.txt => CMakeLists.txt (100%) rename "lectures/lecture_01/Vulkan Bevezet\305\221.pptx" => "docs/Vulkan Bevezet\305\221.pptx" (96%) create mode 100644 docs/index.md create mode 100644 docs/lectures/01.md create mode 100644 mkdocs.yml rename {lectures/lecture_01/starter-project/src => src}/App.cpp (100%) rename {lectures/lecture_01/starter-project/src => src}/App.hpp (100%) rename {lectures/lecture_01/starter-project/src => src}/CMakeLists.txt (100%) rename {lectures/lecture_01/starter-project/src => src}/main.cpp (100%) diff --git a/lectures/lecture_01/starter-project/.clang-format b/.clang-format similarity index 100% rename from lectures/lecture_01/starter-project/.clang-format rename to .clang-format diff --git a/lectures/lecture_01/starter-project/.gitignore b/.gitignore similarity index 100% rename from lectures/lecture_01/starter-project/.gitignore rename to .gitignore diff --git a/lectures/lecture_01/starter-project/CMakeLists.txt b/CMakeLists.txt similarity index 100% rename from lectures/lecture_01/starter-project/CMakeLists.txt rename to CMakeLists.txt diff --git "a/lectures/lecture_01/Vulkan Bevezet\305\221.pptx" "b/docs/Vulkan Bevezet\305\221.pptx" similarity index 96% rename from "lectures/lecture_01/Vulkan Bevezet\305\221.pptx" rename to "docs/Vulkan Bevezet\305\221.pptx" index b6476f0b1c3bdbb87bd194e48783ada3dda92033..ccab89d2f47f42a22829164085c728b0249c42ee 100644 GIT binary patch delta 14787 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ʭ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 delta 14701 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 MW@CQI&A`9_0Bsd$761SM diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..6e679fa --- /dev/null +++ b/docs/index.md @@ -0,0 +1,3 @@ +# Vulkan Workshop + +A workshopok alkalmával átadott tudásanyag írásos része itt megtalálható. diff --git a/docs/lectures/01.md b/docs/lectures/01.md new file mode 100644 index 0000000..598e5e8 --- /dev/null +++ b/docs/lectures/01.md @@ -0,0 +1,22 @@ +# Inicializálás + +Mielőtt nekilátnál a kódolásnak, hozz létre egy kiinduló projektet. A példák kiinduló kódja megtalálható [ezen a linken](https://git.sch.bme.hu/kszk/devteam/vulkan-workshop/-/tree/master/lectures/lecture_01/starter-project?ref_type=heads). + +A példák Vulkan mellett [glm](https://github.com/g-truc/glm), [GLFW](https://www.glfw.org/) és [VulkanMemoryAllocator](https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator?tab=readme-ov-file) könyvtárakat használnak. + +Érdemes még a [bevezető előadás](../Vulkan%20Bevezető.pptx) áttanulmányozása. + +## Általános + +A workshop folyamán a [Vulkan hivatalos C++ binding-ja](https://github.com/KhronosGroup/Vulkan-Hpp)it fogjuk használni, és a kódok is C++20-ban lettek megírva. + +## Instance + +Bármilyen Vulkan kód kiinduló eleme egy `vk::Instance` (C-ben `VkInstance`) objektum. Ez mondja meg, hogy milyen Vulkan verziót kívánunk használni, és milyen konfigurációkkal. + +!!! note inline end "" + + A C++ binding-ban [RAII támogatás](https://github.com/KhronosGroup/Vulkan-Hpp/blob/main/vk_raii_ProgrammingGuide.md) is adott. De ez tapasztalat alapján nekünk inkább csak a fordítást fogja lassítani, minthogy a kódolásban könnyedséget okozna. + +Mivel ez egy Vulkan handle, ezért használat után nekünk kell "felszabadítani". Habár nem best practice, de mi minden ilyen handle helyett egy C++ `unique_ptr`-hez hasonló struktúrába fogjuk becsomagolni ezeket, amit a Vulkan binding ad. + diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 0000000..bde8e0b --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,49 @@ +site_name: Vulkan Workshop +theme: + name: material + language: hu + features: + - content.code.copy + - navigation.tabs + - navigation.tabs.sticky + icon: + admonition: + note: octicons/tag-16 + abstract: octicons/checklist-16 + info: octicons/info-16 + tip: octicons/squirrel-16 + success: octicons/check-16 + question: octicons/question-16 + warning: octicons/alert-16 + failure: octicons/x-circle-16 + danger: octicons/zap-16 + bug: octicons/bug-16 + example: octicons/beaker-16 + quote: octicons/quote-16 + palette: + - media: "(prefers-color-scheme: light)" + scheme: default + toggle: + icon: material/brightness-7 + name: Switch to dark mode + - media: "(prefers-color-scheme: dark)" + scheme: slate + toggle: + icon: material/brightness-5 + name: Switch to light mode + +markdown_extensions: + - admonition + - pymdownx.details + - pymdownx.highlight: + anchor_linenums: true + line_spans: __span + pygments_lang_class: true + - pymdownx.inlinehilite + - pymdownx.snippets + - pymdownx.superfences + - pymdownx.tabbed: + alternate_style: true +nav: + - Alkalmak: + - 1. alkalom: lectures/01.md diff --git a/lectures/lecture_01/starter-project/src/App.cpp b/src/App.cpp similarity index 100% rename from lectures/lecture_01/starter-project/src/App.cpp rename to src/App.cpp diff --git a/lectures/lecture_01/starter-project/src/App.hpp b/src/App.hpp similarity index 100% rename from lectures/lecture_01/starter-project/src/App.hpp rename to src/App.hpp diff --git a/lectures/lecture_01/starter-project/src/CMakeLists.txt b/src/CMakeLists.txt similarity index 100% rename from lectures/lecture_01/starter-project/src/CMakeLists.txt rename to src/CMakeLists.txt diff --git a/lectures/lecture_01/starter-project/src/main.cpp b/src/main.cpp similarity index 100% rename from lectures/lecture_01/starter-project/src/main.cpp rename to src/main.cpp -- GitLab