KhronosGroup / KhronosGroup/Vulkan-Hpp
Provide clearer examples on naming rules, symbol types, enum values in Vulkan-Hpp versus C API
- Dominant language
- C++
- Stars
- 3.8k
- Forks
- 374
- Avg merge
- 23h 4m
- Merged PRs (30d)
- 32
Description
This has been a repeated topic by consumers over the years:
- https://www.reddit.com/r/vulkan/comments/1t5vvfg/vulkanhpp_documentation/
- https://www.reddit.com/r/vulkan/comments/klavw6/vulkan_hpp_cheatsheet/
- https://www.reddit.com/r/vulkan/comments/9ltcgt/valid_documentation_for_vulkanhpp/
- https://discord.com/channels/427551838099996672/530530428621160448/1540511372238913566
I think we need to augment the documentation with more concrete examples illustrating how Vulkan-Hpp naming rules differ from their C counterparts, as well as how their usages is different. The C API makes heavy use of macros, even for enum constants; these are typed and need to be collated in one place. We have not documented that constant macros are `constexpr` typed constants, and function-like macros such as `VK_MAKE_API_VERSION` are now (possibly `constexpr`) _functions_.
Contributor guide
Research direction
Review the existing Vulkan-Hpp documentation and the linked consumer discussions first; the issue does not name a specific documentation file or test. Add concrete comparisons covering naming rules, symbol and enum types, typed constant macros, and function-like macros, with examples showing how Vulkan-Hpp usage differs from the C API.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 64/100