Repository files navigation

WARNING!

This 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

Vulkan Mini Libs

pipeline statuscoverage reportlicense

A set of small header-only libraries that are of limited scope each to perform a very specific task.

Vulkan Error Code

Header files for C++. Contains the implementation details that allow the use of VkResult values with std::error_code and std::error_category.

Header Usage

To use, include the header where the error code is being used.

On 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.

VkEqualityChecks header-generation program arguments

-h, --help

Help blurb

-i, --input

Input vk.xml file to parse. These can be found from the KhronosGroup, often at this repo: https://github.com/KhronosGroup/Vulkan-Docs

-d, --dir

Output directory

-o, --out

Output file name (Default: vk_error_code.hpp)

Vulkan Value Serialization

This program builds header files for use in C++17 or newer. It contains all Vulkan enum types/flags/values of the indicated Vulkan header spec version, and can convert to/from strings representing those values.

Supports both plain enums and the bitmasks.

When converting values to strings, where possible a shorter version of the enum string is used, where the verbose type prefix is removed:

  • VK_IMAGE_LAYOUT_GENERAL => GENERAL
  • VK_CULL_MODE_FRONT_BIT | VK_CULL_MODE_BACK_BIT => FRONT | BACK

When converting from strings into values, either the short OR full string can be used where strings are case insensitive, and underscores can be replaced with spaces, and addition whitespace can be added to either side of the first/ last alphanumeric character, as these are trimmed off.

For example, all of the following convert to VK_IMAGE_LAYOUT_GENERAL: vk imAGE_LayOut GenerAL, VK_IMAGE_LAYOUT_GENERAL,GENERAL, General

Also, to assist with forward and backwards compatability, all the vendor tags are stripped from the typenames and values, since they can be removed in later versions leading to incompatability issues. For example, the flag for VkToolPurposeFlagBitsEXT, VK_TOOL_PURPOSE_VALIDATION_BIT_EXT, can will be output as VALIDATION_BIT, and can be read similarly, with the above rules applicable for parsing.

Header Usage

To use, include the header where the declarations for the boolean checks are required.

On 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.

VkValueSerialization header-generation program arguments

-h, --help

Help blurb

-i, --input

Input vk.xml file to parse. These can be found from the KhronosGroup, often at this repo: https://github.com/KhronosGroup/Vulkan-Docs

-d, --dir

Output directory

-o, --out

Output file name (Default: vk_value_serialization.hpp)

Vulkan Equality Checks

Header 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.

Header Usage

To use, include the header where the declarations for the boolean checks are required.

On 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.

VkEqualityChecks header-generation program arguments

-h, --help

Help blurb

-i, --input

Input vk.xml file to parse. These can be found from the KhronosGroup, often at this repo: https://github.com/KhronosGroup/Vulkan-Docs

-d, --dir

Output directory

-o, --out

Output file name (Default: vk_equality_checks.hpp)

Generating Header Mini-Libs

In 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.

Possible Arguments

-s, --start

The starting version of Vulkan to generate for (default: 72)

-e, --end

The ending version of Vulkan to generate for (default: none)

Utilizes RapidXML from http://rapidxml.sourceforge.net/

About

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.

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

WARNING!

This 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

Vulkan Mini Libs

pipeline statuscoverage reportlicense

A set of small header-only libraries that are of limited scope each to perform a very specific task.

Vulkan Error Code

Header files for C++. Contains the implementation details that allow the use of VkResult values with std::error_code and std::error_category.

Header Usage

To use, include the header where the error code is being used.

On 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.

VkEqualityChecks header-generation program arguments

-h, --help

Help blurb

-i, --input

Input vk.xml file to parse. These can be found from the KhronosGroup, often at this repo: https://github.com/KhronosGroup/Vulkan-Docs

-d, --dir

Output directory

-o, --out

Output file name (Default: vk_error_code.hpp)

Vulkan Value Serialization

This program builds header files for use in C++17 or newer. It contains all Vulkan enum types/flags/values of the indicated Vulkan header spec version, and can convert to/from strings representing those values.

Supports both plain enums and the bitmasks.

When converting values to strings, where possible a shorter version of the enum string is used, where the verbose type prefix is removed:

  • VK_IMAGE_LAYOUT_GENERAL => GENERAL
  • VK_CULL_MODE_FRONT_BIT | VK_CULL_MODE_BACK_BIT => FRONT | BACK

When converting from strings into values, either the short OR full string can be used where strings are case insensitive, and underscores can be replaced with spaces, and addition whitespace can be added to either side of the first/ last alphanumeric character, as these are trimmed off.

For example, all of the following convert to VK_IMAGE_LAYOUT_GENERAL: vk imAGE_LayOut GenerAL, VK_IMAGE_LAYOUT_GENERAL,GENERAL, General

Also, to assist with forward and backwards compatability, all the vendor tags are stripped from the typenames and values, since they can be removed in later versions leading to incompatability issues. For example, the flag for VkToolPurposeFlagBitsEXT, VK_TOOL_PURPOSE_VALIDATION_BIT_EXT, can will be output as VALIDATION_BIT, and can be read similarly, with the above rules applicable for parsing.

Header Usage

To use, include the header where the declarations for the boolean checks are required.

On 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.

VkValueSerialization header-generation program arguments

-h, --help

Help blurb

-i, --input

Input vk.xml file to parse. These can be found from the KhronosGroup, often at this repo: https://github.com/KhronosGroup/Vulkan-Docs

-d, --dir

Output directory

-o, --out

Output file name (Default: vk_value_serialization.hpp)

Vulkan Equality Checks

Header 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.

Header Usage

To use, include the header where the declarations for the boolean checks are required.

On 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.

VkEqualityChecks header-generation program arguments

-h, --help

Help blurb

-i, --input

Input vk.xml file to parse. These can be found from the KhronosGroup, often at this repo: https://github.com/KhronosGroup/Vulkan-Docs

-d, --dir

Output directory

-o, --out

Output file name (Default: vk_equality_checks.hpp)

Generating Header Mini-Libs

In 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.

Possible Arguments

-s, --start

The starting version of Vulkan to generate for (default: 72)

-e, --end

The ending version of Vulkan to generate for (default: none)

Utilizes RapidXML from http://rapidxml.sourceforge.net/

About

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.

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

WARNING!

This 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

Vulkan Mini Libs

pipeline statuscoverage reportlicense

A set of small header-only libraries that are of limited scope each to perform a very specific task.

Vulkan Error Code

Header files for C++. Contains the implementation details that allow the use of VkResult values with std::error_code and std::error_category.

Header Usage

To use, include the header where the error code is being used.

On 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.

VkEqualityChecks header-generation program arguments

-h, --help

Help blurb

-i, --input

Input vk.xml file to parse. These can be found from the KhronosGroup, often at this repo: https://github.com/KhronosGroup/Vulkan-Docs

-d, --dir

Output directory

-o, --out

Output file name (Default: vk_error_code.hpp)

Vulkan Value Serialization

This program builds header files for use in C++17 or newer. It contains all Vulkan enum types/flags/values of the indicated Vulkan header spec version, and can convert to/from strings representing those values.

Supports both plain enums and the bitmasks.

When converting values to strings, where possible a shorter version of the enum string is used, where the verbose type prefix is removed:

  • VK_IMAGE_LAYOUT_GENERAL => GENERAL
  • VK_CULL_MODE_FRONT_BIT | VK_CULL_MODE_BACK_BIT => FRONT | BACK

When converting from strings into values, either the short OR full string can be used where strings are case insensitive, and underscores can be replaced with spaces, and addition whitespace can be added to either side of the first/ last alphanumeric character, as these are trimmed off.

For example, all of the following convert to VK_IMAGE_LAYOUT_GENERAL: vk imAGE_LayOut GenerAL, VK_IMAGE_LAYOUT_GENERAL,GENERAL, General

Also, to assist with forward and backwards compatability, all the vendor tags are stripped from the typenames and values, since they can be removed in later versions leading to incompatability issues. For example, the flag for VkToolPurposeFlagBitsEXT, VK_TOOL_PURPOSE_VALIDATION_BIT_EXT, can will be output as VALIDATION_BIT, and can be read similarly, with the above rules applicable for parsing.

Header Usage

To use, include the header where the declarations for the boolean checks are required.

On 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.

VkValueSerialization header-generation program arguments

-h, --help

Help blurb

-i, --input

Input vk.xml file to parse. These can be found from the KhronosGroup, often at this repo: https://github.com/KhronosGroup/Vulkan-Docs

-d, --dir

Output directory

-o, --out

Output file name (Default: vk_value_serialization.hpp)

Vulkan Equality Checks

Header 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.

Header Usage

To use, include the header where the declarations for the boolean checks are required.

On 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.

VkEqualityChecks header-generation program arguments

-h, --help

Help blurb

-i, --input

Input vk.xml file to parse. These can be found from the KhronosGroup, often at this repo: https://github.com/KhronosGroup/Vulkan-Docs

-d, --dir

Output directory

-o, --out

Output file name (Default: vk_equality_checks.hpp)

Generating Header Mini-Libs

In 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.

Possible Arguments

-s, --start

The starting version of Vulkan to generate for (default: 72)

-e, --end

The ending version of Vulkan to generate for (default: none)

Utilizes RapidXML from http://rapidxml.sourceforge.net/

About

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.

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

WARNING!

This 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

Vulkan Mini Libs

pipeline statuscoverage reportlicense

A set of small header-only libraries that are of limited scope each to perform a very specific task.

Vulkan Error Code

Header files for C++. Contains the implementation details that allow the use of VkResult values with std::error_code and std::error_category.

Header Usage

To use, include the header where the error code is being used.

On 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.

VkEqualityChecks header-generation program arguments

-h, --help

Help blurb

-i, --input

Input vk.xml file to parse. These can be found from the KhronosGroup, often at this repo: https://github.com/KhronosGroup/Vulkan-Docs

-d, --dir

Output directory

-o, --out

Output file name (Default: vk_error_code.hpp)

Vulkan Value Serialization

This program builds header files for use in C++17 or newer. It contains all Vulkan enum types/flags/values of the indicated Vulkan header spec version, and can convert to/from strings representing those values.

Supports both plain enums and the bitmasks.

When converting values to strings, where possible a shorter version of the enum string is used, where the verbose type prefix is removed:

  • VK_IMAGE_LAYOUT_GENERAL => GENERAL
  • VK_CULL_MODE_FRONT_BIT | VK_CULL_MODE_BACK_BIT => FRONT | BACK

When converting from strings into values, either the short OR full string can be used where strings are case insensitive, and underscores can be replaced with spaces, and addition whitespace can be added to either side of the first/ last alphanumeric character, as these are trimmed off.

For example, all of the following convert to VK_IMAGE_LAYOUT_GENERAL: vk imAGE_LayOut GenerAL, VK_IMAGE_LAYOUT_GENERAL,GENERAL, General

Also, to assist with forward and backwards compatability, all the vendor tags are stripped from the typenames and values, since they can be removed in later versions leading to incompatability issues. For example, the flag for VkToolPurposeFlagBitsEXT, VK_TOOL_PURPOSE_VALIDATION_BIT_EXT, can will be output as VALIDATION_BIT, and can be read similarly, with the above rules applicable for parsing.

Header Usage

To use, include the header where the declarations for the boolean checks are required.

On 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.

VkValueSerialization header-generation program arguments

-h, --help

Help blurb

-i, --input

Input vk.xml file to parse. These can be found from the KhronosGroup, often at this repo: https://github.com/KhronosGroup/Vulkan-Docs

-d, --dir

Output directory

-o, --out

Output file name (Default: vk_value_serialization.hpp)

Vulkan Equality Checks

Header 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.

Header Usage

To use, include the header where the declarations for the boolean checks are required.

On 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.

VkEqualityChecks header-generation program arguments

-h, --help

Help blurb

-i, --input

Input vk.xml file to parse. These can be found from the KhronosGroup, often at this repo: https://github.com/KhronosGroup/Vulkan-Docs

-d, --dir

Output directory

-o, --out

Output file name (Default: vk_equality_checks.hpp)

Generating Header Mini-Libs

In 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.

Possible Arguments

-s, --start

The starting version of Vulkan to generate for (default: 72)

-e, --end

The ending version of Vulkan to generate for (default: none)

Utilizes RapidXML from http://rapidxml.sourceforge.net/

About

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.

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

WARNING!

This 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

Vulkan Mini Libs

pipeline statuscoverage reportlicense

A set of small header-only libraries that are of limited scope each to perform a very specific task.

Vulkan Error Code

Header files for C++. Contains the implementation details that allow the use of VkResult values with std::error_code and std::error_category.

Header Usage

To use, include the header where the error code is being used.

On 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.

VkEqualityChecks header-generation program arguments

-h, --help

Help blurb

-i, --input

Input vk.xml file to parse. These can be found from the KhronosGroup, often at this repo: https://github.com/KhronosGroup/Vulkan-Docs

-d, --dir

Output directory

-o, --out

Output file name (Default: vk_error_code.hpp)

Vulkan Value Serialization

This program builds header files for use in C++17 or newer. It contains all Vulkan enum types/flags/values of the indicated Vulkan header spec version, and can convert to/from strings representing those values.

Supports both plain enums and the bitmasks.

When converting values to strings, where possible a shorter version of the enum string is used, where the verbose type prefix is removed:

  • VK_IMAGE_LAYOUT_GENERAL => GENERAL
  • VK_CULL_MODE_FRONT_BIT | VK_CULL_MODE_BACK_BIT => FRONT | BACK

When converting from strings into values, either the short OR full string can be used where strings are case insensitive, and underscores can be replaced with spaces, and addition whitespace can be added to either side of the first/ last alphanumeric character, as these are trimmed off.

For example, all of the following convert to VK_IMAGE_LAYOUT_GENERAL: vk imAGE_LayOut GenerAL, VK_IMAGE_LAYOUT_GENERAL,GENERAL, General

Also, to assist with forward and backwards compatability, all the vendor tags are stripped from the typenames and values, since they can be removed in later versions leading to incompatability issues. For example, the flag for VkToolPurposeFlagBitsEXT, VK_TOOL_PURPOSE_VALIDATION_BIT_EXT, can will be output as VALIDATION_BIT, and can be read similarly, with the above rules applicable for parsing.

Header Usage

To use, include the header where the declarations for the boolean checks are required.

On 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.

VkValueSerialization header-generation program arguments

-h, --help

Help blurb

-i, --input

Input vk.xml file to parse. These can be found from the KhronosGroup, often at this repo: https://github.com/KhronosGroup/Vulkan-Docs

-d, --dir

Output directory

-o, --out

Output file name (Default: vk_value_serialization.hpp)

Vulkan Equality Checks

Header 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.

Header Usage

To use, include the header where the declarations for the boolean checks are required.

On 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.

VkEqualityChecks header-generation program arguments

-h, --help

Help blurb

-i, --input

Input vk.xml file to parse. These can be found from the KhronosGroup, often at this repo: https://github.com/KhronosGroup/Vulkan-Docs

-d, --dir

Output directory

-o, --out

Output file name (Default: vk_equality_checks.hpp)

Generating Header Mini-Libs

In 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.

Possible Arguments

-s, --start

The starting version of Vulkan to generate for (default: 72)

-e, --end

The ending version of Vulkan to generate for (default: none)

Utilizes RapidXML from http://rapidxml.sourceforge.net/

About

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.

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

WARNING!

This 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

Vulkan Mini Libs

pipeline statuscoverage reportlicense

A set of small header-only libraries that are of limited scope each to perform a very specific task.

Vulkan Error Code

Header files for C++. Contains the implementation details that allow the use of VkResult values with std::error_code and std::error_category.

Header Usage

To use, include the header where the error code is being used.

On 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.

VkEqualityChecks header-generation program arguments

-h, --help

Help blurb

-i, --input

Input vk.xml file to parse. These can be found from the KhronosGroup, often at this repo: https://github.com/KhronosGroup/Vulkan-Docs

-d, --dir

Output directory

-o, --out

Output file name (Default: vk_error_code.hpp)

Vulkan Value Serialization

This program builds header files for use in C++17 or newer. It contains all Vulkan enum types/flags/values of the indicated Vulkan header spec version, and can convert to/from strings representing those values.

Supports both plain enums and the bitmasks.

When converting values to strings, where possible a shorter version of the enum string is used, where the verbose type prefix is removed:

  • VK_IMAGE_LAYOUT_GENERAL => GENERAL
  • VK_CULL_MODE_FRONT_BIT | VK_CULL_MODE_BACK_BIT => FRONT | BACK

When converting from strings into values, either the short OR full string can be used where strings are case insensitive, and underscores can be replaced with spaces, and addition whitespace can be added to either side of the first/ last alphanumeric character, as these are trimmed off.

For example, all of the following convert to VK_IMAGE_LAYOUT_GENERAL: vk imAGE_LayOut GenerAL, VK_IMAGE_LAYOUT_GENERAL,GENERAL, General

Also, to assist with forward and backwards compatability, all the vendor tags are stripped from the typenames and values, since they can be removed in later versions leading to incompatability issues. For example, the flag for VkToolPurposeFlagBitsEXT, VK_TOOL_PURPOSE_VALIDATION_BIT_EXT, can will be output as VALIDATION_BIT, and can be read similarly, with the above rules applicable for parsing.

Header Usage

To use, include the header where the declarations for the boolean checks are required.

On 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.

VkValueSerialization header-generation program arguments

-h, --help

Help blurb

-i, --input

Input vk.xml file to parse. These can be found from the KhronosGroup, often at this repo: https://github.com/KhronosGroup/Vulkan-Docs

-d, --dir

Output directory

-o, --out

Output file name (Default: vk_value_serialization.hpp)

Vulkan Equality Checks

Header 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.

Header Usage

To use, include the header where the declarations for the boolean checks are required.

On 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.

VkEqualityChecks header-generation program arguments

-h, --help

Help blurb

-i, --input

Input vk.xml file to parse. These can be found from the KhronosGroup, often at this repo: https://github.com/KhronosGroup/Vulkan-Docs

-d, --dir

Output directory

-o, --out

Output file name (Default: vk_equality_checks.hpp)

Generating Header Mini-Libs

In 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.

Possible Arguments

-s, --start

The starting version of Vulkan to generate for (default: 72)

-e, --end

The ending version of Vulkan to generate for (default: none)

Utilizes RapidXML from http://rapidxml.sourceforge.net/

About

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.

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

WARNING!

This 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

Vulkan Mini Libs

pipeline statuscoverage reportlicense

A set of small header-only libraries that are of limited scope each to perform a very specific task.

Vulkan Error Code

Header files for C++. Contains the implementation details that allow the use of VkResult values with std::error_code and std::error_category.

Header Usage

To use, include the header where the error code is being used.

On 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.

VkEqualityChecks header-generation program arguments

-h, --help

Help blurb

-i, --input

Input vk.xml file to parse. These can be found from the KhronosGroup, often at this repo: https://github.com/KhronosGroup/Vulkan-Docs

-d, --dir

Output directory

-o, --out

Output file name (Default: vk_error_code.hpp)

Vulkan Value Serialization

This program builds header files for use in C++17 or newer. It contains all Vulkan enum types/flags/values of the indicated Vulkan header spec version, and can convert to/from strings representing those values.

Supports both plain enums and the bitmasks.

When converting values to strings, where possible a shorter version of the enum string is used, where the verbose type prefix is removed:

  • VK_IMAGE_LAYOUT_GENERAL => GENERAL
  • VK_CULL_MODE_FRONT_BIT | VK_CULL_MODE_BACK_BIT => FRONT | BACK

When converting from strings into values, either the short OR full string can be used where strings are case insensitive, and underscores can be replaced with spaces, and addition whitespace can be added to either side of the first/ last alphanumeric character, as these are trimmed off.

For example, all of the following convert to VK_IMAGE_LAYOUT_GENERAL: vk imAGE_LayOut GenerAL, VK_IMAGE_LAYOUT_GENERAL,GENERAL, General

Also, to assist with forward and backwards compatability, all the vendor tags are stripped from the typenames and values, since they can be removed in later versions leading to incompatability issues. For example, the flag for VkToolPurposeFlagBitsEXT, VK_TOOL_PURPOSE_VALIDATION_BIT_EXT, can will be output as VALIDATION_BIT, and can be read similarly, with the above rules applicable for parsing.

Header Usage

To use, include the header where the declarations for the boolean checks are required.

On 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.

VkValueSerialization header-generation program arguments

-h, --help

Help blurb

-i, --input

Input vk.xml file to parse. These can be found from the KhronosGroup, often at this repo: https://github.com/KhronosGroup/Vulkan-Docs

-d, --dir

Output directory

-o, --out

Output file name (Default: vk_value_serialization.hpp)

Vulkan Equality Checks

Header 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.

Header Usage

To use, include the header where the declarations for the boolean checks are required.

On 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.

VkEqualityChecks header-generation program arguments

-h, --help

Help blurb

-i, --input

Input vk.xml file to parse. These can be found from the KhronosGroup, often at this repo: https://github.com/KhronosGroup/Vulkan-Docs

-d, --dir

Output directory

-o, --out

Output file name (Default: vk_equality_checks.hpp)

Generating Header Mini-Libs

In 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.

Possible Arguments

-s, --start

The starting version of Vulkan to generate for (default: 72)

-e, --end

The ending version of Vulkan to generate for (default: none)

Utilizes RapidXML from http://rapidxml.sourceforge.net/

About

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.

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

WARNING!

This 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

Vulkan Mini Libs

pipeline statuscoverage reportlicense

A set of small header-only libraries that are of limited scope each to perform a very specific task.

Vulkan Error Code

Header files for C++. Contains the implementation details that allow the use of VkResult values with std::error_code and std::error_category.

Header Usage

To use, include the header where the error code is being used.

On 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.

VkEqualityChecks header-generation program arguments

-h, --help

Help blurb

-i, --input

Input vk.xml file to parse. These can be found from the KhronosGroup, often at this repo: https://github.com/KhronosGroup/Vulkan-Docs

-d, --dir

Output directory

-o, --out

Output file name (Default: vk_error_code.hpp)

Vulkan Value Serialization

This program builds header files for use in C++17 or newer. It contains all Vulkan enum types/flags/values of the indicated Vulkan header spec version, and can convert to/from strings representing those values.

Supports both plain enums and the bitmasks.

When converting values to strings, where possible a shorter version of the enum string is used, where the verbose type prefix is removed:

  • VK_IMAGE_LAYOUT_GENERAL => GENERAL
  • VK_CULL_MODE_FRONT_BIT | VK_CULL_MODE_BACK_BIT => FRONT | BACK

When converting from strings into values, either the short OR full string can be used where strings are case insensitive, and underscores can be replaced with spaces, and addition whitespace can be added to either side of the first/ last alphanumeric character, as these are trimmed off.

For example, all of the following convert to VK_IMAGE_LAYOUT_GENERAL: vk imAGE_LayOut GenerAL, VK_IMAGE_LAYOUT_GENERAL,GENERAL, General

Also, to assist with forward and backwards compatability, all the vendor tags are stripped from the typenames and values, since they can be removed in later versions leading to incompatability issues. For example, the flag for VkToolPurposeFlagBitsEXT, VK_TOOL_PURPOSE_VALIDATION_BIT_EXT, can will be output as VALIDATION_BIT, and can be read similarly, with the above rules applicable for parsing.

Header Usage

To use, include the header where the declarations for the boolean checks are required.

On 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.

VkValueSerialization header-generation program arguments

-h, --help

Help blurb

-i, --input

Input vk.xml file to parse. These can be found from the KhronosGroup, often at this repo: https://github.com/KhronosGroup/Vulkan-Docs

-d, --dir

Output directory

-o, --out

Output file name (Default: vk_value_serialization.hpp)

Vulkan Equality Checks

Header 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.

Header Usage

To use, include the header where the declarations for the boolean checks are required.

On 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.

VkEqualityChecks header-generation program arguments

-h, --help

Help blurb

-i, --input

Input vk.xml file to parse. These can be found from the KhronosGroup, often at this repo: https://github.com/KhronosGroup/Vulkan-Docs

-d, --dir

Output directory

-o, --out

Output file name (Default: vk_equality_checks.hpp)

Generating Header Mini-Libs

In 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.

Possible Arguments

-s, --start

The starting version of Vulkan to generate for (default: 72)

-e, --end

The ending version of Vulkan to generate for (default: none)

Utilizes RapidXML from http://rapidxml.sourceforge.net/

About

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.

Topics

Resources

Stars

4 stars

Watchers

1 watching

Forks

Contributors

Languages