{"id":20161608,"url":"https://github.com/stablecoder/vulkan-mini-libs","last_synced_at":"2025-08-21T19:12:57.495Z","repository":{"id":99244154,"uuid":"240273694","full_name":"StableCoder/vulkan-mini-libs","owner":"StableCoder","description":"Builds a source/header file for use in C++17 or newer. It lists contains all Vulkan enum flags/values of the indicated Vulkan header spec version, and can convert to/from strings representing those values.","archived":false,"fork":false,"pushed_at":"2022-01-26T03:12:33.000Z","size":13942,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-03T02:43:25.432Z","etag":null,"topics":["bitflag","bitset","cpp","cpp17","enum","flag","flagbits","flags","vulkan","vulkan-library","xml","xml-parser"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/StableCoder.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":"2020-02-13T14:01:01.000Z","updated_at":"2024-07-20T11:15:16.000Z","dependencies_parsed_at":"2023-04-18T17:18:53.513Z","dependency_job_id":null,"html_url":"https://github.com/StableCoder/vulkan-mini-libs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/StableCoder/vulkan-mini-libs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StableCoder%2Fvulkan-mini-libs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StableCoder%2Fvulkan-mini-libs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StableCoder%2Fvulkan-mini-libs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StableCoder%2Fvulkan-mini-libs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/StableCoder","download_url":"https://codeload.github.com/StableCoder/vulkan-mini-libs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/StableCoder%2Fvulkan-mini-libs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271526448,"owners_count":24775447,"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-08-21T02:00:08.990Z","response_time":74,"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":["bitflag","bitset","cpp","cpp17","enum","flag","flagbits","flags","vulkan","vulkan-library","xml","xml-parser"],"created_at":"2024-11-14T00:19:47.265Z","updated_at":"2025-08-21T19:12:57.420Z","avatar_url":"https://github.com/StableCoder.png","language":"C++","readme":"## WARNING!\n\nThis repository has been superseeded by Vulkan-Mini-Libs-2, which compacts all Vulkan versions into single header files instead of the large multitude here! It can be found on GitHub @ https://github.com/StableCoder/vulkan-mini-libs-2\n\n# Vulkan Mini Libs\n[![pipeline status](https://git.stabletec.com/utilities/vulkan-mini-libs/badges/main/pipeline.svg)](https://git.stabletec.com/utilities/vulkan-mini-libs/commits/main)\n[![coverage report](https://git.stabletec.com/utilities/vulkan-mini-libs/badges/main/coverage.svg)](https://git.stabletec.com/utilities/vulkan-mini-libs/commits/main)\n[![license](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](https://git.stabletec.com/utilities/vulkan-mini-libs/blob/main/LICENSE)\n\nA set of small header-only libraries that are of limited scope each to perform a very specific task.\n\n\n## Vulkan Error Code\n\nHeader files for C++. Contains the implementation details that allow the use of VkResult values with std::error_code and std::error_category.\n\n### Header Usage\n\nTo use, include the header where the error code is being used.\n\nOn *ONE* compilation unit, include the definition of `#define VK_ERROR_CODE_CONFIG_MAIN` so that the definitions are compiled somewhere following the one definition rule.\n\n### VkEqualityChecks header-generation program arguments\n#### -h, --help\nHelp blurb\n#### -i, --input \u003cfile\u003e\nInput vk.xml file to parse. These can be found from the KhronosGroup, often at this repo: [https://github.com/KhronosGroup/Vulkan-Docs](https://github.com/KhronosGroup/Vulkan-Docs)\n#### -d, --dir \u003cdir\u003e\nOutput directory\n#### -o, --out \u003cname\u003e\nOutput file name (Default: `vk_error_code.hpp`)\n\n## Vulkan Value Serialization\n\nThis program builds header files for use in C++17 or newer. It\ncontains all Vulkan enum types/flags/values of the indicated Vulkan header spec\nversion, and can convert to/from strings representing those values. \n\nSupports both plain enums and the bitmasks.\n\nWhen converting values to strings, where possible a shorter version of the\nenum string is used, where the verbose type prefix is removed:\n- VK_IMAGE_LAYOUT_GENERAL =\u003e GENERAL\n- VK_CULL_MODE_FRONT_BIT | VK_CULL_MODE_BACK_BIT =\u003e FRONT | BACK\n\nWhen converting from strings into values, either the short OR full string can\nbe used where strings are case insensitive, and underscores can be replaced\nwith spaces, and addition whitespace can be added to either side of the first/\nlast alphanumeric character, as these are trimmed off.\n\nFor example, all of the following convert to VK_IMAGE_LAYOUT_GENERAL:\n`vk imAGE_LayOut GenerAL`, `VK_IMAGE_LAYOUT_GENERAL`,`GENERAL`, `   General `\n\nAlso, to assist with forward and backwards compatability, all the vendor tags are \nstripped from the typenames and values, since they can be removed in later versions \nleading to incompatability issues. For example, the flag for VkToolPurposeFlagBitsEXT, \n`VK_TOOL_PURPOSE_VALIDATION_BIT_EXT`, can will be output as `VALIDATION_BIT`, and can \nbe read similarly, with the above rules applicable for parsing.\n\n### Header Usage\n\nTo use, include the header where the declarations for the boolean checks are required.\n\nOn *ONE* compilation unit, include the definition of `#define VK_VALUE_SERIALIZATION_CONFIG_MAIN` so that the definitions are compiled somewhere following the one definition rule.\n\n### VkValueSerialization header-generation program arguments\n#### -h, --help\nHelp blurb\n#### -i, --input \u003cfile\u003e\nInput vk.xml file to parse. These can be found from the KhronosGroup, often at this repo: [https://github.com/KhronosGroup/Vulkan-Docs](https://github.com/KhronosGroup/Vulkan-Docs)\n#### -d, --dir \u003cdir\u003e\nOutput directory\n#### -o, --out \u003cname\u003e\nOutput file name (Default: `vk_value_serialization.hpp`)\n\n## Vulkan Equality Checks\n\nHeader files for C++. Contains `operator==` and `operator!=` functions for a large set of the available Vulkan struct types, checking just the objects for equality. These do *NOT* peroform a deep comparison, such as any objects pointed to by `pNext` or any other pointed-to objects.\n\n### Header Usage\n\nTo use, include the header where the declarations for the boolean checks are required.\n\nOn *ONE* compilation unit, include the definition of `#define VK_EQUALITY_CHECK_CONFIG_MAIN` so that the definitions are compiled somewhere following the one definition rule.\n\n### VkEqualityChecks header-generation program arguments\n#### -h, --help\nHelp blurb\n#### -i, --input \u003cfile\u003e\nInput vk.xml file to parse. These can be found from the KhronosGroup, often at this repo: [https://github.com/KhronosGroup/Vulkan-Docs](https://github.com/KhronosGroup/Vulkan-Docs)\n#### -d, --dir \u003cdir\u003e\nOutput directory\n#### -o, --out \u003cname\u003e\nOutput file name (Default: `vk_equality_checks.hpp`)\n\n## Generating Header Mini-Libs\n\nIn the root of the repository is a shell script, `generate.sh` that, when the programs are built from cmake and also placed in the root, automatically generates header mini-libs. The desired range can also be specified with this.\n\n### Possible Arguments\n\n#### -s, --start \u003cINT\u003e\nThe starting version of Vulkan to generate for (default: 72)\n\n#### -e, --end \u003cINT\u003e\nThe ending version of Vulkan to generate for (default: none)\n\n## Utilizes RapidXML from http://rapidxml.sourceforge.net/","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstablecoder%2Fvulkan-mini-libs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstablecoder%2Fvulkan-mini-libs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstablecoder%2Fvulkan-mini-libs/lists"}