{"id":19862006,"url":"https://github.com/edgomez/vulkan_tutorial","last_synced_at":"2025-11-24T18:01:58.676Z","repository":{"id":146114357,"uuid":"562302383","full_name":"edgomez/vulkan_tutorial","owner":"edgomez","description":"Following the vulkan-tutorial.com","archived":false,"fork":false,"pushed_at":"2023-03-04T14:41:52.000Z","size":16,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2025-03-01T00:24:02.744Z","etag":null,"topics":["tutorial","vulkan"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/edgomez.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-11-05T22:58:07.000Z","updated_at":"2022-11-05T23:09:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"4d3722f3-5660-4eeb-8faf-4929f510f6ea","html_url":"https://github.com/edgomez/vulkan_tutorial","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/edgomez/vulkan_tutorial","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edgomez%2Fvulkan_tutorial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edgomez%2Fvulkan_tutorial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edgomez%2Fvulkan_tutorial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edgomez%2Fvulkan_tutorial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/edgomez","download_url":"https://codeload.github.com/edgomez/vulkan_tutorial/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edgomez%2Fvulkan_tutorial/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286079811,"owners_count":27282121,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-24T02:00:07.096Z","response_time":68,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["tutorial","vulkan"],"created_at":"2024-11-12T15:10:29.189Z","updated_at":"2025-11-24T18:01:58.635Z","avatar_url":"https://github.com/edgomez.png","language":"C++","readme":"# Vulkan Tutorial\n\n## Description\n\nThis is my attempt at following the [Vulkan Tutorial](https://vulkan-tutorial.com/),\nbut I won't just compile their GitHub code.\n\nWalking the path is probably going to be more fruitful on the long term.\n\n## Requirements\n\nI won't assume much about your development environment, but the code\ncontained in this repository expects the following software to be\ninstalled:\n\n1. SDL2 development package\n2. Vulkan development package\n3. Validation layer development package\n4. CMake \u003e= 3.20 (not a hard requirement, but I know this version will work for sure)\n5. A C++11 compiler (clang, g++ are fine, msvc may work)\n\n## How to build\n\n```console\ncd \"${vulkan_tutorial_root}\"\ncmake -B build/host -S . -G \"Ninja Multi-Config\" -DCMAKE_BUILD_TYPE=RelWithDebInfo\ncmake --build build/host --target all\n```\n\nOf course you can decide the generator that best fits your\ndevelopment environment.\n\n## Code structure\n\nThe top layer `CMakeLists.txt` just recurses into the `tutorial` directory\nthat then descends into each chapter.\n\nNote I added a `00_common` chapter that implements a `VulkanTutorialCommon`\nlibrary to factor pieces of code that are used in more than one chapter.\n\nEach `CMakeLists.txt` tutorial file is written in a way that makes it\nstandalone except for its dependency on the `VulkanTutorialCommon`\nlibrary which is found in `00_common`\n\nThe code is written in c++ 11, and the CMake code tries to apply modern\nCMake guidelines.\n\nI tend to add c++ files that just include their header counter part. This\naims at ensuring the headers are self sufficient by including them first\nin the c++ compilation unit.\n\nAlso note that `install()` instructions are added even though i doubt\nthere is any value in ever installing the resulting compilation artefacts.\n\nThe code is the interesting part in this repository, not the resulting\nbinaries/headers.\n\n## Code style\n\nI don't like discussing coding style, I use clang-format to style my\ncode... it does it relatively well, and I don't like to enforce a style\nmanually\u003c/lazy programmer\u003e\n\nPlease apply the style as using the file `.clang-format` located at the\nroot of this repository.\n\n## Editing the code with Visual Studio Code\n\nThat's what I personally use, but it's not mandatory. If you do so,\nI advise you installing the following extensions:\n\n- C/C++ from Microsoft\n- Better C++ syntax from Jeff Hykin\n- CMake Tools from Microsoft\n- CMake Language Support from Jose Torres\n\nWith these, you can configure/build/edit the code comfortably w/ code\ncompletion/browsing/formatting etc...\n\n## License\n\nThe code found in this repository is licensed under the terms of the\nMIT license. See the [LICENSE](./LICENSE) file for the exact terms.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedgomez%2Fvulkan_tutorial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fedgomez%2Fvulkan_tutorial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedgomez%2Fvulkan_tutorial/lists"}