Full Code of nicebyte/nicegraf for AI

master 4f53c5b2ee47 cached
114 files
3.8 MB
993.5k tokens
5819 symbols
1 requests
Download .txt
Showing preview only (3,973K chars total). Download the full file or copy to clipboard to get everything.
Repository: nicebyte/nicegraf
Branch: master
Commit: 4f53c5b2ee47
Files: 114
Total size: 3.8 MB

Directory structure:
gitextract_ofuavp55/

├── .clang-format
├── .github/
│   └── workflows/
│       └── tests.yml
├── .gitignore
├── CMakeLists.txt
├── README.md
├── build-samples.bat
├── build-samples.sh
├── build-utils.cmake
├── deps/
│   ├── SPIRV-reflect/
│   │   ├── CMakeLists.txt
│   │   ├── include/
│   │   │   └── spirv/
│   │   │       └── unified1/
│   │   │           └── spirv.h
│   │   ├── spirv_reflect.c
│   │   └── spirv_reflect.h
│   ├── metal-cpp/
│   │   └── MetalSingleHeader.hpp
│   ├── renderdoc/
│   │   └── renderdoc_app.h
│   ├── utest/
│   │   └── utest.h
│   ├── vma/
│   │   ├── CHANGELOG.md
│   │   ├── CMakeLists.txt
│   │   ├── LICENSE.txt
│   │   ├── README.md
│   │   └── src/
│   │       ├── vk_mem_alloc.cpp
│   │       └── vk_mem_alloc.h
│   └── vulkan-headers/
│       └── vulkan/
│           ├── vk_platform.h
│           ├── vulkan.h
│           ├── vulkan_core.h
│           ├── vulkan_ios.h
│           ├── vulkan_macos.h
│           ├── vulkan_metal.h
│           ├── vulkan_win32.h
│           └── vulkan_xcb.h
├── docs/
│   └── logo.xcf
├── include/
│   ├── nicegraf-mtl-handles.h
│   ├── nicegraf-util.h
│   ├── nicegraf-vk-handles.h
│   ├── nicegraf-wrappers.h
│   └── nicegraf.h
├── misc/
│   ├── common/
│   │   ├── CMakeLists.txt
│   │   ├── check.h
│   │   ├── file-utils.cpp
│   │   ├── file-utils.h
│   │   ├── logging.h
│   │   ├── mesh-loader.cpp
│   │   ├── mesh-loader.h
│   │   ├── shader-loader.cpp
│   │   ├── shader-loader.h
│   │   ├── targa-loader.cpp
│   │   └── targa-loader.h
│   └── shaders.cmake
├── samples/
│   ├── 00-template/
│   │   └── sample-impl.cpp
│   ├── 01-fullscreen-triangle/
│   │   └── fullscreen-triangle.cpp
│   ├── 02-render-to-texture/
│   │   └── render-to-texture.cpp
│   ├── 03-uniform-buffers/
│   │   └── uniform-buffers.cpp
│   ├── 04-texture-sampling/
│   │   └── texture-sampling.cpp
│   ├── 05-cubemap/
│   │   └── cubemap.cpp
│   ├── 06-vertex-attribs/
│   │   └── vertex-attribs.cpp
│   ├── 07-blinn-phong/
│   │   └── blinn-phong.cpp
│   ├── 08-image-arrays/
│   │   └── image-arrays.cpp
│   ├── 09-volume-rendering/
│   │   └── volume-rendering.cpp
│   ├── 0a-compute-demo/
│   │   └── compute-demo.cpp
│   ├── 0a-compute-mandelbrot/
│   │   └── compute-mandelbrot.cpp
│   ├── 0b-compute-vertices/
│   │   └── compute-vertices.cpp
│   ├── 0c-render-to-multisample-texture/
│   │   └── render-to-multisample-texture.cpp
│   ├── common/
│   │   ├── camera-controller.cpp
│   │   ├── camera-controller.h
│   │   ├── diagnostic-callback.cpp
│   │   ├── diagnostic-callback.h
│   │   ├── imgui-backend.cpp
│   │   ├── imgui-backend.h
│   │   ├── main.cpp
│   │   ├── platform/
│   │   │   └── macos/
│   │   │       ├── glfw-cocoa-contentview.h
│   │   │       └── glfw-cocoa-contentview.mm
│   │   ├── sample-interface.h
│   │   ├── staging-image.cpp
│   │   └── staging-image.h
│   └── shaders/
│       ├── blinn-phong.hlsl
│       ├── compute-demo.hlsl
│       ├── compute-vertices.hlsl
│       ├── cubemap.hlsl
│       ├── fullscreen-triangle.hlsl
│       ├── generic-frag-shader-input.hlsl
│       ├── imgui.hlsl
│       ├── instancing.hlsl
│       ├── polygon.hlsl
│       ├── quad.hlsl
│       ├── quat.hlsl
│       ├── simple-texture.hlsl
│       ├── textured-quad.hlsl
│       ├── triangle.hlsl
│       └── volume-renderer.hlsl
├── source/
│   ├── ngf-common/
│   │   ├── arena.cpp
│   │   ├── arena.h
│   │   ├── array.h
│   │   ├── chunked-list.h
│   │   ├── cmdbuf-state.h
│   │   ├── create-destroy.cpp
│   │   ├── default-arenas.cpp
│   │   ├── default-arenas.h
│   │   ├── frame-token.h
│   │   ├── hashtable.h
│   │   ├── internal.cpp
│   │   ├── macros.h
│   │   ├── silence.h
│   │   ├── unique-ptr.h
│   │   ├── util.c
│   │   ├── util.h
│   │   └── value-or-error.h
│   ├── ngf-mtl/
│   │   ├── impl.cpp
│   │   └── layer.mm
│   └── ngf-vk/
│       ├── ca-metal-layer.mm
│       ├── impl.cpp
│       ├── vk_10.c
│       └── vk_10.h
└── tests/
    ├── arena-alloc-tests.cpp
    ├── common-tests.cpp
    └── vk-backend-tests.cpp

================================================
FILE CONTENTS
================================================

================================================
FILE: .clang-format
================================================
AccessModifierOffset: 0
AlignAfterOpenBracket: AlwaysBreak
AlignConsecutiveAssignments: true
AlignConsecutiveDeclarations: true
AlignConsecutiveMacros: true
AlignEscapedNewlines: true
AlignOperands: true
AlignTrailingComments: true
AllowAllArgumentsOnNextLine: false
AllowAllConstructorInitializersOnNextLine: false
AllowAllParametersOfDeclarationOnNextLine: false
AllowShortBlocksOnASingleLine: true
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: false
AllowShortIfStatementsOnASingleLine: true
AllowShortLambdasOnASingleLine: true
AllowShortLoopsOnASingleLine: true
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
BinPackArguments: false
BinPackParameters: false
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Attach
BreakBeforeTernaryOperators: true
BreakConstructorInitializers: BeforeColon
BreakStringLiterals: true
ColumnLimit: 100
CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: true
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DeriveLineEnding: true
DerivePointerAlignment: false
FixNamespaceComments: true
IncludeBlocks: Regroup
IndentCaseLabels: false
IndentGotoLabels: false
IndentWidth: 2
KeepEmptyLinesAtTheStartOfBlocks: false
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
PointerAlignment: Left
ReflowComments: true
SortIncludes: true
SortUsingDeclarations: true
SpaceAfterCStyleCast: false
SpaceAfterTemplateKeyword: false
SpaceBeforeAssignmentOperators: true
SpaceBeforeCpp11BracedList: true
SpaceBeforeCtorInitializerColon: true
SpaceBeforeParens: true
SpaceBeforeInheritanceColon: true
SpaceBeforeRangeBasedForLoopColon: true
SpaceBeforeSquareBrackets: false
SpaceInEmptyBlock: false
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 2
SpacesInAngles: false
SpacesInCStyleCastParentheses: false
SpacesInConditionalStatement: false
SpacesInContainerLiterals: false
SpacesInSquareBrackets: false
TabWidth: 2
UseCRLF: false
UseTab: Never


================================================
FILE: .github/workflows/tests.yml
================================================
name: Run tests

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]
env:
  CC: /usr/bin/clang
  CXX: /usr/bin/clang++
  
jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - name: update_apt
      run: sudo apt-get update
    - name: install_deps
      run: sudo apt install libx11-xcb-dev
    - name: make_build_dir
      run: mkdir -p build
    - name: run_cmake
      run: cd ./build && cmake .. -DNGF_BUILD_TESTS=yes
    - name: make
      run:  cd ./build && make vk-backend-tests
    - name: test
      run:  ./build/vk-backend-tests


================================================
FILE: .gitignore
================================================
build/*
tests/build/*
docs/doxygen/html
docs/doxygen/xml
docs/doxygen/latex
tests/ngf_tests
samples/binaries/*
samples/deps/niceshade/*
/out/build/x64-Debug
/.vs
samples-build-files/*
.gitmodules
.idea
cmake-build-debug-visual-studio
docs/doxygen
**/.DS_Store


================================================
FILE: CMakeLists.txt
================================================
#[[
Copyright (c) 2026 nicegraf contributors

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the “Software”), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
]]

cmake_minimum_required(VERSION 3.24)
project(nicegraf)


set(CMAKE_C_STANDARD 99)
set(CMAKE_CXX_STANDARD 20)

include("${CMAKE_CURRENT_LIST_DIR}/build-utils.cmake")

# These are the compiler flags that are used on all nicegraf targets.
if(MSVC)
    set(NICEMAKE_COMMON_COMPILE_OPTS "/W4")
else()
    set(NICEMAKE_COMMON_COMPILE_OPTS "-Wall" "-Wconversion" "-Wno-unknown-pragmas" "-Wno-error=comment")
endif()

if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
    list(APPEND NICEMAKE_COMMON_COMPILE_OPTS "-Wno-unknown-warning-option" "-Wno-missing-designated-field-initializers")
endif()

set(NICEGRAF_COMMON_DEPS nicegraf-internal)

# A library with various utilities shared internally across different backends.
nmk_static_library(NAME nicegraf-internal
                   SRCS ${CMAKE_CURRENT_LIST_DIR}/include/nicegraf.h
                        ${CMAKE_CURRENT_LIST_DIR}/source/ngf-common/macros.h
                        ${CMAKE_CURRENT_LIST_DIR}/source/ngf-common/unique-ptr.h
                        ${CMAKE_CURRENT_LIST_DIR}/source/ngf-common/value-or-error.h
                        ${CMAKE_CURRENT_LIST_DIR}/source/ngf-common/cmdbuf-state.h
                        ${CMAKE_CURRENT_LIST_DIR}/source/ngf-common/internal.cpp
                        ${CMAKE_CURRENT_LIST_DIR}/source/ngf-common/util.h
                        ${CMAKE_CURRENT_LIST_DIR}/source/ngf-common/arena.h
                        ${CMAKE_CURRENT_LIST_DIR}/source/ngf-common/arena.cpp
                        ${CMAKE_CURRENT_LIST_DIR}/source/ngf-common/default-arenas.h
                        ${CMAKE_CURRENT_LIST_DIR}/source/ngf-common/default-arenas.cpp
                        ${CMAKE_CURRENT_LIST_DIR}/source/ngf-common/chunked-list.h
                        ${CMAKE_CURRENT_LIST_DIR}/source/ngf-common/hashtable.h
                        ${CMAKE_CURRENT_LIST_DIR}/source/ngf-common/array.h)

# nicegraf utility library.
nmk_static_library(NAME nicegraf-util
                   SRCS ${CMAKE_CURRENT_LIST_DIR}/include/nicegraf-util.h
                        ${CMAKE_CURRENT_LIST_DIR}/source/ngf-common/util.c
                   DEPS nicegraf-internal)


if (APPLE)
  find_library(APPLE_METAL Metal)
  find_library(APPLE_QUARTZ QuartzCore)
  find_library(APPLE_COREGRAPHICS CoreGraphics)
  find_library(APPLE_COCOA Cocoa)
  find_library(APPLE_UIKIT UIKit)
endif()

if (APPLE AND NOT (NGF_USE_MVK STREQUAL "yes"))
  # Nicegraf with native Metal backend.
  set(APPLE_LIBS ${APPLE_METAL} ${APPLE_QUARTZ} ${APPLE_COREGRAPHICS})

  if (APPLE_COCOA)
    set(APPLE_LIBS ${APPLE_LIBS} ${APPLE_COCOA}) # macOS
  else()
    set(APPLE_LIBS ${APPLE_LIBS} ${UIKit}) # iOS
  endif()

  nmk_static_library(NAME nicegraf-mtl
                     SRCS ${CMAKE_CURRENT_LIST_DIR}/include/nicegraf.h
                          ${CMAKE_CURRENT_LIST_DIR}/include/nicegraf-mtl-handles.h
                          ${CMAKE_CURRENT_LIST_DIR}/source/ngf-mtl/impl.cpp
                          ${CMAKE_CURRENT_LIST_DIR}/source/ngf-mtl/layer.mm
                     DEPS ${NICEGRAF_COMMON_DEPS} ${APPLE_LIBS}
                     PVT_INCLUDES ${CMAKE_CURRENT_LIST_DIR}/deps/metal-cpp
                     COPTS "-fobjc-arc")
else()
  nmk_header_library(NAME nicegraf-vk-headers
                     PUB_INCLUDES ${CMAKE_CURRENT_LIST_DIR}/deps/vulkan-headers)
  nmk_header_library(NAME nicegraf-renderdoc
                     PUB_INCLUDES ${CMAKE_CURRENT_LIST_DIR}/deps/renderdoc)

  # Import VMA for handling vulkan memory allocation.
  add_definitions("-DVMA_STATIC_VULKAN_FUNCTIONS=0")
  add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/deps/vma)
  add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/deps/SPIRV-reflect)

  # Some vulkan-specific dependencies.
  set(NICEGRAF_VK_DEPS vma spvreflect nicegraf-vk-headers nicegraf-renderdoc)
  if (NOT WIN32 AND NOT APPLE)
    set(NICEGRAF_VK_DEPS ${NICEGRAF_VK_DEPS} xcb)
  elseif (APPLE)
    set(NICEGRAF_VK_DEPS ${NICEGRAF_VK_DEPS} ${APPLE_QUARTZ})
  endif()

  set(NICEGRAF_VK_DEPS ${NICEGRAF_VK_DEPS} ${NICEGRAF_COMMON_DEPS})

  set(NICEGRAF_VK_SRCS ${CMAKE_CURRENT_LIST_DIR}/include/nicegraf.h
                       ${CMAKE_CURRENT_LIST_DIR}/source/ngf-vk/impl.cpp
                       ${CMAKE_CURRENT_LIST_DIR}/source/ngf-vk/vk_10.c)
  if (NGF_USE_MVK STREQUAL "yes")
    set(NICEGRAF_VK_SRCS ${NICEGRAF_VK_SRCS} ${CMAKE_CURRENT_LIST_DIR}/source/ngf-vk/ca-metal-layer.mm)
  endif()

  # Vulkan backend.
  nmk_static_library(NAME nicegraf-vk
                     SRCS ${NICEGRAF_VK_SRCS}
                     PUB_INCLUDES ${CMAKE_CURRENT_LIST_DIR}/include
                     DEPS ${NICEGRAF_VK_DEPS})

  if (NGF_BUILD_TESTS STREQUAL "yes")
    nmk_binary(NAME vk-backend-tests
               SRCS ${NICEGRAF_VK_SRCS}
               DEPS utest ${NICEGRAF_VK_DEPS}
               PVT_DEFINES NGFVK_TEST_MODE)
    set_target_properties(vk-backend-tests PROPERTIES COMPILE_WARNING_AS_ERROR NO)
  endif()
endif()

# Build tests only if explicitly requested.
if (NGF_BUILD_TESTS STREQUAL "yes")
  nmk_header_library(NAME utest
                     PUB_INCLUDES ${CMAKE_CURRENT_LIST_DIR}/deps/utest)
  nmk_binary(NAME common-tests
             SRCS ${CMAKE_CURRENT_LIST_DIR}/tests/common-tests.cpp
             DEPS utest nicegraf-internal "$<IF:$<NOT:$<BOOL:${WIN32}>>,pthread,>")
endif()


# Build samples only if explicitly requested.
if (NGF_BUILD_SAMPLES STREQUAL "yes")
    add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/misc/common)
    add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/samples/deps/glfw)

    # Ensure we have the required dependencies are available.
    if (TARGET glfw)
        set_target_properties(glfw PROPERTIES FOLDER "samples")
    else()
        message(FATAL_ERROR "Dependencies required for building samples not found. Make sure to run `git submodule update` from the repo root.")
    endif()
    
    # Determine the backend to build the samples with based on the platform, and
    # any platform-specific source files.
    set(NGF_PLATFORM_SOURCE "")
    if(APPLE)
      set(NGF_PLATFORM_SOURCE ${NGF_PLATFORM_SOURCE}
                              ${CMAKE_CURRENT_LIST_DIR}/samples/common/platform/macos/glfw-cocoa-contentview.mm
                              ${CMAKE_CURRENT_LIST_DIR}/samples/common/platform/macos/glfw-cocoa-contentview.h)
    endif()
    
    # Set the folder to hold all samples binaries.
    set(NGF_SAMPLES_OUTPUT_DIR ${CMAKE_CURRENT_LIST_DIR}/samples/binaries)

    # Custom target for generated shaders.
    file(GLOB shader_files ${CMAKE_CURRENT_LIST_DIR}/samples/shaders/*.hlsl)
    include(${CMAKE_CURRENT_LIST_DIR}/misc/shaders.cmake)
    ngf_shaders_target(NAME sample-shaders
                       OUTPUT_DIR ${NGF_SAMPLES_OUTPUT_DIR}/shaders
                       NICESHADE_PATH ${CMAKE_CURRENT_LIST_DIR}/samples/deps/niceshade/${NICESHADE_PLATFORM}
                       SRCS ${shader_files})
    set_target_properties(sample-shaders PROPERTIES FOLDER "samples")

    set(NGF_IMGUI_SRCS ${CMAKE_CURRENT_LIST_DIR}/samples/deps/imgui/imgui.cpp
                       ${CMAKE_CURRENT_LIST_DIR}/samples/deps/imgui/imgui_draw.cpp
                       ${CMAKE_CURRENT_LIST_DIR}/samples/deps/imgui/imgui_tables.cpp
                       ${CMAKE_CURRENT_LIST_DIR}/samples/deps/imgui/imgui_widgets.cpp
                       ${CMAKE_CURRENT_LIST_DIR}/samples/deps/imgui/imgui_demo.cpp
                       ${CMAKE_CURRENT_LIST_DIR}/samples/deps/imgui/imgui.cpp
                       ${CMAKE_CURRENT_LIST_DIR}/samples/deps/imgui/imgui.h
                       ${CMAKE_CURRENT_LIST_DIR}/samples/deps/imgui/backends/imgui_impl_glfw.h
                       ${CMAKE_CURRENT_LIST_DIR}/samples/deps/imgui/backends/imgui_impl_glfw.cpp)
	       
    if(MSVC)
        set(NGF_IMGUI_COPTS "")
    else()
        # Turn off reporting warnings as errors for ImGui on gcc/clang, because it has a lot of them.
        set(NGF_IMGUI_COPTS "-Wno-error")
    endif()

    nmk_static_library(NAME ngf-imgui
                SRCS ${NGF_IMGUI_SRCS}
                DEPS glfw
                PVT_INCLUDES ${CMAKE_CURRENT_LIST_DIR}/samples/deps/imgui
                PUB_INCLUDES ${CMAKE_CURRENT_LIST_DIR}/samples/deps/imgui
                             ${CMAKE_CURRENT_LIST_DIR}/samples/deps/imgui/backends
	            PVT_DEFINES "GLFW_INCLUDE_NONE"
	           	COPTS ${NGF_IMGUI_COPTS})
    nmk_static_library(NAME ngf-samples-common
                       SRCS ${CMAKE_CURRENT_LIST_DIR}/samples/common/main.cpp
                            ${CMAKE_CURRENT_LIST_DIR}/samples/common/diagnostic-callback.cpp
                            ${CMAKE_CURRENT_LIST_DIR}/samples/common/sample-interface.h
                            ${CMAKE_CURRENT_LIST_DIR}/samples/common/diagnostic-callback.h
                            ${CMAKE_CURRENT_LIST_DIR}/samples/common/imgui-backend.h
                            ${CMAKE_CURRENT_LIST_DIR}/samples/common/imgui-backend.cpp
                            ${CMAKE_CURRENT_LIST_DIR}/samples/common/staging-image.h
                            ${CMAKE_CURRENT_LIST_DIR}/samples/common/staging-image.cpp
                            ${CMAKE_CURRENT_LIST_DIR}/samples/common/camera-controller.h
                            ${CMAKE_CURRENT_LIST_DIR}/samples/common/camera-controller.cpp
                            ${NGF_PLATFORM_SOURCE}
                       DEPS ngf-imgui glfw nicegraf-misc-common
                       PVT_INCLUDES ${CMAKE_CURRENT_LIST_DIR}/samples/deps/nicemath
                                    ${CMAKE_CURRENT_LIST_DIR}/samples/common
                       PUB_INCLUDES ${CMAKE_CURRENT_LIST_DIR}/samples/common
                                    ${CMAKE_CURRENT_LIST_DIR}/samples/deps/nicemath)
    set_target_properties(ngf-samples-common PROPERTIES FOLDER "samples")

    function (ngf_sample)
        cmake_parse_arguments(SAMPLE "" "NAME" "" ${ARGN})
        file(GLOB_RECURSE SAMPLE_SRCS ${CMAKE_CURRENT_LIST_DIR}/samples/${SAMPLE_NAME}/*.cpp)

        nmk_binary(NAME ${SAMPLE_NAME}
                   SRCS ${SAMPLE_SRCS}
                   DEPS nicegraf ngf-samples-common nicegraf-misc-common nicegraf-util ngf-imgui
                   PVT_INCLUDES ${CMAKE_CURRENT_LIST_DIR}/samples/${SAMPLE_NAME}
		           PVT_DEFINES "GLFW_INCLUDE_NONE"
                   OUTPUT_DIR "${NGF_SAMPLES_OUTPUT_DIR}")
        add_dependencies(${SAMPLE_NAME} sample-shaders)                   
        set_target_properties(${SAMPLE_NAME} PROPERTIES FOLDER "samples")
    endfunction()
    file(MAKE_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/samples/binaries/shaders)
    ngf_sample(NAME 01-fullscreen-triangle)
    ngf_sample(NAME 02-render-to-texture)
    ngf_sample(NAME 03-uniform-buffers)
    ngf_sample(NAME 04-texture-sampling)
    ngf_sample(NAME 05-cubemap)
    ngf_sample(NAME 06-vertex-attribs)
    ngf_sample(NAME 07-blinn-phong)    
    ngf_sample(NAME 08-image-arrays)    
    ngf_sample(NAME 09-volume-rendering)
    ngf_sample(NAME 0a-compute-mandelbrot)
    ngf_sample(NAME 0b-compute-vertices)
    ngf_sample(NAME 0c-render-to-multisample-texture)
endif()

# Build image tests only if explicitly requested.
# These tests run samples headlessly and compare rendered output against golden images.
# Requires NGF_BUILD_SAMPLES=yes since image tests depend on sample shaders and utilities.
if (NGF_BUILD_IMAGE_TESTS STREQUAL "yes")
    if (NOT NGF_BUILD_SAMPLES STREQUAL "yes")
        message(FATAL_ERROR "NGF_BUILD_IMAGE_TESTS requires NGF_BUILD_SAMPLES=yes")
    endif()

    # Sample utility sources needed by image tests (excluding main.cpp and factory.cpp)
    set(IMAGE_TEST_SAMPLE_UTILS
        ${CMAKE_CURRENT_LIST_DIR}/samples/common/staging-image.cpp
        ${CMAKE_CURRENT_LIST_DIR}/samples/common/camera-controller.cpp
    )

    # All sample sources (excluding factory.cpp which is only for interactive samples)
    set(IMAGE_TEST_SAMPLE_SOURCES
        ${CMAKE_CURRENT_LIST_DIR}/samples/01-fullscreen-triangle/fullscreen-triangle.cpp
        ${CMAKE_CURRENT_LIST_DIR}/samples/02-render-to-texture/render-to-texture.cpp
        ${CMAKE_CURRENT_LIST_DIR}/samples/03-uniform-buffers/uniform-buffers.cpp
        ${CMAKE_CURRENT_LIST_DIR}/samples/04-texture-sampling/texture-sampling.cpp
        ${CMAKE_CURRENT_LIST_DIR}/samples/05-cubemap/cubemap.cpp
        ${CMAKE_CURRENT_LIST_DIR}/samples/06-vertex-attribs/vertex-attribs.cpp
        ${CMAKE_CURRENT_LIST_DIR}/samples/07-blinn-phong/blinn-phong.cpp
        ${CMAKE_CURRENT_LIST_DIR}/samples/08-image-arrays/image-arrays.cpp
        ${CMAKE_CURRENT_LIST_DIR}/samples/09-volume-rendering/volume-rendering.cpp
        ${CMAKE_CURRENT_LIST_DIR}/samples/0a-compute-mandelbrot/compute-mandelbrot.cpp
        ${CMAKE_CURRENT_LIST_DIR}/samples/0b-compute-vertices/compute-vertices.cpp
        ${CMAKE_CURRENT_LIST_DIR}/samples/0c-render-to-multisample-texture/render-to-multisample-texture.cpp
    )

    # Image test sources
    set(IMAGE_TEST_SOURCES
        ${CMAKE_CURRENT_LIST_DIR}/tests/image-tests/image-test-main.cpp
        ${CMAKE_CURRENT_LIST_DIR}/tests/image-tests/headless-harness.cpp
        ${CMAKE_CURRENT_LIST_DIR}/tests/image-tests/image-comparator.cpp
        ${IMAGE_TEST_SAMPLE_UTILS}
        ${IMAGE_TEST_SAMPLE_SOURCES}
    )

    # Ensure golden images directory exists
    file(MAKE_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}/tests/golden)

    # Create unified image test executable
    nmk_binary(NAME image-tests
               SRCS ${IMAGE_TEST_SOURCES}
               DEPS nicegraf nicegraf-util nicegraf-misc-common ngf-imgui
               PVT_INCLUDES ${CMAKE_CURRENT_LIST_DIR}/tests
                            ${CMAKE_CURRENT_LIST_DIR}/tests/image-tests
                            ${CMAKE_CURRENT_LIST_DIR}/samples/common
                            ${CMAKE_CURRENT_LIST_DIR}/samples/deps/nicemath
                            ${CMAKE_CURRENT_LIST_DIR}/samples/deps/imgui
               OUTPUT_DIR "${NGF_SAMPLES_OUTPUT_DIR}")
    add_dependencies(image-tests sample-shaders)
    set_target_properties(image-tests PROPERTIES FOLDER "tests")
endif()


================================================
FILE: README.md
================================================
nicegraf
========

![Run tests](https://github.com/nicebyte/nicegraf/workflows/Run%20tests/badge.svg)

<p align="center">
<img src="https://github.com/nicebyte/nicegraf/blob/master/docs/logo.png?raw=true" width="256"/>
</p>
<p align="center">
An abstraction layer for GPU APIs.
</p>
<p align="center">
<a href="https://discord.gg/NMbpC9btWA">Discord</a> · <a href="http://wiki.gpfault.net/docs/nicegraf/index.html">Reference Documentation</a> · <a href="https://github.com/nicebyte/nicegraf/tree/master/samples">Sample Code</a>
</p>

# platform support matrix

|   | 🟦 | 🐧 | 🍏 |
|---|---|---|---|
| 🌋 | 🟩 | 🟩 | 🟨 |
| 🤘 | 🟥 | 🟥 | 🟩 |




# credits

## current maintainers

* nicebyte · [@nice_byte](http://twitter.com/nice_byte)
* Bagrat 'dBuger' Dabaghyan · [@dBagrat](http://twitter.com/dBagrat)
* Andranik 'HedgeTheHog' Melikyan · [@andranik3949](http://twitter.com/andranik3949)

## dependencies

* The Vulkan backend uses SPIRV-Reflect, maintained by the Khronos Group, and the Vulkan Memory Allocator, maintained by AMD.
* The sample code uses GLFW, maintained by Camilla Berglund, and ImGui, maintained by Omar Cornut.



================================================
FILE: build-samples.bat
================================================
@echo off

echo Downloading binary dependencies and data for samples...
powershell -Command "(New-Object Net.WebClient).DownloadFile('https://github.com/nicebyte/nicegraf/releases/download/v0.1.1/nicegraf-samples-data.zip', 'nicegraf-samples-data.zip')" || (exit /b)
echo Unpacking binary dependencies and data for samples...
powershell -Command "Expand-Archive -Force nicegraf-samples-data.zip ." || (exit /b)
echo Removing temporary files...
del nicegraf-samples-data.zip || (exit /b)
echo Downloading library dependencies for samples...
git submodule init || (exit /b)
git submodule update || (exit /b)
echo Setting up folder for build files...
if not exist ".\samples-build-files" mkdir samples-build-files || (exit /b)
cd samples-build-files || (exit /b)
echo Generating build files...
cmake .. -DNGF_BUILD_SAMPLES="yes" || (exit /b)
echo Finished successfully!
pause


================================================
FILE: build-samples.sh
================================================
#!/bin/bash

set -e

echo "Downloading binary dependencies for samples..."
curl https://github.com/nicebyte/nicegraf/releases/download/v0.1.1/nicegraf-samples-data.zip -fL -o nicegraf-samples-data.zip
echo "Unpacking binary dependencies and data for samples..."
unzip -u nicegraf-samples-data.zip
chmod +x ./samples/deps/niceshade/macos/niceshade
chmod +x ./samples/deps/niceshade/linux/niceshade
echo "Removing temporary files..."
rm -rf nicegraf-samples-data.zip
echo "Downloading library dependencies for samples..."
git submodule init
git submodule update
echo "Setting up folder for build files..."
mkdir -p samples-build-files
cd samples-build-files
echo "Generating build files..."
if  [ "`uname -s`" = "Darwin" ]; then
  NGF_GENERATOR="-GXcode" 
else
  NGF_GENERATOR=
fi

cmake .. -DNGF_BUILD_SAMPLES="yes" -DNGF_BUILD_TESTS="yes" ${NGF_GENERATOR} $@
cd ..
echo "Finished successfully!"


================================================
FILE: build-utils.cmake
================================================
#[[
Copyright (c) 2022 nicegraf contributors

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the “Software”), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
]]

# This function adds a new target and sets some configuration options for it.
# Parameters:
#  TYPE - type of the target. Must be one of: 
#    - `lib`, for a static library;
#    - `hdr`, for a header-only library;
#    - `exe`, for an executable binary.
#  SRCS - a list of source files for the target.
#  COPTS - a list of compiler options.
#  PVT_INCLUDES - a list of paths to add to this target's include paths.
#  PUB_INCLUDES - a list of paths to add to the include paths of all targets depending on this target.
#  PVT_DEFINES  - a list of preprocessor definitions to add for this target.
#  PUB_DEFINES  - a list of preprocessor definitions to add to all targets depending on this target.
#  OUTPUT_DIR   - the path to the folder where the output for this target shall be stored.
function (nmk_target)
	cmake_parse_arguments(TGT "" "NAME;TYPE" "SRCS;DEPS;COPTS;PUB_INCLUDES;PVT_INCLUDES;PUB_DEFINES;PUB_DEPS;PVT_DEFINES;OUTPUT_DIR;VS_DEBUGGER_WORKING_DIR" ${ARGN})
  if (TGT_TYPE STREQUAL "lib")
    add_library(${TGT_NAME} STATIC ${TGT_SRCS})
  elseif(TGT_TYPE STREQUAL "hdr")    
    add_library(${TGT_NAME} INTERFACE ${TGT_SRCS})
  elseif(TGT_TYPE STREQUAL "exe")
    add_executable(${TGT_NAME} ${TGT_SRCS})
  else()
    message(FATAL_ERROR "invalid target type")
  endif()

  # Add dependencies.
  if ( TGT_DEPS )
    target_link_libraries(${TGT_NAME} PRIVATE ${TGT_DEPS})
  endif()
  if ( TGT_PUB_DEPS )
    target_link_libraries(${TGT_NAME} INTERFACE ${TGT_PUB_DEPS})
  endif()

  # Add include directories.
  if ( TGT_PUB_INCLUDES )
  target_include_directories(${TGT_NAME}
                             INTERFACE ${TGT_PUB_INCLUDES})
  endif()
  if ( TGT_PVT_INCLUDES )
  target_include_directories(${TGT_NAME}
                             PRIVATE ${TGT_PVT_INCLUDES})
  endif()
  if ( NOT ( TGT_TYPE STREQUAL "hdr" ) )
    target_include_directories(${TGT_NAME}
                               PRIVATE ${CMAKE_CURRENT_LIST_DIR}/source ${CMAKE_CURRENT_LIST_DIR}/include)
  endif()
  target_include_directories(${TGT_NAME}
                             INTERFACE ${CMAKE_CURRENT_LIST_DIR}/include)

  # Add compile-time definitions.
  if ( TGT_PUB_DEFINES )
    target_compile_definitions(${TGT_NAME} INTERFACE ${TGT_PUB_DEFINES})
  endif()
  if ( TGT_PVT_DEFINES )
    target_compile_definitions(${TGT_NAME} PRIVATE ${TGT_PVT_DEFINES})    
  endif()
   
  # Add compiler options.
  if ( NOT ( TGT_TYPE STREQUAL "hdr" ) )
    if ( NICEMAKE_COMMON_COMPILE_OPTS )
      target_compile_options(${TGT_NAME} PRIVATE ${NICEMAKE_COMMON_COMPILE_OPTS})
    endif()
    if ( TGT_COPTS )
      target_compile_options(${TGT_NAME} PRIVATE ${TGT_COPTS})
    endif()
    set_target_properties(${TGT_NAME} PROPERTIES COMPILE_WARNING_AS_ERROR ON)
  endif()

  # Set output directory.
  if( TGT_OUTPUT_DIR )
    set_target_properties(${TGT_NAME} PROPERTIES
      RUNTIME_OUTPUT_DIRECTORY "${TGT_OUTPUT_DIR}")
    set_target_properties(${TGT_NAME} PROPERTIES
      RUNTIME_OUTPUT_DIRECTORY_DEBUG "${TGT_OUTPUT_DIR}")
    set_target_properties(${TGT_NAME} PROPERTIES
      RUNTIME_OUTPUT_DIRECTORY_RELEASE "${TGT_OUTPUT_DIR}")  
    set_target_properties(${TGT_NAME} PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY "${TGT_OUTPUT_DIR}")      
  endif()
endfunction()

# Shortcut for adding a new library target.
function (nmk_static_library)
   nmk_target(TYPE lib ${ARGN})
endfunction()

# Shortcut for adding a new header-only library target.
function (nmk_header_library)
   nmk_target(TYPE hdr ${ARGN})
endfunction()

# Shortcut for adding a new executable target.
function (nmk_binary)
   nmk_target(TYPE exe ${ARGN})
endfunction()


================================================
FILE: deps/SPIRV-reflect/CMakeLists.txt
================================================
cmake_minimum_required(VERSION 3.14.0)
project(spvreflect)

set(CMAKE_C_STANDARD 99)

add_library(spvreflect STATIC
  ${CMAKE_CURRENT_LIST_DIR}/include/spirv/unified1/spirv.h
  ${CMAKE_CURRENT_LIST_DIR}/spirv_reflect.h
  ${CMAKE_CURRENT_LIST_DIR}/spirv_reflect.c)

target_include_directories(spvreflect SYSTEM PUBLIC ${CMAKE_CURRENT_LIST_DIR})


================================================
FILE: deps/SPIRV-reflect/include/spirv/unified1/spirv.h
================================================
/*
** Copyright (c) 2014-2020 The Khronos Group Inc.
**
** Permission is hereby granted, free of charge, to any person obtaining a copy
** of this software and/or associated documentation files (the "Materials"),
** to deal in the Materials without restriction, including without limitation
** the rights to use, copy, modify, merge, publish, distribute, sublicense,
** and/or sell copies of the Materials, and to permit persons to whom the
** Materials are furnished to do so, subject to the following conditions:
**
** The above copyright notice and this permission notice shall be included in
** all copies or substantial portions of the Materials.
**
** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
**
** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
** IN THE MATERIALS.
*/

/*
** This header is automatically generated by the same tool that creates
** the Binary Section of the SPIR-V specification.
*/

/*
** Enumeration tokens for SPIR-V, in various styles:
**   C, C++, C++11, JSON, Lua, Python, C#, D, Beef
**
** - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
** - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
** - C++11 will use enum classes in the spv namespace, e.g.:
*spv::SourceLanguage::GLSL
** - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
** - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
** - C# will use enum classes in the Specification class located in the "Spv"
*namespace,
**     e.g.: Spv.Specification.SourceLanguage.GLSL
** - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL
** - Beef will use enum classes in the Specification class located in the "Spv"
*namespace,
**     e.g.: Spv.Specification.SourceLanguage.GLSL
**
** Some tokens act like mask values, which can be OR'd together,
** while others are mutually exclusive.  The mask-like ones have
** "Mask" in their name, and a parallel enum that has the shift
** amount (1 << x) for each corresponding enumerant.
*/

#ifndef spirv_H
#define spirv_H

typedef unsigned int SpvId;

#define SPV_VERSION 0x10600
#define SPV_REVISION 1

static const unsigned int SpvMagicNumber = 0x07230203;
static const unsigned int SpvVersion = 0x00010600;
static const unsigned int SpvRevision = 1;
static const unsigned int SpvOpCodeMask = 0xffff;
static const unsigned int SpvWordCountShift = 16;

typedef enum SpvSourceLanguage_ {
  SpvSourceLanguageUnknown = 0,
  SpvSourceLanguageESSL = 1,
  SpvSourceLanguageGLSL = 2,
  SpvSourceLanguageOpenCL_C = 3,
  SpvSourceLanguageOpenCL_CPP = 4,
  SpvSourceLanguageHLSL = 5,
  SpvSourceLanguageCPP_for_OpenCL = 6,
  SpvSourceLanguageSYCL = 7,
  SpvSourceLanguageHERO_C = 8,
  SpvSourceLanguageNZSL = 9,
  SpvSourceLanguageMax = 0x7fffffff,
} SpvSourceLanguage;

typedef enum SpvExecutionModel_ {
  SpvExecutionModelVertex = 0,
  SpvExecutionModelTessellationControl = 1,
  SpvExecutionModelTessellationEvaluation = 2,
  SpvExecutionModelGeometry = 3,
  SpvExecutionModelFragment = 4,
  SpvExecutionModelGLCompute = 5,
  SpvExecutionModelKernel = 6,
  SpvExecutionModelTaskNV = 5267,
  SpvExecutionModelMeshNV = 5268,
  SpvExecutionModelRayGenerationKHR = 5313,
  SpvExecutionModelRayGenerationNV = 5313,
  SpvExecutionModelIntersectionKHR = 5314,
  SpvExecutionModelIntersectionNV = 5314,
  SpvExecutionModelAnyHitKHR = 5315,
  SpvExecutionModelAnyHitNV = 5315,
  SpvExecutionModelClosestHitKHR = 5316,
  SpvExecutionModelClosestHitNV = 5316,
  SpvExecutionModelMissKHR = 5317,
  SpvExecutionModelMissNV = 5317,
  SpvExecutionModelCallableKHR = 5318,
  SpvExecutionModelCallableNV = 5318,
  SpvExecutionModelTaskEXT = 5364,
  SpvExecutionModelMeshEXT = 5365,
  SpvExecutionModelMax = 0x7fffffff,
} SpvExecutionModel;

typedef enum SpvAddressingModel_ {
  SpvAddressingModelLogical = 0,
  SpvAddressingModelPhysical32 = 1,
  SpvAddressingModelPhysical64 = 2,
  SpvAddressingModelPhysicalStorageBuffer64 = 5348,
  SpvAddressingModelPhysicalStorageBuffer64EXT = 5348,
  SpvAddressingModelMax = 0x7fffffff,
} SpvAddressingModel;

typedef enum SpvMemoryModel_ {
  SpvMemoryModelSimple = 0,
  SpvMemoryModelGLSL450 = 1,
  SpvMemoryModelOpenCL = 2,
  SpvMemoryModelVulkan = 3,
  SpvMemoryModelVulkanKHR = 3,
  SpvMemoryModelMax = 0x7fffffff,
} SpvMemoryModel;

typedef enum SpvExecutionMode_ {
  SpvExecutionModeInvocations = 0,
  SpvExecutionModeSpacingEqual = 1,
  SpvExecutionModeSpacingFractionalEven = 2,
  SpvExecutionModeSpacingFractionalOdd = 3,
  SpvExecutionModeVertexOrderCw = 4,
  SpvExecutionModeVertexOrderCcw = 5,
  SpvExecutionModePixelCenterInteger = 6,
  SpvExecutionModeOriginUpperLeft = 7,
  SpvExecutionModeOriginLowerLeft = 8,
  SpvExecutionModeEarlyFragmentTests = 9,
  SpvExecutionModePointMode = 10,
  SpvExecutionModeXfb = 11,
  SpvExecutionModeDepthReplacing = 12,
  SpvExecutionModeDepthGreater = 14,
  SpvExecutionModeDepthLess = 15,
  SpvExecutionModeDepthUnchanged = 16,
  SpvExecutionModeLocalSize = 17,
  SpvExecutionModeLocalSizeHint = 18,
  SpvExecutionModeInputPoints = 19,
  SpvExecutionModeInputLines = 20,
  SpvExecutionModeInputLinesAdjacency = 21,
  SpvExecutionModeTriangles = 22,
  SpvExecutionModeInputTrianglesAdjacency = 23,
  SpvExecutionModeQuads = 24,
  SpvExecutionModeIsolines = 25,
  SpvExecutionModeOutputVertices = 26,
  SpvExecutionModeOutputPoints = 27,
  SpvExecutionModeOutputLineStrip = 28,
  SpvExecutionModeOutputTriangleStrip = 29,
  SpvExecutionModeVecTypeHint = 30,
  SpvExecutionModeContractionOff = 31,
  SpvExecutionModeInitializer = 33,
  SpvExecutionModeFinalizer = 34,
  SpvExecutionModeSubgroupSize = 35,
  SpvExecutionModeSubgroupsPerWorkgroup = 36,
  SpvExecutionModeSubgroupsPerWorkgroupId = 37,
  SpvExecutionModeLocalSizeId = 38,
  SpvExecutionModeLocalSizeHintId = 39,
  SpvExecutionModeNonCoherentColorAttachmentReadEXT = 4169,
  SpvExecutionModeNonCoherentDepthAttachmentReadEXT = 4170,
  SpvExecutionModeNonCoherentStencilAttachmentReadEXT = 4171,
  SpvExecutionModeSubgroupUniformControlFlowKHR = 4421,
  SpvExecutionModePostDepthCoverage = 4446,
  SpvExecutionModeDenormPreserve = 4459,
  SpvExecutionModeDenormFlushToZero = 4460,
  SpvExecutionModeSignedZeroInfNanPreserve = 4461,
  SpvExecutionModeRoundingModeRTE = 4462,
  SpvExecutionModeRoundingModeRTZ = 4463,
  SpvExecutionModeEarlyAndLateFragmentTestsAMD = 5017,
  SpvExecutionModeStencilRefReplacingEXT = 5027,
  SpvExecutionModeStencilRefUnchangedFrontAMD = 5079,
  SpvExecutionModeStencilRefGreaterFrontAMD = 5080,
  SpvExecutionModeStencilRefLessFrontAMD = 5081,
  SpvExecutionModeStencilRefUnchangedBackAMD = 5082,
  SpvExecutionModeStencilRefGreaterBackAMD = 5083,
  SpvExecutionModeStencilRefLessBackAMD = 5084,
  SpvExecutionModeOutputLinesEXT = 5269,
  SpvExecutionModeOutputLinesNV = 5269,
  SpvExecutionModeOutputPrimitivesEXT = 5270,
  SpvExecutionModeOutputPrimitivesNV = 5270,
  SpvExecutionModeDerivativeGroupQuadsNV = 5289,
  SpvExecutionModeDerivativeGroupLinearNV = 5290,
  SpvExecutionModeOutputTrianglesEXT = 5298,
  SpvExecutionModeOutputTrianglesNV = 5298,
  SpvExecutionModePixelInterlockOrderedEXT = 5366,
  SpvExecutionModePixelInterlockUnorderedEXT = 5367,
  SpvExecutionModeSampleInterlockOrderedEXT = 5368,
  SpvExecutionModeSampleInterlockUnorderedEXT = 5369,
  SpvExecutionModeShadingRateInterlockOrderedEXT = 5370,
  SpvExecutionModeShadingRateInterlockUnorderedEXT = 5371,
  SpvExecutionModeSharedLocalMemorySizeINTEL = 5618,
  SpvExecutionModeRoundingModeRTPINTEL = 5620,
  SpvExecutionModeRoundingModeRTNINTEL = 5621,
  SpvExecutionModeFloatingPointModeALTINTEL = 5622,
  SpvExecutionModeFloatingPointModeIEEEINTEL = 5623,
  SpvExecutionModeMaxWorkgroupSizeINTEL = 5893,
  SpvExecutionModeMaxWorkDimINTEL = 5894,
  SpvExecutionModeNoGlobalOffsetINTEL = 5895,
  SpvExecutionModeNumSIMDWorkitemsINTEL = 5896,
  SpvExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
  SpvExecutionModeStreamingInterfaceINTEL = 6154,
  SpvExecutionModeRegisterMapInterfaceINTEL = 6160,
  SpvExecutionModeNamedBarrierCountINTEL = 6417,
  SpvExecutionModeMax = 0x7fffffff,
} SpvExecutionMode;

typedef enum SpvStorageClass_ {
  SpvStorageClassUniformConstant = 0,
  SpvStorageClassInput = 1,
  SpvStorageClassUniform = 2,
  SpvStorageClassOutput = 3,
  SpvStorageClassWorkgroup = 4,
  SpvStorageClassCrossWorkgroup = 5,
  SpvStorageClassPrivate = 6,
  SpvStorageClassFunction = 7,
  SpvStorageClassGeneric = 8,
  SpvStorageClassPushConstant = 9,
  SpvStorageClassAtomicCounter = 10,
  SpvStorageClassImage = 11,
  SpvStorageClassStorageBuffer = 12,
  SpvStorageClassTileImageEXT = 4172,
  SpvStorageClassCallableDataKHR = 5328,
  SpvStorageClassCallableDataNV = 5328,
  SpvStorageClassIncomingCallableDataKHR = 5329,
  SpvStorageClassIncomingCallableDataNV = 5329,
  SpvStorageClassRayPayloadKHR = 5338,
  SpvStorageClassRayPayloadNV = 5338,
  SpvStorageClassHitAttributeKHR = 5339,
  SpvStorageClassHitAttributeNV = 5339,
  SpvStorageClassIncomingRayPayloadKHR = 5342,
  SpvStorageClassIncomingRayPayloadNV = 5342,
  SpvStorageClassShaderRecordBufferKHR = 5343,
  SpvStorageClassShaderRecordBufferNV = 5343,
  SpvStorageClassPhysicalStorageBuffer = 5349,
  SpvStorageClassPhysicalStorageBufferEXT = 5349,
  SpvStorageClassHitObjectAttributeNV = 5385,
  SpvStorageClassTaskPayloadWorkgroupEXT = 5402,
  SpvStorageClassCodeSectionINTEL = 5605,
  SpvStorageClassDeviceOnlyINTEL = 5936,
  SpvStorageClassHostOnlyINTEL = 5937,
  SpvStorageClassMax = 0x7fffffff,
} SpvStorageClass;

typedef enum SpvDim_ {
  SpvDim1D = 0,
  SpvDim2D = 1,
  SpvDim3D = 2,
  SpvDimCube = 3,
  SpvDimRect = 4,
  SpvDimBuffer = 5,
  SpvDimSubpassData = 6,
  SpvDimTileImageDataEXT = 4173,
  SpvDimMax = 0x7fffffff,
} SpvDim;

typedef enum SpvSamplerAddressingMode_ {
  SpvSamplerAddressingModeNone = 0,
  SpvSamplerAddressingModeClampToEdge = 1,
  SpvSamplerAddressingModeClamp = 2,
  SpvSamplerAddressingModeRepeat = 3,
  SpvSamplerAddressingModeRepeatMirrored = 4,
  SpvSamplerAddressingModeMax = 0x7fffffff,
} SpvSamplerAddressingMode;

typedef enum SpvSamplerFilterMode_ {
  SpvSamplerFilterModeNearest = 0,
  SpvSamplerFilterModeLinear = 1,
  SpvSamplerFilterModeMax = 0x7fffffff,
} SpvSamplerFilterMode;

typedef enum SpvImageFormat_ {
  SpvImageFormatUnknown = 0,
  SpvImageFormatRgba32f = 1,
  SpvImageFormatRgba16f = 2,
  SpvImageFormatR32f = 3,
  SpvImageFormatRgba8 = 4,
  SpvImageFormatRgba8Snorm = 5,
  SpvImageFormatRg32f = 6,
  SpvImageFormatRg16f = 7,
  SpvImageFormatR11fG11fB10f = 8,
  SpvImageFormatR16f = 9,
  SpvImageFormatRgba16 = 10,
  SpvImageFormatRgb10A2 = 11,
  SpvImageFormatRg16 = 12,
  SpvImageFormatRg8 = 13,
  SpvImageFormatR16 = 14,
  SpvImageFormatR8 = 15,
  SpvImageFormatRgba16Snorm = 16,
  SpvImageFormatRg16Snorm = 17,
  SpvImageFormatRg8Snorm = 18,
  SpvImageFormatR16Snorm = 19,
  SpvImageFormatR8Snorm = 20,
  SpvImageFormatRgba32i = 21,
  SpvImageFormatRgba16i = 22,
  SpvImageFormatRgba8i = 23,
  SpvImageFormatR32i = 24,
  SpvImageFormatRg32i = 25,
  SpvImageFormatRg16i = 26,
  SpvImageFormatRg8i = 27,
  SpvImageFormatR16i = 28,
  SpvImageFormatR8i = 29,
  SpvImageFormatRgba32ui = 30,
  SpvImageFormatRgba16ui = 31,
  SpvImageFormatRgba8ui = 32,
  SpvImageFormatR32ui = 33,
  SpvImageFormatRgb10a2ui = 34,
  SpvImageFormatRg32ui = 35,
  SpvImageFormatRg16ui = 36,
  SpvImageFormatRg8ui = 37,
  SpvImageFormatR16ui = 38,
  SpvImageFormatR8ui = 39,
  SpvImageFormatR64ui = 40,
  SpvImageFormatR64i = 41,
  SpvImageFormatMax = 0x7fffffff,
} SpvImageFormat;

typedef enum SpvImageChannelOrder_ {
  SpvImageChannelOrderR = 0,
  SpvImageChannelOrderA = 1,
  SpvImageChannelOrderRG = 2,
  SpvImageChannelOrderRA = 3,
  SpvImageChannelOrderRGB = 4,
  SpvImageChannelOrderRGBA = 5,
  SpvImageChannelOrderBGRA = 6,
  SpvImageChannelOrderARGB = 7,
  SpvImageChannelOrderIntensity = 8,
  SpvImageChannelOrderLuminance = 9,
  SpvImageChannelOrderRx = 10,
  SpvImageChannelOrderRGx = 11,
  SpvImageChannelOrderRGBx = 12,
  SpvImageChannelOrderDepth = 13,
  SpvImageChannelOrderDepthStencil = 14,
  SpvImageChannelOrdersRGB = 15,
  SpvImageChannelOrdersRGBx = 16,
  SpvImageChannelOrdersRGBA = 17,
  SpvImageChannelOrdersBGRA = 18,
  SpvImageChannelOrderABGR = 19,
  SpvImageChannelOrderMax = 0x7fffffff,
} SpvImageChannelOrder;

typedef enum SpvImageChannelDataType_ {
  SpvImageChannelDataTypeSnormInt8 = 0,
  SpvImageChannelDataTypeSnormInt16 = 1,
  SpvImageChannelDataTypeUnormInt8 = 2,
  SpvImageChannelDataTypeUnormInt16 = 3,
  SpvImageChannelDataTypeUnormShort565 = 4,
  SpvImageChannelDataTypeUnormShort555 = 5,
  SpvImageChannelDataTypeUnormInt101010 = 6,
  SpvImageChannelDataTypeSignedInt8 = 7,
  SpvImageChannelDataTypeSignedInt16 = 8,
  SpvImageChannelDataTypeSignedInt32 = 9,
  SpvImageChannelDataTypeUnsignedInt8 = 10,
  SpvImageChannelDataTypeUnsignedInt16 = 11,
  SpvImageChannelDataTypeUnsignedInt32 = 12,
  SpvImageChannelDataTypeHalfFloat = 13,
  SpvImageChannelDataTypeFloat = 14,
  SpvImageChannelDataTypeUnormInt24 = 15,
  SpvImageChannelDataTypeUnormInt101010_2 = 16,
  SpvImageChannelDataTypeUnsignedIntRaw10EXT = 19,
  SpvImageChannelDataTypeUnsignedIntRaw12EXT = 20,
  SpvImageChannelDataTypeMax = 0x7fffffff,
} SpvImageChannelDataType;

typedef enum SpvImageOperandsShift_ {
  SpvImageOperandsBiasShift = 0,
  SpvImageOperandsLodShift = 1,
  SpvImageOperandsGradShift = 2,
  SpvImageOperandsConstOffsetShift = 3,
  SpvImageOperandsOffsetShift = 4,
  SpvImageOperandsConstOffsetsShift = 5,
  SpvImageOperandsSampleShift = 6,
  SpvImageOperandsMinLodShift = 7,
  SpvImageOperandsMakeTexelAvailableShift = 8,
  SpvImageOperandsMakeTexelAvailableKHRShift = 8,
  SpvImageOperandsMakeTexelVisibleShift = 9,
  SpvImageOperandsMakeTexelVisibleKHRShift = 9,
  SpvImageOperandsNonPrivateTexelShift = 10,
  SpvImageOperandsNonPrivateTexelKHRShift = 10,
  SpvImageOperandsVolatileTexelShift = 11,
  SpvImageOperandsVolatileTexelKHRShift = 11,
  SpvImageOperandsSignExtendShift = 12,
  SpvImageOperandsZeroExtendShift = 13,
  SpvImageOperandsNontemporalShift = 14,
  SpvImageOperandsOffsetsShift = 16,
  SpvImageOperandsMax = 0x7fffffff,
} SpvImageOperandsShift;

typedef enum SpvImageOperandsMask_ {
  SpvImageOperandsMaskNone = 0,
  SpvImageOperandsBiasMask = 0x00000001,
  SpvImageOperandsLodMask = 0x00000002,
  SpvImageOperandsGradMask = 0x00000004,
  SpvImageOperandsConstOffsetMask = 0x00000008,
  SpvImageOperandsOffsetMask = 0x00000010,
  SpvImageOperandsConstOffsetsMask = 0x00000020,
  SpvImageOperandsSampleMask = 0x00000040,
  SpvImageOperandsMinLodMask = 0x00000080,
  SpvImageOperandsMakeTexelAvailableMask = 0x00000100,
  SpvImageOperandsMakeTexelAvailableKHRMask = 0x00000100,
  SpvImageOperandsMakeTexelVisibleMask = 0x00000200,
  SpvImageOperandsMakeTexelVisibleKHRMask = 0x00000200,
  SpvImageOperandsNonPrivateTexelMask = 0x00000400,
  SpvImageOperandsNonPrivateTexelKHRMask = 0x00000400,
  SpvImageOperandsVolatileTexelMask = 0x00000800,
  SpvImageOperandsVolatileTexelKHRMask = 0x00000800,
  SpvImageOperandsSignExtendMask = 0x00001000,
  SpvImageOperandsZeroExtendMask = 0x00002000,
  SpvImageOperandsNontemporalMask = 0x00004000,
  SpvImageOperandsOffsetsMask = 0x00010000,
} SpvImageOperandsMask;

typedef enum SpvFPFastMathModeShift_ {
  SpvFPFastMathModeNotNaNShift = 0,
  SpvFPFastMathModeNotInfShift = 1,
  SpvFPFastMathModeNSZShift = 2,
  SpvFPFastMathModeAllowRecipShift = 3,
  SpvFPFastMathModeFastShift = 4,
  SpvFPFastMathModeAllowContractFastINTELShift = 16,
  SpvFPFastMathModeAllowReassocINTELShift = 17,
  SpvFPFastMathModeMax = 0x7fffffff,
} SpvFPFastMathModeShift;

typedef enum SpvFPFastMathModeMask_ {
  SpvFPFastMathModeMaskNone = 0,
  SpvFPFastMathModeNotNaNMask = 0x00000001,
  SpvFPFastMathModeNotInfMask = 0x00000002,
  SpvFPFastMathModeNSZMask = 0x00000004,
  SpvFPFastMathModeAllowRecipMask = 0x00000008,
  SpvFPFastMathModeFastMask = 0x00000010,
  SpvFPFastMathModeAllowContractFastINTELMask = 0x00010000,
  SpvFPFastMathModeAllowReassocINTELMask = 0x00020000,
} SpvFPFastMathModeMask;

typedef enum SpvFPRoundingMode_ {
  SpvFPRoundingModeRTE = 0,
  SpvFPRoundingModeRTZ = 1,
  SpvFPRoundingModeRTP = 2,
  SpvFPRoundingModeRTN = 3,
  SpvFPRoundingModeMax = 0x7fffffff,
} SpvFPRoundingMode;

typedef enum SpvLinkageType_ {
  SpvLinkageTypeExport = 0,
  SpvLinkageTypeImport = 1,
  SpvLinkageTypeLinkOnceODR = 2,
  SpvLinkageTypeMax = 0x7fffffff,
} SpvLinkageType;

typedef enum SpvAccessQualifier_ {
  SpvAccessQualifierReadOnly = 0,
  SpvAccessQualifierWriteOnly = 1,
  SpvAccessQualifierReadWrite = 2,
  SpvAccessQualifierMax = 0x7fffffff,
} SpvAccessQualifier;

typedef enum SpvFunctionParameterAttribute_ {
  SpvFunctionParameterAttributeZext = 0,
  SpvFunctionParameterAttributeSext = 1,
  SpvFunctionParameterAttributeByVal = 2,
  SpvFunctionParameterAttributeSret = 3,
  SpvFunctionParameterAttributeNoAlias = 4,
  SpvFunctionParameterAttributeNoCapture = 5,
  SpvFunctionParameterAttributeNoWrite = 6,
  SpvFunctionParameterAttributeNoReadWrite = 7,
  SpvFunctionParameterAttributeRuntimeAlignedINTEL = 5940,
  SpvFunctionParameterAttributeMax = 0x7fffffff,
} SpvFunctionParameterAttribute;

typedef enum SpvDecoration_ {
  SpvDecorationRelaxedPrecision = 0,
  SpvDecorationSpecId = 1,
  SpvDecorationBlock = 2,
  SpvDecorationBufferBlock = 3,
  SpvDecorationRowMajor = 4,
  SpvDecorationColMajor = 5,
  SpvDecorationArrayStride = 6,
  SpvDecorationMatrixStride = 7,
  SpvDecorationGLSLShared = 8,
  SpvDecorationGLSLPacked = 9,
  SpvDecorationCPacked = 10,
  SpvDecorationBuiltIn = 11,
  SpvDecorationNoPerspective = 13,
  SpvDecorationFlat = 14,
  SpvDecorationPatch = 15,
  SpvDecorationCentroid = 16,
  SpvDecorationSample = 17,
  SpvDecorationInvariant = 18,
  SpvDecorationRestrict = 19,
  SpvDecorationAliased = 20,
  SpvDecorationVolatile = 21,
  SpvDecorationConstant = 22,
  SpvDecorationCoherent = 23,
  SpvDecorationNonWritable = 24,
  SpvDecorationNonReadable = 25,
  SpvDecorationUniform = 26,
  SpvDecorationUniformId = 27,
  SpvDecorationSaturatedConversion = 28,
  SpvDecorationStream = 29,
  SpvDecorationLocation = 30,
  SpvDecorationComponent = 31,
  SpvDecorationIndex = 32,
  SpvDecorationBinding = 33,
  SpvDecorationDescriptorSet = 34,
  SpvDecorationOffset = 35,
  SpvDecorationXfbBuffer = 36,
  SpvDecorationXfbStride = 37,
  SpvDecorationFuncParamAttr = 38,
  SpvDecorationFPRoundingMode = 39,
  SpvDecorationFPFastMathMode = 40,
  SpvDecorationLinkageAttributes = 41,
  SpvDecorationNoContraction = 42,
  SpvDecorationInputAttachmentIndex = 43,
  SpvDecorationAlignment = 44,
  SpvDecorationMaxByteOffset = 45,
  SpvDecorationAlignmentId = 46,
  SpvDecorationMaxByteOffsetId = 47,
  SpvDecorationNoSignedWrap = 4469,
  SpvDecorationNoUnsignedWrap = 4470,
  SpvDecorationWeightTextureQCOM = 4487,
  SpvDecorationBlockMatchTextureQCOM = 4488,
  SpvDecorationExplicitInterpAMD = 4999,
  SpvDecorationOverrideCoverageNV = 5248,
  SpvDecorationPassthroughNV = 5250,
  SpvDecorationViewportRelativeNV = 5252,
  SpvDecorationSecondaryViewportRelativeNV = 5256,
  SpvDecorationPerPrimitiveEXT = 5271,
  SpvDecorationPerPrimitiveNV = 5271,
  SpvDecorationPerViewNV = 5272,
  SpvDecorationPerTaskNV = 5273,
  SpvDecorationPerVertexKHR = 5285,
  SpvDecorationPerVertexNV = 5285,
  SpvDecorationNonUniform = 5300,
  SpvDecorationNonUniformEXT = 5300,
  SpvDecorationRestrictPointer = 5355,
  SpvDecorationRestrictPointerEXT = 5355,
  SpvDecorationAliasedPointer = 5356,
  SpvDecorationAliasedPointerEXT = 5356,
  SpvDecorationHitObjectShaderRecordBufferNV = 5386,
  SpvDecorationBindlessSamplerNV = 5398,
  SpvDecorationBindlessImageNV = 5399,
  SpvDecorationBoundSamplerNV = 5400,
  SpvDecorationBoundImageNV = 5401,
  SpvDecorationSIMTCallINTEL = 5599,
  SpvDecorationReferencedIndirectlyINTEL = 5602,
  SpvDecorationClobberINTEL = 5607,
  SpvDecorationSideEffectsINTEL = 5608,
  SpvDecorationVectorComputeVariableINTEL = 5624,
  SpvDecorationFuncParamIOKindINTEL = 5625,
  SpvDecorationVectorComputeFunctionINTEL = 5626,
  SpvDecorationStackCallINTEL = 5627,
  SpvDecorationGlobalVariableOffsetINTEL = 5628,
  SpvDecorationCounterBuffer = 5634,
  SpvDecorationHlslCounterBufferGOOGLE = 5634,
  SpvDecorationHlslSemanticGOOGLE = 5635,
  SpvDecorationUserSemantic = 5635,
  SpvDecorationUserTypeGOOGLE = 5636,
  SpvDecorationFunctionRoundingModeINTEL = 5822,
  SpvDecorationFunctionDenormModeINTEL = 5823,
  SpvDecorationRegisterINTEL = 5825,
  SpvDecorationMemoryINTEL = 5826,
  SpvDecorationNumbanksINTEL = 5827,
  SpvDecorationBankwidthINTEL = 5828,
  SpvDecorationMaxPrivateCopiesINTEL = 5829,
  SpvDecorationSinglepumpINTEL = 5830,
  SpvDecorationDoublepumpINTEL = 5831,
  SpvDecorationMaxReplicatesINTEL = 5832,
  SpvDecorationSimpleDualPortINTEL = 5833,
  SpvDecorationMergeINTEL = 5834,
  SpvDecorationBankBitsINTEL = 5835,
  SpvDecorationForcePow2DepthINTEL = 5836,
  SpvDecorationBurstCoalesceINTEL = 5899,
  SpvDecorationCacheSizeINTEL = 5900,
  SpvDecorationDontStaticallyCoalesceINTEL = 5901,
  SpvDecorationPrefetchINTEL = 5902,
  SpvDecorationStallEnableINTEL = 5905,
  SpvDecorationFuseLoopsInFunctionINTEL = 5907,
  SpvDecorationMathOpDSPModeINTEL = 5909,
  SpvDecorationAliasScopeINTEL = 5914,
  SpvDecorationNoAliasINTEL = 5915,
  SpvDecorationInitiationIntervalINTEL = 5917,
  SpvDecorationMaxConcurrencyINTEL = 5918,
  SpvDecorationPipelineEnableINTEL = 5919,
  SpvDecorationBufferLocationINTEL = 5921,
  SpvDecorationIOPipeStorageINTEL = 5944,
  SpvDecorationFunctionFloatingPointModeINTEL = 6080,
  SpvDecorationSingleElementVectorINTEL = 6085,
  SpvDecorationVectorComputeCallableFunctionINTEL = 6087,
  SpvDecorationMediaBlockIOINTEL = 6140,
  SpvDecorationLatencyControlLabelINTEL = 6172,
  SpvDecorationLatencyControlConstraintINTEL = 6173,
  SpvDecorationConduitKernelArgumentINTEL = 6175,
  SpvDecorationRegisterMapKernelArgumentINTEL = 6176,
  SpvDecorationMMHostInterfaceAddressWidthINTEL = 6177,
  SpvDecorationMMHostInterfaceDataWidthINTEL = 6178,
  SpvDecorationMMHostInterfaceLatencyINTEL = 6179,
  SpvDecorationMMHostInterfaceReadWriteModeINTEL = 6180,
  SpvDecorationMMHostInterfaceMaxBurstINTEL = 6181,
  SpvDecorationMMHostInterfaceWaitRequestINTEL = 6182,
  SpvDecorationStableKernelArgumentINTEL = 6183,
  SpvDecorationMax = 0x7fffffff,
} SpvDecoration;

typedef enum SpvBuiltIn_ {
  SpvBuiltInPosition = 0,
  SpvBuiltInPointSize = 1,
  SpvBuiltInClipDistance = 3,
  SpvBuiltInCullDistance = 4,
  SpvBuiltInVertexId = 5,
  SpvBuiltInInstanceId = 6,
  SpvBuiltInPrimitiveId = 7,
  SpvBuiltInInvocationId = 8,
  SpvBuiltInLayer = 9,
  SpvBuiltInViewportIndex = 10,
  SpvBuiltInTessLevelOuter = 11,
  SpvBuiltInTessLevelInner = 12,
  SpvBuiltInTessCoord = 13,
  SpvBuiltInPatchVertices = 14,
  SpvBuiltInFragCoord = 15,
  SpvBuiltInPointCoord = 16,
  SpvBuiltInFrontFacing = 17,
  SpvBuiltInSampleId = 18,
  SpvBuiltInSamplePosition = 19,
  SpvBuiltInSampleMask = 20,
  SpvBuiltInFragDepth = 22,
  SpvBuiltInHelperInvocation = 23,
  SpvBuiltInNumWorkgroups = 24,
  SpvBuiltInWorkgroupSize = 25,
  SpvBuiltInWorkgroupId = 26,
  SpvBuiltInLocalInvocationId = 27,
  SpvBuiltInGlobalInvocationId = 28,
  SpvBuiltInLocalInvocationIndex = 29,
  SpvBuiltInWorkDim = 30,
  SpvBuiltInGlobalSize = 31,
  SpvBuiltInEnqueuedWorkgroupSize = 32,
  SpvBuiltInGlobalOffset = 33,
  SpvBuiltInGlobalLinearId = 34,
  SpvBuiltInSubgroupSize = 36,
  SpvBuiltInSubgroupMaxSize = 37,
  SpvBuiltInNumSubgroups = 38,
  SpvBuiltInNumEnqueuedSubgroups = 39,
  SpvBuiltInSubgroupId = 40,
  SpvBuiltInSubgroupLocalInvocationId = 41,
  SpvBuiltInVertexIndex = 42,
  SpvBuiltInInstanceIndex = 43,
  SpvBuiltInCoreIDARM = 4160,
  SpvBuiltInCoreCountARM = 4161,
  SpvBuiltInCoreMaxIDARM = 4162,
  SpvBuiltInWarpIDARM = 4163,
  SpvBuiltInWarpMaxIDARM = 4164,
  SpvBuiltInSubgroupEqMask = 4416,
  SpvBuiltInSubgroupEqMaskKHR = 4416,
  SpvBuiltInSubgroupGeMask = 4417,
  SpvBuiltInSubgroupGeMaskKHR = 4417,
  SpvBuiltInSubgroupGtMask = 4418,
  SpvBuiltInSubgroupGtMaskKHR = 4418,
  SpvBuiltInSubgroupLeMask = 4419,
  SpvBuiltInSubgroupLeMaskKHR = 4419,
  SpvBuiltInSubgroupLtMask = 4420,
  SpvBuiltInSubgroupLtMaskKHR = 4420,
  SpvBuiltInBaseVertex = 4424,
  SpvBuiltInBaseInstance = 4425,
  SpvBuiltInDrawIndex = 4426,
  SpvBuiltInPrimitiveShadingRateKHR = 4432,
  SpvBuiltInDeviceIndex = 4438,
  SpvBuiltInViewIndex = 4440,
  SpvBuiltInShadingRateKHR = 4444,
  SpvBuiltInBaryCoordNoPerspAMD = 4992,
  SpvBuiltInBaryCoordNoPerspCentroidAMD = 4993,
  SpvBuiltInBaryCoordNoPerspSampleAMD = 4994,
  SpvBuiltInBaryCoordSmoothAMD = 4995,
  SpvBuiltInBaryCoordSmoothCentroidAMD = 4996,
  SpvBuiltInBaryCoordSmoothSampleAMD = 4997,
  SpvBuiltInBaryCoordPullModelAMD = 4998,
  SpvBuiltInFragStencilRefEXT = 5014,
  SpvBuiltInViewportMaskNV = 5253,
  SpvBuiltInSecondaryPositionNV = 5257,
  SpvBuiltInSecondaryViewportMaskNV = 5258,
  SpvBuiltInPositionPerViewNV = 5261,
  SpvBuiltInViewportMaskPerViewNV = 5262,
  SpvBuiltInFullyCoveredEXT = 5264,
  SpvBuiltInTaskCountNV = 5274,
  SpvBuiltInPrimitiveCountNV = 5275,
  SpvBuiltInPrimitiveIndicesNV = 5276,
  SpvBuiltInClipDistancePerViewNV = 5277,
  SpvBuiltInCullDistancePerViewNV = 5278,
  SpvBuiltInLayerPerViewNV = 5279,
  SpvBuiltInMeshViewCountNV = 5280,
  SpvBuiltInMeshViewIndicesNV = 5281,
  SpvBuiltInBaryCoordKHR = 5286,
  SpvBuiltInBaryCoordNV = 5286,
  SpvBuiltInBaryCoordNoPerspKHR = 5287,
  SpvBuiltInBaryCoordNoPerspNV = 5287,
  SpvBuiltInFragSizeEXT = 5292,
  SpvBuiltInFragmentSizeNV = 5292,
  SpvBuiltInFragInvocationCountEXT = 5293,
  SpvBuiltInInvocationsPerPixelNV = 5293,
  SpvBuiltInPrimitivePointIndicesEXT = 5294,
  SpvBuiltInPrimitiveLineIndicesEXT = 5295,
  SpvBuiltInPrimitiveTriangleIndicesEXT = 5296,
  SpvBuiltInCullPrimitiveEXT = 5299,
  SpvBuiltInLaunchIdKHR = 5319,
  SpvBuiltInLaunchIdNV = 5319,
  SpvBuiltInLaunchSizeKHR = 5320,
  SpvBuiltInLaunchSizeNV = 5320,
  SpvBuiltInWorldRayOriginKHR = 5321,
  SpvBuiltInWorldRayOriginNV = 5321,
  SpvBuiltInWorldRayDirectionKHR = 5322,
  SpvBuiltInWorldRayDirectionNV = 5322,
  SpvBuiltInObjectRayOriginKHR = 5323,
  SpvBuiltInObjectRayOriginNV = 5323,
  SpvBuiltInObjectRayDirectionKHR = 5324,
  SpvBuiltInObjectRayDirectionNV = 5324,
  SpvBuiltInRayTminKHR = 5325,
  SpvBuiltInRayTminNV = 5325,
  SpvBuiltInRayTmaxKHR = 5326,
  SpvBuiltInRayTmaxNV = 5326,
  SpvBuiltInInstanceCustomIndexKHR = 5327,
  SpvBuiltInInstanceCustomIndexNV = 5327,
  SpvBuiltInObjectToWorldKHR = 5330,
  SpvBuiltInObjectToWorldNV = 5330,
  SpvBuiltInWorldToObjectKHR = 5331,
  SpvBuiltInWorldToObjectNV = 5331,
  SpvBuiltInHitTNV = 5332,
  SpvBuiltInHitKindKHR = 5333,
  SpvBuiltInHitKindNV = 5333,
  SpvBuiltInCurrentRayTimeNV = 5334,
  SpvBuiltInHitTriangleVertexPositionsKHR = 5335,
  SpvBuiltInIncomingRayFlagsKHR = 5351,
  SpvBuiltInIncomingRayFlagsNV = 5351,
  SpvBuiltInRayGeometryIndexKHR = 5352,
  SpvBuiltInWarpsPerSMNV = 5374,
  SpvBuiltInSMCountNV = 5375,
  SpvBuiltInWarpIDNV = 5376,
  SpvBuiltInSMIDNV = 5377,
  SpvBuiltInCullMaskKHR = 6021,
  SpvBuiltInMax = 0x7fffffff,
} SpvBuiltIn;

typedef enum SpvSelectionControlShift_ {
  SpvSelectionControlFlattenShift = 0,
  SpvSelectionControlDontFlattenShift = 1,
  SpvSelectionControlMax = 0x7fffffff,
} SpvSelectionControlShift;

typedef enum SpvSelectionControlMask_ {
  SpvSelectionControlMaskNone = 0,
  SpvSelectionControlFlattenMask = 0x00000001,
  SpvSelectionControlDontFlattenMask = 0x00000002,
} SpvSelectionControlMask;

typedef enum SpvLoopControlShift_ {
  SpvLoopControlUnrollShift = 0,
  SpvLoopControlDontUnrollShift = 1,
  SpvLoopControlDependencyInfiniteShift = 2,
  SpvLoopControlDependencyLengthShift = 3,
  SpvLoopControlMinIterationsShift = 4,
  SpvLoopControlMaxIterationsShift = 5,
  SpvLoopControlIterationMultipleShift = 6,
  SpvLoopControlPeelCountShift = 7,
  SpvLoopControlPartialCountShift = 8,
  SpvLoopControlInitiationIntervalINTELShift = 16,
  SpvLoopControlMaxConcurrencyINTELShift = 17,
  SpvLoopControlDependencyArrayINTELShift = 18,
  SpvLoopControlPipelineEnableINTELShift = 19,
  SpvLoopControlLoopCoalesceINTELShift = 20,
  SpvLoopControlMaxInterleavingINTELShift = 21,
  SpvLoopControlSpeculatedIterationsINTELShift = 22,
  SpvLoopControlNoFusionINTELShift = 23,
  SpvLoopControlLoopCountINTELShift = 24,
  SpvLoopControlMaxReinvocationDelayINTELShift = 25,
  SpvLoopControlMax = 0x7fffffff,
} SpvLoopControlShift;

typedef enum SpvLoopControlMask_ {
  SpvLoopControlMaskNone = 0,
  SpvLoopControlUnrollMask = 0x00000001,
  SpvLoopControlDontUnrollMask = 0x00000002,
  SpvLoopControlDependencyInfiniteMask = 0x00000004,
  SpvLoopControlDependencyLengthMask = 0x00000008,
  SpvLoopControlMinIterationsMask = 0x00000010,
  SpvLoopControlMaxIterationsMask = 0x00000020,
  SpvLoopControlIterationMultipleMask = 0x00000040,
  SpvLoopControlPeelCountMask = 0x00000080,
  SpvLoopControlPartialCountMask = 0x00000100,
  SpvLoopControlInitiationIntervalINTELMask = 0x00010000,
  SpvLoopControlMaxConcurrencyINTELMask = 0x00020000,
  SpvLoopControlDependencyArrayINTELMask = 0x00040000,
  SpvLoopControlPipelineEnableINTELMask = 0x00080000,
  SpvLoopControlLoopCoalesceINTELMask = 0x00100000,
  SpvLoopControlMaxInterleavingINTELMask = 0x00200000,
  SpvLoopControlSpeculatedIterationsINTELMask = 0x00400000,
  SpvLoopControlNoFusionINTELMask = 0x00800000,
  SpvLoopControlLoopCountINTELMask = 0x01000000,
  SpvLoopControlMaxReinvocationDelayINTELMask = 0x02000000,
} SpvLoopControlMask;

typedef enum SpvFunctionControlShift_ {
  SpvFunctionControlInlineShift = 0,
  SpvFunctionControlDontInlineShift = 1,
  SpvFunctionControlPureShift = 2,
  SpvFunctionControlConstShift = 3,
  SpvFunctionControlOptNoneINTELShift = 16,
  SpvFunctionControlMax = 0x7fffffff,
} SpvFunctionControlShift;

typedef enum SpvFunctionControlMask_ {
  SpvFunctionControlMaskNone = 0,
  SpvFunctionControlInlineMask = 0x00000001,
  SpvFunctionControlDontInlineMask = 0x00000002,
  SpvFunctionControlPureMask = 0x00000004,
  SpvFunctionControlConstMask = 0x00000008,
  SpvFunctionControlOptNoneINTELMask = 0x00010000,
} SpvFunctionControlMask;

typedef enum SpvMemorySemanticsShift_ {
  SpvMemorySemanticsAcquireShift = 1,
  SpvMemorySemanticsReleaseShift = 2,
  SpvMemorySemanticsAcquireReleaseShift = 3,
  SpvMemorySemanticsSequentiallyConsistentShift = 4,
  SpvMemorySemanticsUniformMemoryShift = 6,
  SpvMemorySemanticsSubgroupMemoryShift = 7,
  SpvMemorySemanticsWorkgroupMemoryShift = 8,
  SpvMemorySemanticsCrossWorkgroupMemoryShift = 9,
  SpvMemorySemanticsAtomicCounterMemoryShift = 10,
  SpvMemorySemanticsImageMemoryShift = 11,
  SpvMemorySemanticsOutputMemoryShift = 12,
  SpvMemorySemanticsOutputMemoryKHRShift = 12,
  SpvMemorySemanticsMakeAvailableShift = 13,
  SpvMemorySemanticsMakeAvailableKHRShift = 13,
  SpvMemorySemanticsMakeVisibleShift = 14,
  SpvMemorySemanticsMakeVisibleKHRShift = 14,
  SpvMemorySemanticsVolatileShift = 15,
  SpvMemorySemanticsMax = 0x7fffffff,
} SpvMemorySemanticsShift;

typedef enum SpvMemorySemanticsMask_ {
  SpvMemorySemanticsMaskNone = 0,
  SpvMemorySemanticsAcquireMask = 0x00000002,
  SpvMemorySemanticsReleaseMask = 0x00000004,
  SpvMemorySemanticsAcquireReleaseMask = 0x00000008,
  SpvMemorySemanticsSequentiallyConsistentMask = 0x00000010,
  SpvMemorySemanticsUniformMemoryMask = 0x00000040,
  SpvMemorySemanticsSubgroupMemoryMask = 0x00000080,
  SpvMemorySemanticsWorkgroupMemoryMask = 0x00000100,
  SpvMemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,
  SpvMemorySemanticsAtomicCounterMemoryMask = 0x00000400,
  SpvMemorySemanticsImageMemoryMask = 0x00000800,
  SpvMemorySemanticsOutputMemoryMask = 0x00001000,
  SpvMemorySemanticsOutputMemoryKHRMask = 0x00001000,
  SpvMemorySemanticsMakeAvailableMask = 0x00002000,
  SpvMemorySemanticsMakeAvailableKHRMask = 0x00002000,
  SpvMemorySemanticsMakeVisibleMask = 0x00004000,
  SpvMemorySemanticsMakeVisibleKHRMask = 0x00004000,
  SpvMemorySemanticsVolatileMask = 0x00008000,
} SpvMemorySemanticsMask;

typedef enum SpvMemoryAccessShift_ {
  SpvMemoryAccessVolatileShift = 0,
  SpvMemoryAccessAlignedShift = 1,
  SpvMemoryAccessNontemporalShift = 2,
  SpvMemoryAccessMakePointerAvailableShift = 3,
  SpvMemoryAccessMakePointerAvailableKHRShift = 3,
  SpvMemoryAccessMakePointerVisibleShift = 4,
  SpvMemoryAccessMakePointerVisibleKHRShift = 4,
  SpvMemoryAccessNonPrivatePointerShift = 5,
  SpvMemoryAccessNonPrivatePointerKHRShift = 5,
  SpvMemoryAccessAliasScopeINTELMaskShift = 16,
  SpvMemoryAccessNoAliasINTELMaskShift = 17,
  SpvMemoryAccessMax = 0x7fffffff,
} SpvMemoryAccessShift;

typedef enum SpvMemoryAccessMask_ {
  SpvMemoryAccessMaskNone = 0,
  SpvMemoryAccessVolatileMask = 0x00000001,
  SpvMemoryAccessAlignedMask = 0x00000002,
  SpvMemoryAccessNontemporalMask = 0x00000004,
  SpvMemoryAccessMakePointerAvailableMask = 0x00000008,
  SpvMemoryAccessMakePointerAvailableKHRMask = 0x00000008,
  SpvMemoryAccessMakePointerVisibleMask = 0x00000010,
  SpvMemoryAccessMakePointerVisibleKHRMask = 0x00000010,
  SpvMemoryAccessNonPrivatePointerMask = 0x00000020,
  SpvMemoryAccessNonPrivatePointerKHRMask = 0x00000020,
  SpvMemoryAccessAliasScopeINTELMaskMask = 0x00010000,
  SpvMemoryAccessNoAliasINTELMaskMask = 0x00020000,
} SpvMemoryAccessMask;

typedef enum SpvScope_ {
  SpvScopeCrossDevice = 0,
  SpvScopeDevice = 1,
  SpvScopeWorkgroup = 2,
  SpvScopeSubgroup = 3,
  SpvScopeInvocation = 4,
  SpvScopeQueueFamily = 5,
  SpvScopeQueueFamilyKHR = 5,
  SpvScopeShaderCallKHR = 6,
  SpvScopeMax = 0x7fffffff,
} SpvScope;

typedef enum SpvGroupOperation_ {
  SpvGroupOperationReduce = 0,
  SpvGroupOperationInclusiveScan = 1,
  SpvGroupOperationExclusiveScan = 2,
  SpvGroupOperationClusteredReduce = 3,
  SpvGroupOperationPartitionedReduceNV = 6,
  SpvGroupOperationPartitionedInclusiveScanNV = 7,
  SpvGroupOperationPartitionedExclusiveScanNV = 8,
  SpvGroupOperationMax = 0x7fffffff,
} SpvGroupOperation;

typedef enum SpvKernelEnqueueFlags_ {
  SpvKernelEnqueueFlagsNoWait = 0,
  SpvKernelEnqueueFlagsWaitKernel = 1,
  SpvKernelEnqueueFlagsWaitWorkGroup = 2,
  SpvKernelEnqueueFlagsMax = 0x7fffffff,
} SpvKernelEnqueueFlags;

typedef enum SpvKernelProfilingInfoShift_ {
  SpvKernelProfilingInfoCmdExecTimeShift = 0,
  SpvKernelProfilingInfoMax = 0x7fffffff,
} SpvKernelProfilingInfoShift;

typedef enum SpvKernelProfilingInfoMask_ {
  SpvKernelProfilingInfoMaskNone = 0,
  SpvKernelProfilingInfoCmdExecTimeMask = 0x00000001,
} SpvKernelProfilingInfoMask;

typedef enum SpvCapability_ {
  SpvCapabilityMatrix = 0,
  SpvCapabilityShader = 1,
  SpvCapabilityGeometry = 2,
  SpvCapabilityTessellation = 3,
  SpvCapabilityAddresses = 4,
  SpvCapabilityLinkage = 5,
  SpvCapabilityKernel = 6,
  SpvCapabilityVector16 = 7,
  SpvCapabilityFloat16Buffer = 8,
  SpvCapabilityFloat16 = 9,
  SpvCapabilityFloat64 = 10,
  SpvCapabilityInt64 = 11,
  SpvCapabilityInt64Atomics = 12,
  SpvCapabilityImageBasic = 13,
  SpvCapabilityImageReadWrite = 14,
  SpvCapabilityImageMipmap = 15,
  SpvCapabilityPipes = 17,
  SpvCapabilityGroups = 18,
  SpvCapabilityDeviceEnqueue = 19,
  SpvCapabilityLiteralSampler = 20,
  SpvCapabilityAtomicStorage = 21,
  SpvCapabilityInt16 = 22,
  SpvCapabilityTessellationPointSize = 23,
  SpvCapabilityGeometryPointSize = 24,
  SpvCapabilityImageGatherExtended = 25,
  SpvCapabilityStorageImageMultisample = 27,
  SpvCapabilityUniformBufferArrayDynamicIndexing = 28,
  SpvCapabilitySampledImageArrayDynamicIndexing = 29,
  SpvCapabilityStorageBufferArrayDynamicIndexing = 30,
  SpvCapabilityStorageImageArrayDynamicIndexing = 31,
  SpvCapabilityClipDistance = 32,
  SpvCapabilityCullDistance = 33,
  SpvCapabilityImageCubeArray = 34,
  SpvCapabilitySampleRateShading = 35,
  SpvCapabilityImageRect = 36,
  SpvCapabilitySampledRect = 37,
  SpvCapabilityGenericPointer = 38,
  SpvCapabilityInt8 = 39,
  SpvCapabilityInputAttachment = 40,
  SpvCapabilitySparseResidency = 41,
  SpvCapabilityMinLod = 42,
  SpvCapabilitySampled1D = 43,
  SpvCapabilityImage1D = 44,
  SpvCapabilitySampledCubeArray = 45,
  SpvCapabilitySampledBuffer = 46,
  SpvCapabilityImageBuffer = 47,
  SpvCapabilityImageMSArray = 48,
  SpvCapabilityStorageImageExtendedFormats = 49,
  SpvCapabilityImageQuery = 50,
  SpvCapabilityDerivativeControl = 51,
  SpvCapabilityInterpolationFunction = 52,
  SpvCapabilityTransformFeedback = 53,
  SpvCapabilityGeometryStreams = 54,
  SpvCapabilityStorageImageReadWithoutFormat = 55,
  SpvCapabilityStorageImageWriteWithoutFormat = 56,
  SpvCapabilityMultiViewport = 57,
  SpvCapabilitySubgroupDispatch = 58,
  SpvCapabilityNamedBarrier = 59,
  SpvCapabilityPipeStorage = 60,
  SpvCapabilityGroupNonUniform = 61,
  SpvCapabilityGroupNonUniformVote = 62,
  SpvCapabilityGroupNonUniformArithmetic = 63,
  SpvCapabilityGroupNonUniformBallot = 64,
  SpvCapabilityGroupNonUniformShuffle = 65,
  SpvCapabilityGroupNonUniformShuffleRelative = 66,
  SpvCapabilityGroupNonUniformClustered = 67,
  SpvCapabilityGroupNonUniformQuad = 68,
  SpvCapabilityShaderLayer = 69,
  SpvCapabilityShaderViewportIndex = 70,
  SpvCapabilityUniformDecoration = 71,
  SpvCapabilityCoreBuiltinsARM = 4165,
  SpvCapabilityTileImageColorReadAccessEXT = 4166,
  SpvCapabilityTileImageDepthReadAccessEXT = 4167,
  SpvCapabilityTileImageStencilReadAccessEXT = 4168,
  SpvCapabilityFragmentShadingRateKHR = 4422,
  SpvCapabilitySubgroupBallotKHR = 4423,
  SpvCapabilityDrawParameters = 4427,
  SpvCapabilityWorkgroupMemoryExplicitLayoutKHR = 4428,
  SpvCapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
  SpvCapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
  SpvCapabilitySubgroupVoteKHR = 4431,
  SpvCapabilityStorageBuffer16BitAccess = 4433,
  SpvCapabilityStorageUniformBufferBlock16 = 4433,
  SpvCapabilityStorageUniform16 = 4434,
  SpvCapabilityUniformAndStorageBuffer16BitAccess = 4434,
  SpvCapabilityStoragePushConstant16 = 4435,
  SpvCapabilityStorageInputOutput16 = 4436,
  SpvCapabilityDeviceGroup = 4437,
  SpvCapabilityMultiView = 4439,
  SpvCapabilityVariablePointersStorageBuffer = 4441,
  SpvCapabilityVariablePointers = 4442,
  SpvCapabilityAtomicStorageOps = 4445,
  SpvCapabilitySampleMaskPostDepthCoverage = 4447,
  SpvCapabilityStorageBuffer8BitAccess = 4448,
  SpvCapabilityUniformAndStorageBuffer8BitAccess = 4449,
  SpvCapabilityStoragePushConstant8 = 4450,
  SpvCapabilityDenormPreserve = 4464,
  SpvCapabilityDenormFlushToZero = 4465,
  SpvCapabilitySignedZeroInfNanPreserve = 4466,
  SpvCapabilityRoundingModeRTE = 4467,
  SpvCapabilityRoundingModeRTZ = 4468,
  SpvCapabilityRayQueryProvisionalKHR = 4471,
  SpvCapabilityRayQueryKHR = 4472,
  SpvCapabilityRayTraversalPrimitiveCullingKHR = 4478,
  SpvCapabilityRayTracingKHR = 4479,
  SpvCapabilityTextureSampleWeightedQCOM = 4484,
  SpvCapabilityTextureBoxFilterQCOM = 4485,
  SpvCapabilityTextureBlockMatchQCOM = 4486,
  SpvCapabilityFloat16ImageAMD = 5008,
  SpvCapabilityImageGatherBiasLodAMD = 5009,
  SpvCapabilityFragmentMaskAMD = 5010,
  SpvCapabilityStencilExportEXT = 5013,
  SpvCapabilityImageReadWriteLodAMD = 5015,
  SpvCapabilityInt64ImageEXT = 5016,
  SpvCapabilityShaderClockKHR = 5055,
  SpvCapabilitySampleMaskOverrideCoverageNV = 5249,
  SpvCapabilityGeometryShaderPassthroughNV = 5251,
  SpvCapabilityShaderViewportIndexLayerEXT = 5254,
  SpvCapabilityShaderViewportIndexLayerNV = 5254,
  SpvCapabilityShaderViewportMaskNV = 5255,
  SpvCapabilityShaderStereoViewNV = 5259,
  SpvCapabilityPerViewAttributesNV = 5260,
  SpvCapabilityFragmentFullyCoveredEXT = 5265,
  SpvCapabilityMeshShadingNV = 5266,
  SpvCapabilityImageFootprintNV = 5282,
  SpvCapabilityMeshShadingEXT = 5283,
  SpvCapabilityFragmentBarycentricKHR = 5284,
  SpvCapabilityFragmentBarycentricNV = 5284,
  SpvCapabilityComputeDerivativeGroupQuadsNV = 5288,
  SpvCapabilityFragmentDensityEXT = 5291,
  SpvCapabilityShadingRateNV = 5291,
  SpvCapabilityGroupNonUniformPartitionedNV = 5297,
  SpvCapabilityShaderNonUniform = 5301,
  SpvCapabilityShaderNonUniformEXT = 5301,
  SpvCapabilityRuntimeDescriptorArray = 5302,
  SpvCapabilityRuntimeDescriptorArrayEXT = 5302,
  SpvCapabilityInputAttachmentArrayDynamicIndexing = 5303,
  SpvCapabilityInputAttachmentArrayDynamicIndexingEXT = 5303,
  SpvCapabilityUniformTexelBufferArrayDynamicIndexing = 5304,
  SpvCapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304,
  SpvCapabilityStorageTexelBufferArrayDynamicIndexing = 5305,
  SpvCapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305,
  SpvCapabilityUniformBufferArrayNonUniformIndexing = 5306,
  SpvCapabilityUniformBufferArrayNonUniformIndexingEXT = 5306,
  SpvCapabilitySampledImageArrayNonUniformIndexing = 5307,
  SpvCapabilitySampledImageArrayNonUniformIndexingEXT = 5307,
  SpvCapabilityStorageBufferArrayNonUniformIndexing = 5308,
  SpvCapabilityStorageBufferArrayNonUniformIndexingEXT = 5308,
  SpvCapabilityStorageImageArrayNonUniformIndexing = 5309,
  SpvCapabilityStorageImageArrayNonUniformIndexingEXT = 5309,
  SpvCapabilityInputAttachmentArrayNonUniformIndexing = 5310,
  SpvCapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310,
  SpvCapabilityUniformTexelBufferArrayNonUniformIndexing = 5311,
  SpvCapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
  SpvCapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
  SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
  SpvCapabilityRayTracingPositionFetchKHR = 5336,
  SpvCapabilityRayTracingNV = 5340,
  SpvCapabilityRayTracingMotionBlurNV = 5341,
  SpvCapabilityVulkanMemoryModel = 5345,
  SpvCapabilityVulkanMemoryModelKHR = 5345,
  SpvCapabilityVulkanMemoryModelDeviceScope = 5346,
  SpvCapabilityVulkanMemoryModelDeviceScopeKHR = 5346,
  SpvCapabilityPhysicalStorageBufferAddresses = 5347,
  SpvCapabilityPhysicalStorageBufferAddressesEXT = 5347,
  SpvCapabilityComputeDerivativeGroupLinearNV = 5350,
  SpvCapabilityRayTracingProvisionalKHR = 5353,
  SpvCapabilityCooperativeMatrixNV = 5357,
  SpvCapabilityFragmentShaderSampleInterlockEXT = 5363,
  SpvCapabilityFragmentShaderShadingRateInterlockEXT = 5372,
  SpvCapabilityShaderSMBuiltinsNV = 5373,
  SpvCapabilityFragmentShaderPixelInterlockEXT = 5378,
  SpvCapabilityDemoteToHelperInvocation = 5379,
  SpvCapabilityDemoteToHelperInvocationEXT = 5379,
  SpvCapabilityRayTracingOpacityMicromapEXT = 5381,
  SpvCapabilityShaderInvocationReorderNV = 5383,
  SpvCapabilityBindlessTextureNV = 5390,
  SpvCapabilityRayQueryPositionFetchKHR = 5391,
  SpvCapabilitySubgroupShuffleINTEL = 5568,
  SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
  SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
  SpvCapabilitySubgroupImageMediaBlockIOINTEL = 5579,
  SpvCapabilityRoundToInfinityINTEL = 5582,
  SpvCapabilityFloatingPointModeINTEL = 5583,
  SpvCapabilityIntegerFunctions2INTEL = 5584,
  SpvCapabilityFunctionPointersINTEL = 5603,
  SpvCapabilityIndirectReferencesINTEL = 5604,
  SpvCapabilityAsmINTEL = 5606,
  SpvCapabilityAtomicFloat32MinMaxEXT = 5612,
  SpvCapabilityAtomicFloat64MinMaxEXT = 5613,
  SpvCapabilityAtomicFloat16MinMaxEXT = 5616,
  SpvCapabilityVectorComputeINTEL = 5617,
  SpvCapabilityVectorAnyINTEL = 5619,
  SpvCapabilityExpectAssumeKHR = 5629,
  SpvCapabilitySubgroupAvcMotionEstimationINTEL = 5696,
  SpvCapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
  SpvCapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
  SpvCapabilityVariableLengthArrayINTEL = 5817,
  SpvCapabilityFunctionFloatControlINTEL = 5821,
  SpvCapabilityFPGAMemoryAttributesINTEL = 5824,
  SpvCapabilityFPFastMathModeINTEL = 5837,
  SpvCapabilityArbitraryPrecisionIntegersINTEL = 5844,
  SpvCapabilityArbitraryPrecisionFloatingPointINTEL = 5845,
  SpvCapabilityUnstructuredLoopControlsINTEL = 5886,
  SpvCapabilityFPGALoopControlsINTEL = 5888,
  SpvCapabilityKernelAttributesINTEL = 5892,
  SpvCapabilityFPGAKernelAttributesINTEL = 5897,
  SpvCapabilityFPGAMemoryAccessesINTEL = 5898,
  SpvCapabilityFPGAClusterAttributesINTEL = 5904,
  SpvCapabilityLoopFuseINTEL = 5906,
  SpvCapabilityFPGADSPControlINTEL = 5908,
  SpvCapabilityMemoryAccessAliasingINTEL = 5910,
  SpvCapabilityFPGAInvocationPipeliningAttributesINTEL = 5916,
  SpvCapabilityFPGABufferLocationINTEL = 5920,
  SpvCapabilityArbitraryPrecisionFixedPointINTEL = 5922,
  SpvCapabilityUSMStorageClassesINTEL = 5935,
  SpvCapabilityRuntimeAlignedAttributeINTEL = 5939,
  SpvCapabilityIOPipesINTEL = 5943,
  SpvCapabilityBlockingPipesINTEL = 5945,
  SpvCapabilityFPGARegINTEL = 5948,
  SpvCapabilityDotProductInputAll = 6016,
  SpvCapabilityDotProductInputAllKHR = 6016,
  SpvCapabilityDotProductInput4x8Bit = 6017,
  SpvCapabilityDotProductInput4x8BitKHR = 6017,
  SpvCapabilityDotProductInput4x8BitPacked = 6018,
  SpvCapabilityDotProductInput4x8BitPackedKHR = 6018,
  SpvCapabilityDotProduct = 6019,
  SpvCapabilityDotProductKHR = 6019,
  SpvCapabilityRayCullMaskKHR = 6020,
  SpvCapabilityCooperativeMatrixKHR = 6022,
  SpvCapabilityBitInstructions = 6025,
  SpvCapabilityGroupNonUniformRotateKHR = 6026,
  SpvCapabilityAtomicFloat32AddEXT = 6033,
  SpvCapabilityAtomicFloat64AddEXT = 6034,
  SpvCapabilityLongConstantCompositeINTEL = 6089,
  SpvCapabilityOptNoneINTEL = 6094,
  SpvCapabilityAtomicFloat16AddEXT = 6095,
  SpvCapabilityDebugInfoModuleINTEL = 6114,
  SpvCapabilityBFloat16ConversionINTEL = 6115,
  SpvCapabilitySplitBarrierINTEL = 6141,
  SpvCapabilityFPGAKernelAttributesv2INTEL = 6161,
  SpvCapabilityFPGALatencyControlINTEL = 6171,
  SpvCapabilityFPGAArgumentInterfacesINTEL = 6174,
  SpvCapabilityGroupUniformArithmeticKHR = 6400,
  SpvCapabilityMax = 0x7fffffff,
} SpvCapability;

typedef enum SpvRayFlagsShift_ {
  SpvRayFlagsOpaqueKHRShift = 0,
  SpvRayFlagsNoOpaqueKHRShift = 1,
  SpvRayFlagsTerminateOnFirstHitKHRShift = 2,
  SpvRayFlagsSkipClosestHitShaderKHRShift = 3,
  SpvRayFlagsCullBackFacingTrianglesKHRShift = 4,
  SpvRayFlagsCullFrontFacingTrianglesKHRShift = 5,
  SpvRayFlagsCullOpaqueKHRShift = 6,
  SpvRayFlagsCullNoOpaqueKHRShift = 7,
  SpvRayFlagsSkipTrianglesKHRShift = 8,
  SpvRayFlagsSkipAABBsKHRShift = 9,
  SpvRayFlagsForceOpacityMicromap2StateEXTShift = 10,
  SpvRayFlagsMax = 0x7fffffff,
} SpvRayFlagsShift;

typedef enum SpvRayFlagsMask_ {
  SpvRayFlagsMaskNone = 0,
  SpvRayFlagsOpaqueKHRMask = 0x00000001,
  SpvRayFlagsNoOpaqueKHRMask = 0x00000002,
  SpvRayFlagsTerminateOnFirstHitKHRMask = 0x00000004,
  SpvRayFlagsSkipClosestHitShaderKHRMask = 0x00000008,
  SpvRayFlagsCullBackFacingTrianglesKHRMask = 0x00000010,
  SpvRayFlagsCullFrontFacingTrianglesKHRMask = 0x00000020,
  SpvRayFlagsCullOpaqueKHRMask = 0x00000040,
  SpvRayFlagsCullNoOpaqueKHRMask = 0x00000080,
  SpvRayFlagsSkipTrianglesKHRMask = 0x00000100,
  SpvRayFlagsSkipAABBsKHRMask = 0x00000200,
  SpvRayFlagsForceOpacityMicromap2StateEXTMask = 0x00000400,
} SpvRayFlagsMask;

typedef enum SpvRayQueryIntersection_ {
  SpvRayQueryIntersectionRayQueryCandidateIntersectionKHR = 0,
  SpvRayQueryIntersectionRayQueryCommittedIntersectionKHR = 1,
  SpvRayQueryIntersectionMax = 0x7fffffff,
} SpvRayQueryIntersection;

typedef enum SpvRayQueryCommittedIntersectionType_ {
  SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR = 0,
  SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR =
      1,
  SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR =
      2,
  SpvRayQueryCommittedIntersectionTypeMax = 0x7fffffff,
} SpvRayQueryCommittedIntersectionType;

typedef enum SpvRayQueryCandidateIntersectionType_ {
  SpvRayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR =
      0,
  SpvRayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR = 1,
  SpvRayQueryCandidateIntersectionTypeMax = 0x7fffffff,
} SpvRayQueryCandidateIntersectionType;

typedef enum SpvFragmentShadingRateShift_ {
  SpvFragmentShadingRateVertical2PixelsShift = 0,
  SpvFragmentShadingRateVertical4PixelsShift = 1,
  SpvFragmentShadingRateHorizontal2PixelsShift = 2,
  SpvFragmentShadingRateHorizontal4PixelsShift = 3,
  SpvFragmentShadingRateMax = 0x7fffffff,
} SpvFragmentShadingRateShift;

typedef enum SpvFragmentShadingRateMask_ {
  SpvFragmentShadingRateMaskNone = 0,
  SpvFragmentShadingRateVertical2PixelsMask = 0x00000001,
  SpvFragmentShadingRateVertical4PixelsMask = 0x00000002,
  SpvFragmentShadingRateHorizontal2PixelsMask = 0x00000004,
  SpvFragmentShadingRateHorizontal4PixelsMask = 0x00000008,
} SpvFragmentShadingRateMask;

typedef enum SpvFPDenormMode_ {
  SpvFPDenormModePreserve = 0,
  SpvFPDenormModeFlushToZero = 1,
  SpvFPDenormModeMax = 0x7fffffff,
} SpvFPDenormMode;

typedef enum SpvFPOperationMode_ {
  SpvFPOperationModeIEEE = 0,
  SpvFPOperationModeALT = 1,
  SpvFPOperationModeMax = 0x7fffffff,
} SpvFPOperationMode;

typedef enum SpvQuantizationModes_ {
  SpvQuantizationModesTRN = 0,
  SpvQuantizationModesTRN_ZERO = 1,
  SpvQuantizationModesRND = 2,
  SpvQuantizationModesRND_ZERO = 3,
  SpvQuantizationModesRND_INF = 4,
  SpvQuantizationModesRND_MIN_INF = 5,
  SpvQuantizationModesRND_CONV = 6,
  SpvQuantizationModesRND_CONV_ODD = 7,
  SpvQuantizationModesMax = 0x7fffffff,
} SpvQuantizationModes;

typedef enum SpvOverflowModes_ {
  SpvOverflowModesWRAP = 0,
  SpvOverflowModesSAT = 1,
  SpvOverflowModesSAT_ZERO = 2,
  SpvOverflowModesSAT_SYM = 3,
  SpvOverflowModesMax = 0x7fffffff,
} SpvOverflowModes;

typedef enum SpvPackedVectorFormat_ {
  SpvPackedVectorFormatPackedVectorFormat4x8Bit = 0,
  SpvPackedVectorFormatPackedVectorFormat4x8BitKHR = 0,
  SpvPackedVectorFormatMax = 0x7fffffff,
} SpvPackedVectorFormat;

typedef enum SpvCooperativeMatrixOperandsShift_ {
  SpvCooperativeMatrixOperandsMatrixASignedComponentsShift = 0,
  SpvCooperativeMatrixOperandsMatrixBSignedComponentsShift = 1,
  SpvCooperativeMatrixOperandsMatrixCSignedComponentsShift = 2,
  SpvCooperativeMatrixOperandsMatrixResultSignedComponentsShift = 3,
  SpvCooperativeMatrixOperandsSaturatingAccumulationShift = 4,
  SpvCooperativeMatrixOperandsMax = 0x7fffffff,
} SpvCooperativeMatrixOperandsShift;

typedef enum SpvCooperativeMatrixOperandsMask_ {
  SpvCooperativeMatrixOperandsMaskNone = 0,
  SpvCooperativeMatrixOperandsMatrixASignedComponentsMask = 0x00000001,
  SpvCooperativeMatrixOperandsMatrixBSignedComponentsMask = 0x00000002,
  SpvCooperativeMatrixOperandsMatrixCSignedComponentsMask = 0x00000004,
  SpvCooperativeMatrixOperandsMatrixResultSignedComponentsMask = 0x00000008,
  SpvCooperativeMatrixOperandsSaturatingAccumulationMask = 0x00000010,
} SpvCooperativeMatrixOperandsMask;

typedef enum SpvCooperativeMatrixLayout_ {
  SpvCooperativeMatrixLayoutRowMajorKHR = 0,
  SpvCooperativeMatrixLayoutColumnMajorKHR = 1,
  SpvCooperativeMatrixLayoutMax = 0x7fffffff,
} SpvCooperativeMatrixLayout;

typedef enum SpvCooperativeMatrixUse_ {
  SpvCooperativeMatrixUseMatrixAKHR = 0,
  SpvCooperativeMatrixUseMatrixBKHR = 1,
  SpvCooperativeMatrixUseMatrixAccumulatorKHR = 2,
  SpvCooperativeMatrixUseMax = 0x7fffffff,
} SpvCooperativeMatrixUse;

typedef enum SpvOp_ {
  SpvOpNop = 0,
  SpvOpUndef = 1,
  SpvOpSourceContinued = 2,
  SpvOpSource = 3,
  SpvOpSourceExtension = 4,
  SpvOpName = 5,
  SpvOpMemberName = 6,
  SpvOpString = 7,
  SpvOpLine = 8,
  SpvOpExtension = 10,
  SpvOpExtInstImport = 11,
  SpvOpExtInst = 12,
  SpvOpMemoryModel = 14,
  SpvOpEntryPoint = 15,
  SpvOpExecutionMode = 16,
  SpvOpCapability = 17,
  SpvOpTypeVoid = 19,
  SpvOpTypeBool = 20,
  SpvOpTypeInt = 21,
  SpvOpTypeFloat = 22,
  SpvOpTypeVector = 23,
  SpvOpTypeMatrix = 24,
  SpvOpTypeImage = 25,
  SpvOpTypeSampler = 26,
  SpvOpTypeSampledImage = 27,
  SpvOpTypeArray = 28,
  SpvOpTypeRuntimeArray = 29,
  SpvOpTypeStruct = 30,
  SpvOpTypeOpaque = 31,
  SpvOpTypePointer = 32,
  SpvOpTypeFunction = 33,
  SpvOpTypeEvent = 34,
  SpvOpTypeDeviceEvent = 35,
  SpvOpTypeReserveId = 36,
  SpvOpTypeQueue = 37,
  SpvOpTypePipe = 38,
  SpvOpTypeForwardPointer = 39,
  SpvOpConstantTrue = 41,
  SpvOpConstantFalse = 42,
  SpvOpConstant = 43,
  SpvOpConstantComposite = 44,
  SpvOpConstantSampler = 45,
  SpvOpConstantNull = 46,
  SpvOpSpecConstantTrue = 48,
  SpvOpSpecConstantFalse = 49,
  SpvOpSpecConstant = 50,
  SpvOpSpecConstantComposite = 51,
  SpvOpSpecConstantOp = 52,
  SpvOpFunction = 54,
  SpvOpFunctionParameter = 55,
  SpvOpFunctionEnd = 56,
  SpvOpFunctionCall = 57,
  SpvOpVariable = 59,
  SpvOpImageTexelPointer = 60,
  SpvOpLoad = 61,
  SpvOpStore = 62,
  SpvOpCopyMemory = 63,
  SpvOpCopyMemorySized = 64,
  SpvOpAccessChain = 65,
  SpvOpInBoundsAccessChain = 66,
  SpvOpPtrAccessChain = 67,
  SpvOpArrayLength = 68,
  SpvOpGenericPtrMemSemantics = 69,
  SpvOpInBoundsPtrAccessChain = 70,
  SpvOpDecorate = 71,
  SpvOpMemberDecorate = 72,
  SpvOpDecorationGroup = 73,
  SpvOpGroupDecorate = 74,
  SpvOpGroupMemberDecorate = 75,
  SpvOpVectorExtractDynamic = 77,
  SpvOpVectorInsertDynamic = 78,
  SpvOpVectorShuffle = 79,
  SpvOpCompositeConstruct = 80,
  SpvOpCompositeExtract = 81,
  SpvOpCompositeInsert = 82,
  SpvOpCopyObject = 83,
  SpvOpTranspose = 84,
  SpvOpSampledImage = 86,
  SpvOpImageSampleImplicitLod = 87,
  SpvOpImageSampleExplicitLod = 88,
  SpvOpImageSampleDrefImplicitLod = 89,
  SpvOpImageSampleDrefExplicitLod = 90,
  SpvOpImageSampleProjImplicitLod = 91,
  SpvOpImageSampleProjExplicitLod = 92,
  SpvOpImageSampleProjDrefImplicitLod = 93,
  SpvOpImageSampleProjDrefExplicitLod = 94,
  SpvOpImageFetch = 95,
  SpvOpImageGather = 96,
  SpvOpImageDrefGather = 97,
  SpvOpImageRead = 98,
  SpvOpImageWrite = 99,
  SpvOpImage = 100,
  SpvOpImageQueryFormat = 101,
  SpvOpImageQueryOrder = 102,
  SpvOpImageQuerySizeLod = 103,
  SpvOpImageQuerySize = 104,
  SpvOpImageQueryLod = 105,
  SpvOpImageQueryLevels = 106,
  SpvOpImageQuerySamples = 107,
  SpvOpConvertFToU = 109,
  SpvOpConvertFToS = 110,
  SpvOpConvertSToF = 111,
  SpvOpConvertUToF = 112,
  SpvOpUConvert = 113,
  SpvOpSConvert = 114,
  SpvOpFConvert = 115,
  SpvOpQuantizeToF16 = 116,
  SpvOpConvertPtrToU = 117,
  SpvOpSatConvertSToU = 118,
  SpvOpSatConvertUToS = 119,
  SpvOpConvertUToPtr = 120,
  SpvOpPtrCastToGeneric = 121,
  SpvOpGenericCastToPtr = 122,
  SpvOpGenericCastToPtrExplicit = 123,
  SpvOpBitcast = 124,
  SpvOpSNegate = 126,
  SpvOpFNegate = 127,
  SpvOpIAdd = 128,
  SpvOpFAdd = 129,
  SpvOpISub = 130,
  SpvOpFSub = 131,
  SpvOpIMul = 132,
  SpvOpFMul = 133,
  SpvOpUDiv = 134,
  SpvOpSDiv = 135,
  SpvOpFDiv = 136,
  SpvOpUMod = 137,
  SpvOpSRem = 138,
  SpvOpSMod = 139,
  SpvOpFRem = 140,
  SpvOpFMod = 141,
  SpvOpVectorTimesScalar = 142,
  SpvOpMatrixTimesScalar = 143,
  SpvOpVectorTimesMatrix = 144,
  SpvOpMatrixTimesVector = 145,
  SpvOpMatrixTimesMatrix = 146,
  SpvOpOuterProduct = 147,
  SpvOpDot = 148,
  SpvOpIAddCarry = 149,
  SpvOpISubBorrow = 150,
  SpvOpUMulExtended = 151,
  SpvOpSMulExtended = 152,
  SpvOpAny = 154,
  SpvOpAll = 155,
  SpvOpIsNan = 156,
  SpvOpIsInf = 157,
  SpvOpIsFinite = 158,
  SpvOpIsNormal = 159,
  SpvOpSignBitSet = 160,
  SpvOpLessOrGreater = 161,
  SpvOpOrdered = 162,
  SpvOpUnordered = 163,
  SpvOpLogicalEqual = 164,
  SpvOpLogicalNotEqual = 165,
  SpvOpLogicalOr = 166,
  SpvOpLogicalAnd = 167,
  SpvOpLogicalNot = 168,
  SpvOpSelect = 169,
  SpvOpIEqual = 170,
  SpvOpINotEqual = 171,
  SpvOpUGreaterThan = 172,
  SpvOpSGreaterThan = 173,
  SpvOpUGreaterThanEqual = 174,
  SpvOpSGreaterThanEqual = 175,
  SpvOpULessThan = 176,
  SpvOpSLessThan = 177,
  SpvOpULessThanEqual = 178,
  SpvOpSLessThanEqual = 179,
  SpvOpFOrdEqual = 180,
  SpvOpFUnordEqual = 181,
  SpvOpFOrdNotEqual = 182,
  SpvOpFUnordNotEqual = 183,
  SpvOpFOrdLessThan = 184,
  SpvOpFUnordLessThan = 185,
  SpvOpFOrdGreaterThan = 186,
  SpvOpFUnordGreaterThan = 187,
  SpvOpFOrdLessThanEqual = 188,
  SpvOpFUnordLessThanEqual = 189,
  SpvOpFOrdGreaterThanEqual = 190,
  SpvOpFUnordGreaterThanEqual = 191,
  SpvOpShiftRightLogical = 194,
  SpvOpShiftRightArithmetic = 195,
  SpvOpShiftLeftLogical = 196,
  SpvOpBitwiseOr = 197,
  SpvOpBitwiseXor = 198,
  SpvOpBitwiseAnd = 199,
  SpvOpNot = 200,
  SpvOpBitFieldInsert = 201,
  SpvOpBitFieldSExtract = 202,
  SpvOpBitFieldUExtract = 203,
  SpvOpBitReverse = 204,
  SpvOpBitCount = 205,
  SpvOpDPdx = 207,
  SpvOpDPdy = 208,
  SpvOpFwidth = 209,
  SpvOpDPdxFine = 210,
  SpvOpDPdyFine = 211,
  SpvOpFwidthFine = 212,
  SpvOpDPdxCoarse = 213,
  SpvOpDPdyCoarse = 214,
  SpvOpFwidthCoarse = 215,
  SpvOpEmitVertex = 218,
  SpvOpEndPrimitive = 219,
  SpvOpEmitStreamVertex = 220,
  SpvOpEndStreamPrimitive = 221,
  SpvOpControlBarrier = 224,
  SpvOpMemoryBarrier = 225,
  SpvOpAtomicLoad = 227,
  SpvOpAtomicStore = 228,
  SpvOpAtomicExchange = 229,
  SpvOpAtomicCompareExchange = 230,
  SpvOpAtomicCompareExchangeWeak = 231,
  SpvOpAtomicIIncrement = 232,
  SpvOpAtomicIDecrement = 233,
  SpvOpAtomicIAdd = 234,
  SpvOpAtomicISub = 235,
  SpvOpAtomicSMin = 236,
  SpvOpAtomicUMin = 237,
  SpvOpAtomicSMax = 238,
  SpvOpAtomicUMax = 239,
  SpvOpAtomicAnd = 240,
  SpvOpAtomicOr = 241,
  SpvOpAtomicXor = 242,
  SpvOpPhi = 245,
  SpvOpLoopMerge = 246,
  SpvOpSelectionMerge = 247,
  SpvOpLabel = 248,
  SpvOpBranch = 249,
  SpvOpBranchConditional = 250,
  SpvOpSwitch = 251,
  SpvOpKill = 252,
  SpvOpReturn = 253,
  SpvOpReturnValue = 254,
  SpvOpUnreachable = 255,
  SpvOpLifetimeStart = 256,
  SpvOpLifetimeStop = 257,
  SpvOpGroupAsyncCopy = 259,
  SpvOpGroupWaitEvents = 260,
  SpvOpGroupAll = 261,
  SpvOpGroupAny = 262,
  SpvOpGroupBroadcast = 263,
  SpvOpGroupIAdd = 264,
  SpvOpGroupFAdd = 265,
  SpvOpGroupFMin = 266,
  SpvOpGroupUMin = 267,
  SpvOpGroupSMin = 268,
  SpvOpGroupFMax = 269,
  SpvOpGroupUMax = 270,
  SpvOpGroupSMax = 271,
  SpvOpReadPipe = 274,
  SpvOpWritePipe = 275,
  SpvOpReservedReadPipe = 276,
  SpvOpReservedWritePipe = 277,
  SpvOpReserveReadPipePackets = 278,
  SpvOpReserveWritePipePackets = 279,
  SpvOpCommitReadPipe = 280,
  SpvOpCommitWritePipe = 281,
  SpvOpIsValidReserveId = 282,
  SpvOpGetNumPipePackets = 283,
  SpvOpGetMaxPipePackets = 284,
  SpvOpGroupReserveReadPipePackets = 285,
  SpvOpGroupReserveWritePipePackets = 286,
  SpvOpGroupCommitReadPipe = 287,
  SpvOpGroupCommitWritePipe = 288,
  SpvOpEnqueueMarker = 291,
  SpvOpEnqueueKernel = 292,
  SpvOpGetKernelNDrangeSubGroupCount = 293,
  SpvOpGetKernelNDrangeMaxSubGroupSize = 294,
  SpvOpGetKernelWorkGroupSize = 295,
  SpvOpGetKernelPreferredWorkGroupSizeMultiple = 296,
  SpvOpRetainEvent = 297,
  SpvOpReleaseEvent = 298,
  SpvOpCreateUserEvent = 299,
  SpvOpIsValidEvent = 300,
  SpvOpSetUserEventStatus = 301,
  SpvOpCaptureEventProfilingInfo = 302,
  SpvOpGetDefaultQueue = 303,
  SpvOpBuildNDRange = 304,
  SpvOpImageSparseSampleImplicitLod = 305,
  SpvOpImageSparseSampleExplicitLod = 306,
  SpvOpImageSparseSampleDrefImplicitLod = 307,
  SpvOpImageSparseSampleDrefExplicitLod = 308,
  SpvOpImageSparseSampleProjImplicitLod = 309,
  SpvOpImageSparseSampleProjExplicitLod = 310,
  SpvOpImageSparseSampleProjDrefImplicitLod = 311,
  SpvOpImageSparseSampleProjDrefExplicitLod = 312,
  SpvOpImageSparseFetch = 313,
  SpvOpImageSparseGather = 314,
  SpvOpImageSparseDrefGather = 315,
  SpvOpImageSparseTexelsResident = 316,
  SpvOpNoLine = 317,
  SpvOpAtomicFlagTestAndSet = 318,
  SpvOpAtomicFlagClear = 319,
  SpvOpImageSparseRead = 320,
  SpvOpSizeOf = 321,
  SpvOpTypePipeStorage = 322,
  SpvOpConstantPipeStorage = 323,
  SpvOpCreatePipeFromPipeStorage = 324,
  SpvOpGetKernelLocalSizeForSubgroupCount = 325,
  SpvOpGetKernelMaxNumSubgroups = 326,
  SpvOpTypeNamedBarrier = 327,
  SpvOpNamedBarrierInitialize = 328,
  SpvOpMemoryNamedBarrier = 329,
  SpvOpModuleProcessed = 330,
  SpvOpExecutionModeId = 331,
  SpvOpDecorateId = 332,
  SpvOpGroupNonUniformElect = 333,
  SpvOpGroupNonUniformAll = 334,
  SpvOpGroupNonUniformAny = 335,
  SpvOpGroupNonUniformAllEqual = 336,
  SpvOpGroupNonUniformBroadcast = 337,
  SpvOpGroupNonUniformBroadcastFirst = 338,
  SpvOpGroupNonUniformBallot = 339,
  SpvOpGroupNonUniformInverseBallot = 340,
  SpvOpGroupNonUniformBallotBitExtract = 341,
  SpvOpGroupNonUniformBallotBitCount = 342,
  SpvOpGroupNonUniformBallotFindLSB = 343,
  SpvOpGroupNonUniformBallotFindMSB = 344,
  SpvOpGroupNonUniformShuffle = 345,
  SpvOpGroupNonUniformShuffleXor = 346,
  SpvOpGroupNonUniformShuffleUp = 347,
  SpvOpGroupNonUniformShuffleDown = 348,
  SpvOpGroupNonUniformIAdd = 349,
  SpvOpGroupNonUniformFAdd = 350,
  SpvOpGroupNonUniformIMul = 351,
  SpvOpGroupNonUniformFMul = 352,
  SpvOpGroupNonUniformSMin = 353,
  SpvOpGroupNonUniformUMin = 354,
  SpvOpGroupNonUniformFMin = 355,
  SpvOpGroupNonUniformSMax = 356,
  SpvOpGroupNonUniformUMax = 357,
  SpvOpGroupNonUniformFMax = 358,
  SpvOpGroupNonUniformBitwiseAnd = 359,
  SpvOpGroupNonUniformBitwiseOr = 360,
  SpvOpGroupNonUniformBitwiseXor = 361,
  SpvOpGroupNonUniformLogicalAnd = 362,
  SpvOpGroupNonUniformLogicalOr = 363,
  SpvOpGroupNonUniformLogicalXor = 364,
  SpvOpGroupNonUniformQuadBroadcast = 365,
  SpvOpGroupNonUniformQuadSwap = 366,
  SpvOpCopyLogical = 400,
  SpvOpPtrEqual = 401,
  SpvOpPtrNotEqual = 402,
  SpvOpPtrDiff = 403,
  SpvOpColorAttachmentReadEXT = 4160,
  SpvOpDepthAttachmentReadEXT = 4161,
  SpvOpStencilAttachmentReadEXT = 4162,
  SpvOpTerminateInvocation = 4416,
  SpvOpSubgroupBallotKHR = 4421,
  SpvOpSubgroupFirstInvocationKHR = 4422,
  SpvOpSubgroupAllKHR = 4428,
  SpvOpSubgroupAnyKHR = 4429,
  SpvOpSubgroupAllEqualKHR = 4430,
  SpvOpGroupNonUniformRotateKHR = 4431,
  SpvOpSubgroupReadInvocationKHR = 4432,
  SpvOpTraceRayKHR = 4445,
  SpvOpExecuteCallableKHR = 4446,
  SpvOpConvertUToAccelerationStructureKHR = 4447,
  SpvOpIgnoreIntersectionKHR = 4448,
  SpvOpTerminateRayKHR = 4449,
  SpvOpSDot = 4450,
  SpvOpSDotKHR = 4450,
  SpvOpUDot = 4451,
  SpvOpUDotKHR = 4451,
  SpvOpSUDot = 4452,
  SpvOpSUDotKHR = 4452,
  SpvOpSDotAccSat = 4453,
  SpvOpSDotAccSatKHR = 4453,
  SpvOpUDotAccSat = 4454,
  SpvOpUDotAccSatKHR = 4454,
  SpvOpSUDotAccSat = 4455,
  SpvOpSUDotAccSatKHR = 4455,
  SpvOpTypeCooperativeMatrixKHR = 4456,
  SpvOpCooperativeMatrixLoadKHR = 4457,
  SpvOpCooperativeMatrixStoreKHR = 4458,
  SpvOpCooperativeMatrixMulAddKHR = 4459,
  SpvOpCooperativeMatrixLengthKHR = 4460,
  SpvOpTypeRayQueryKHR = 4472,
  SpvOpRayQueryInitializeKHR = 4473,
  SpvOpRayQueryTerminateKHR = 4474,
  SpvOpRayQueryGenerateIntersectionKHR = 4475,
  SpvOpRayQueryConfirmIntersectionKHR = 4476,
  SpvOpRayQueryProceedKHR = 4477,
  SpvOpRayQueryGetIntersectionTypeKHR = 4479,
  SpvOpImageSampleWeightedQCOM = 4480,
  SpvOpImageBoxFilterQCOM = 4481,
  SpvOpImageBlockMatchSSDQCOM = 4482,
  SpvOpImageBlockMatchSADQCOM = 4483,
  SpvOpGroupIAddNonUniformAMD = 5000,
  SpvOpGroupFAddNonUniformAMD = 5001,
  SpvOpGroupFMinNonUniformAMD = 5002,
  SpvOpGroupUMinNonUniformAMD = 5003,
  SpvOpGroupSMinNonUniformAMD = 5004,
  SpvOpGroupFMaxNonUniformAMD = 5005,
  SpvOpGroupUMaxNonUniformAMD = 5006,
  SpvOpGroupSMaxNonUniformAMD = 5007,
  SpvOpFragmentMaskFetchAMD = 5011,
  SpvOpFragmentFetchAMD = 5012,
  SpvOpReadClockKHR = 5056,
  SpvOpHitObjectRecordHitMotionNV = 5249,
  SpvOpHitObjectRecordHitWithIndexMotionNV = 5250,
  SpvOpHitObjectRecordMissMotionNV = 5251,
  SpvOpHitObjectGetWorldToObjectNV = 5252,
  SpvOpHitObjectGetObjectToWorldNV = 5253,
  SpvOpHitObjectGetObjectRayDirectionNV = 5254,
  SpvOpHitObjectGetObjectRayOriginNV = 5255,
  SpvOpHitObjectTraceRayMotionNV = 5256,
  SpvOpHitObjectGetShaderRecordBufferHandleNV = 5257,
  SpvOpHitObjectGetShaderBindingTableRecordIndexNV = 5258,
  SpvOpHitObjectRecordEmptyNV = 5259,
  SpvOpHitObjectTraceRayNV = 5260,
  SpvOpHitObjectRecordHitNV = 5261,
  SpvOpHitObjectRecordHitWithIndexNV = 5262,
  SpvOpHitObjectRecordMissNV = 5263,
  SpvOpHitObjectExecuteShaderNV = 5264,
  SpvOpHitObjectGetCurrentTimeNV = 5265,
  SpvOpHitObjectGetAttributesNV = 5266,
  SpvOpHitObjectGetHitKindNV = 5267,
  SpvOpHitObjectGetPrimitiveIndexNV = 5268,
  SpvOpHitObjectGetGeometryIndexNV = 5269,
  SpvOpHitObjectGetInstanceIdNV = 5270,
  SpvOpHitObjectGetInstanceCustomIndexNV = 5271,
  SpvOpHitObjectGetWorldRayDirectionNV = 5272,
  SpvOpHitObjectGetWorldRayOriginNV = 5273,
  SpvOpHitObjectGetRayTMaxNV = 5274,
  SpvOpHitObjectGetRayTMinNV = 5275,
  SpvOpHitObjectIsEmptyNV = 5276,
  SpvOpHitObjectIsHitNV = 5277,
  SpvOpHitObjectIsMissNV = 5278,
  SpvOpReorderThreadWithHitObjectNV = 5279,
  SpvOpReorderThreadWithHintNV = 5280,
  SpvOpTypeHitObjectNV = 5281,
  SpvOpImageSampleFootprintNV = 5283,
  SpvOpEmitMeshTasksEXT = 5294,
  SpvOpSetMeshOutputsEXT = 5295,
  SpvOpGroupNonUniformPartitionNV = 5296,
  SpvOpWritePackedPrimitiveIndices4x8NV = 5299,
  SpvOpReportIntersectionKHR = 5334,
  SpvOpReportIntersectionNV = 5334,
  SpvOpIgnoreIntersectionNV = 5335,
  SpvOpTerminateRayNV = 5336,
  SpvOpTraceNV = 5337,
  SpvOpTraceMotionNV = 5338,
  SpvOpTraceRayMotionNV = 5339,
  SpvOpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
  SpvOpTypeAccelerationStructureKHR = 5341,
  SpvOpTypeAccelerationStructureNV = 5341,
  SpvOpExecuteCallableNV = 5344,
  SpvOpTypeCooperativeMatrixNV = 5358,
  SpvOpCooperativeMatrixLoadNV = 5359,
  SpvOpCooperativeMatrixStoreNV = 5360,
  SpvOpCooperativeMatrixMulAddNV = 5361,
  SpvOpCooperativeMatrixLengthNV = 5362,
  SpvOpBeginInvocationInterlockEXT = 5364,
  SpvOpEndInvocationInterlockEXT = 5365,
  SpvOpDemoteToHelperInvocation = 5380,
  SpvOpDemoteToHelperInvocationEXT = 5380,
  SpvOpIsHelperInvocationEXT = 5381,
  SpvOpConvertUToImageNV = 5391,
  SpvOpConvertUToSamplerNV = 5392,
  SpvOpConvertImageToUNV = 5393,
  SpvOpConvertSamplerToUNV = 5394,
  SpvOpConvertUToSampledImageNV = 5395,
  SpvOpConvertSampledImageToUNV = 5396,
  SpvOpSamplerImageAddressingModeNV = 5397,
  SpvOpSubgroupShuffleINTEL = 5571,
  SpvOpSubgroupShuffleDownINTEL = 5572,
  SpvOpSubgroupShuffleUpINTEL = 5573,
  SpvOpSubgroupShuffleXorINTEL = 5574,
  SpvOpSubgroupBlockReadINTEL = 5575,
  SpvOpSubgroupBlockWriteINTEL = 5576,
  SpvOpSubgroupImageBlockReadINTEL = 5577,
  SpvOpSubgroupImageBlockWriteINTEL = 5578,
  SpvOpSubgroupImageMediaBlockReadINTEL = 5580,
  SpvOpSubgroupImageMediaBlockWriteINTEL = 5581,
  SpvOpUCountLeadingZerosINTEL = 5585,
  SpvOpUCountTrailingZerosINTEL = 5586,
  SpvOpAbsISubINTEL = 5587,
  SpvOpAbsUSubINTEL = 5588,
  SpvOpIAddSatINTEL = 5589,
  SpvOpUAddSatINTEL = 5590,
  SpvOpIAverageINTEL = 5591,
  SpvOpUAverageINTEL = 5592,
  SpvOpIAverageRoundedINTEL = 5593,
  SpvOpUAverageRoundedINTEL = 5594,
  SpvOpISubSatINTEL = 5595,
  SpvOpUSubSatINTEL = 5596,
  SpvOpIMul32x16INTEL = 5597,
  SpvOpUMul32x16INTEL = 5598,
  SpvOpConstantFunctionPointerINTEL = 5600,
  SpvOpFunctionPointerCallINTEL = 5601,
  SpvOpAsmTargetINTEL = 5609,
  SpvOpAsmINTEL = 5610,
  SpvOpAsmCallINTEL = 5611,
  SpvOpAtomicFMinEXT = 5614,
  SpvOpAtomicFMaxEXT = 5615,
  SpvOpAssumeTrueKHR = 5630,
  SpvOpExpectKHR = 5631,
  SpvOpDecorateString = 5632,
  SpvOpDecorateStringGOOGLE = 5632,
  SpvOpMemberDecorateString = 5633,
  SpvOpMemberDecorateStringGOOGLE = 5633,
  SpvOpVmeImageINTEL = 5699,
  SpvOpTypeVmeImageINTEL = 5700,
  SpvOpTypeAvcImePayloadINTEL = 5701,
  SpvOpTypeAvcRefPayloadINTEL = 5702,
  SpvOpTypeAvcSicPayloadINTEL = 5703,
  SpvOpTypeAvcMcePayloadINTEL = 5704,
  SpvOpTypeAvcMceResultINTEL = 5705,
  SpvOpTypeAvcImeResultINTEL = 5706,
  SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707,
  SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708,
  SpvOpTypeAvcImeSingleReferenceStreaminINTEL = 5709,
  SpvOpTypeAvcImeDualReferenceStreaminINTEL = 5710,
  SpvOpTypeAvcRefResultINTEL = 5711,
  SpvOpTypeAvcSicResultINTEL = 5712,
  SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713,
  SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714,
  SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715,
  SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716,
  SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717,
  SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718,
  SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719,
  SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720,
  SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721,
  SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722,
  SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723,
  SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724,
  SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725,
  SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726,
  SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727,
  SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728,
  SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729,
  SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730,
  SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731,
  SpvOpSubgroupAvcMceConvertToImePayloadINTEL = 5732,
  SpvOpSubgroupAvcMceConvertToImeResultINTEL = 5733,
  SpvOpSubgroupAvcMceConvertToRefPayloadINTEL = 5734,
  SpvOpSubgroupAvcMceConvertToRefResultINTEL = 5735,
  SpvOpSubgroupAvcMceConvertToSicPayloadINTEL = 5736,
  SpvOpSubgroupAvcMceConvertToSicResultINTEL = 5737,
  SpvOpSubgroupAvcMceGetMotionVectorsINTEL = 5738,
  SpvOpSubgroupAvcMceGetInterDistortionsINTEL = 5739,
  SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740,
  SpvOpSubgroupAvcMceGetInterMajorShapeINTEL = 5741,
  SpvOpSubgroupAvcMceGetInterMinorShapeINTEL = 5742,
  SpvOpSubgroupAvcMceGetInterDirectionsINTEL = 5743,
  SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744,
  SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745,
  SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746,
  SpvOpSubgroupAvcImeInitializeINTEL = 5747,
  SpvOpSubgroupAvcImeSetSingleReferenceINTEL = 5748,
  SpvOpSubgroupAvcImeSetDualReferenceINTEL = 5749,
  SpvOpSubgroupAvcImeRefWindowSizeINTEL = 5750,
  SpvOpSubgroupAvcImeAdjustRefOffsetINTEL = 5751,
  SpvOpSubgroupAvcImeConvertToMcePayloadINTEL = 5752,
  SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753,
  SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754,
  SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755,
  SpvOpSubgroupAvcImeSetWeightedSadINTEL = 5756,
  SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757,
  SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758,
  SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759,
  SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760,
  SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761,
  SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762,
  SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763,
  SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764,
  SpvOpSubgroupAvcImeConvertToMceResultINTEL = 5765,
  SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766,
  SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767,
  SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768,
  SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769,
  SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL =
      5770,
  SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL =
      5771,
  SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL =
      5772,
  SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL =
      5773,
  SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774,
  SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL =
      5775,
  SpvOpSubgroupAvcImeGetBorderReachedINTEL = 5776,
  SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777,
  SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778,
  SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779,
  SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780,
  SpvOpSubgroupAvcFmeInitializeINTEL = 5781,
  SpvOpSubgroupAvcBmeInitializeINTEL = 5782,
  SpvOpSubgroupAvcRefConvertToMcePayloadINTEL = 5783,
  SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784,
  SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785,
  SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786,
  SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787,
  SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788,
  SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789,
  SpvOpSubgroupAvcRefConvertToMceResultINTEL = 5790,
  SpvOpSubgroupAvcSicInitializeINTEL = 5791,
  SpvOpSubgroupAvcSicConfigureSkcINTEL = 5792,
  SpvOpSubgroupAvcSicConfigureIpeLumaINTEL = 5793,
  SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794,
  SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795,
  SpvOpSubgroupAvcSicConvertToMcePayloadINTEL = 5796,
  SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797,
  SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798,
  SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799,
  SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800,
  SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801,
  SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802,
  SpvOpSubgroupAvcSicEvaluateIpeINTEL = 5803,
  SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804,
  SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805,
  SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806,
  SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807,
  SpvOpSubgroupAvcSicConvertToMceResultINTEL = 5808,
  SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809,
  SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810,
  SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811,
  SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812,
  SpvOpSubgroupAvcSicGetIpeChromaModeINTEL = 5813,
  SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
  SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
  SpvOpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
  SpvOpVariableLengthArrayINTEL = 5818,
  SpvOpSaveMemoryINTEL = 5819,
  SpvOpRestoreMemoryINTEL = 5820,
  SpvOpArbitraryFloatSinCosPiINTEL = 5840,
  SpvOpArbitraryFloatCastINTEL = 5841,
  SpvOpArbitraryFloatCastFromIntINTEL = 5842,
  SpvOpArbitraryFloatCastToIntINTEL = 5843,
  SpvOpArbitraryFloatAddINTEL = 5846,
  SpvOpArbitraryFloatSubINTEL = 5847,
  SpvOpArbitraryFloatMulINTEL = 5848,
  SpvOpArbitraryFloatDivINTEL = 5849,
  SpvOpArbitraryFloatGTINTEL = 5850,
  SpvOpArbitraryFloatGEINTEL = 5851,
  SpvOpArbitraryFloatLTINTEL = 5852,
  SpvOpArbitraryFloatLEINTEL = 5853,
  SpvOpArbitraryFloatEQINTEL = 5854,
  SpvOpArbitraryFloatRecipINTEL = 5855,
  SpvOpArbitraryFloatRSqrtINTEL = 5856,
  SpvOpArbitraryFloatCbrtINTEL = 5857,
  SpvOpArbitraryFloatHypotINTEL = 5858,
  SpvOpArbitraryFloatSqrtINTEL = 5859,
  SpvOpArbitraryFloatLogINTEL = 5860,
  SpvOpArbitraryFloatLog2INTEL = 5861,
  SpvOpArbitraryFloatLog10INTEL = 5862,
  SpvOpArbitraryFloatLog1pINTEL = 5863,
  SpvOpArbitraryFloatExpINTEL = 5864,
  SpvOpArbitraryFloatExp2INTEL = 5865,
  SpvOpArbitraryFloatExp10INTEL = 5866,
  SpvOpArbitraryFloatExpm1INTEL = 5867,
  SpvOpArbitraryFloatSinINTEL = 5868,
  SpvOpArbitraryFloatCosINTEL = 5869,
  SpvOpArbitraryFloatSinCosINTEL = 5870,
  SpvOpArbitraryFloatSinPiINTEL = 5871,
  SpvOpArbitraryFloatCosPiINTEL = 5872,
  SpvOpArbitraryFloatASinINTEL = 5873,
  SpvOpArbitraryFloatASinPiINTEL = 5874,
  SpvOpArbitraryFloatACosINTEL = 5875,
  SpvOpArbitraryFloatACosPiINTEL = 5876,
  SpvOpArbitraryFloatATanINTEL = 5877,
  SpvOpArbitraryFloatATanPiINTEL = 5878,
  SpvOpArbitraryFloatATan2INTEL = 5879,
  SpvOpArbitraryFloatPowINTEL = 5880,
  SpvOpArbitraryFloatPowRINTEL = 5881,
  SpvOpArbitraryFloatPowNINTEL = 5882,
  SpvOpLoopControlINTEL = 5887,
  SpvOpAliasDomainDeclINTEL = 5911,
  SpvOpAliasScopeDeclINTEL = 5912,
  SpvOpAliasScopeListDeclINTEL = 5913,
  SpvOpFixedSqrtINTEL = 5923,
  SpvOpFixedRecipINTEL = 5924,
  SpvOpFixedRsqrtINTEL = 5925,
  SpvOpFixedSinINTEL = 5926,
  SpvOpFixedCosINTEL = 5927,
  SpvOpFixedSinCosINTEL = 5928,
  SpvOpFixedSinPiINTEL = 5929,
  SpvOpFixedCosPiINTEL = 5930,
  SpvOpFixedSinCosPiINTEL = 5931,
  SpvOpFixedLogINTEL = 5932,
  SpvOpFixedExpINTEL = 5933,
  SpvOpPtrCastToCrossWorkgroupINTEL = 5934,
  SpvOpCrossWorkgroupCastToPtrINTEL = 5938,
  SpvOpReadPipeBlockingINTEL = 5946,
  SpvOpWritePipeBlockingINTEL = 5947,
  SpvOpFPGARegINTEL = 5949,
  SpvOpRayQueryGetRayTMinKHR = 6016,
  SpvOpRayQueryGetRayFlagsKHR = 6017,
  SpvOpRayQueryGetIntersectionTKHR = 6018,
  SpvOpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019,
  SpvOpRayQueryGetIntersectionInstanceIdKHR = 6020,
  SpvOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021,
  SpvOpRayQueryGetIntersectionGeometryIndexKHR = 6022,
  SpvOpRayQueryGetIntersectionPrimitiveIndexKHR = 6023,
  SpvOpRayQueryGetIntersectionBarycentricsKHR = 6024,
  SpvOpRayQueryGetIntersectionFrontFaceKHR = 6025,
  SpvOpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026,
  SpvOpRayQueryGetIntersectionObjectRayDirectionKHR = 6027,
  SpvOpRayQueryGetIntersectionObjectRayOriginKHR = 6028,
  SpvOpRayQueryGetWorldRayDirectionKHR = 6029,
  SpvOpRayQueryGetWorldRayOriginKHR = 6030,
  SpvOpRayQueryGetIntersectionObjectToWorldKHR = 6031,
  SpvOpRayQueryGetIntersectionWorldToObjectKHR = 6032,
  SpvOpAtomicFAddEXT = 6035,
  SpvOpTypeBufferSurfaceINTEL = 6086,
  SpvOpTypeStructContinuedINTEL = 6090,
  SpvOpConstantCompositeContinuedINTEL = 6091,
  SpvOpSpecConstantCompositeContinuedINTEL = 6092,
  SpvOpConvertFToBF16INTEL = 6116,
  SpvOpConvertBF16ToFINTEL = 6117,
  SpvOpControlBarrierArriveINTEL = 6142,
  SpvOpControlBarrierWaitINTEL = 6143,
  SpvOpGroupIMulKHR = 6401,
  SpvOpGroupFMulKHR = 6402,
  SpvOpGroupBitwiseAndKHR = 6403,
  SpvOpGroupBitwiseOrKHR = 6404,
  SpvOpGroupBitwiseXorKHR = 6405,
  SpvOpGroupLogicalAndKHR = 6406,
  SpvOpGroupLogicalOrKHR = 6407,
  SpvOpGroupLogicalXorKHR = 6408,
  SpvOpMax = 0x7fffffff,
} SpvOp;

#ifdef SPV_ENABLE_UTILITY_CODE
#ifndef __cplusplus
#include <stdbool.h>
#endif
inline void SpvHasResultAndType(SpvOp opcode, bool* hasResult,
                                bool* hasResultType) {
  *hasResult = *hasResultType = false;
  switch (opcode) {
    default: /* unknown opcode */
      break;
    case SpvOpNop:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpUndef:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSourceContinued:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSource:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSourceExtension:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpName:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpMemberName:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpString:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpLine:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpExtension:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpExtInstImport:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpExtInst:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpMemoryModel:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpEntryPoint:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpExecutionMode:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpCapability:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpTypeVoid:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeBool:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeInt:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeFloat:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeVector:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeMatrix:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeImage:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeSampler:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeSampledImage:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeArray:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeRuntimeArray:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeStruct:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeOpaque:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypePointer:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeFunction:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeEvent:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeDeviceEvent:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeReserveId:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeQueue:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypePipe:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeForwardPointer:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpConstantTrue:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConstantFalse:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConstant:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConstantComposite:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConstantSampler:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConstantNull:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSpecConstantTrue:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSpecConstantFalse:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSpecConstant:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSpecConstantComposite:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSpecConstantOp:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFunction:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFunctionParameter:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFunctionEnd:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpFunctionCall:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpVariable:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageTexelPointer:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpLoad:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpStore:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpCopyMemory:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpCopyMemorySized:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpAccessChain:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpInBoundsAccessChain:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpPtrAccessChain:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArrayLength:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGenericPtrMemSemantics:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpInBoundsPtrAccessChain:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpDecorate:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpMemberDecorate:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpDecorationGroup:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpGroupDecorate:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpGroupMemberDecorate:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpVectorExtractDynamic:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpVectorInsertDynamic:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpVectorShuffle:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCompositeConstruct:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCompositeExtract:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCompositeInsert:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCopyObject:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTranspose:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSampledImage:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSampleImplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSampleExplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSampleDrefImplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSampleDrefExplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSampleProjImplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSampleProjExplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSampleProjDrefImplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSampleProjDrefExplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageFetch:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageGather:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageDrefGather:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageRead:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageWrite:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpImage:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageQueryFormat:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageQueryOrder:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageQuerySizeLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageQuerySize:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageQueryLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageQueryLevels:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageQuerySamples:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertFToU:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertFToS:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertSToF:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertUToF:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUConvert:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSConvert:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFConvert:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpQuantizeToF16:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertPtrToU:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSatConvertSToU:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSatConvertUToS:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertUToPtr:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpPtrCastToGeneric:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGenericCastToPtr:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGenericCastToPtrExplicit:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpBitcast:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSNegate:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFNegate:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIAdd:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFAdd:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpISub:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFSub:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIMul:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFMul:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUDiv:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSDiv:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFDiv:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUMod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSRem:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSMod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFRem:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFMod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpVectorTimesScalar:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpMatrixTimesScalar:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpVectorTimesMatrix:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpMatrixTimesVector:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpMatrixTimesMatrix:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpOuterProduct:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpDot:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIAddCarry:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpISubBorrow:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUMulExtended:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSMulExtended:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAny:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAll:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIsNan:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIsInf:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIsFinite:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIsNormal:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSignBitSet:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpLessOrGreater:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpOrdered:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUnordered:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpLogicalEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpLogicalNotEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpLogicalOr:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpLogicalAnd:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpLogicalNot:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSelect:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpINotEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUGreaterThan:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSGreaterThan:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUGreaterThanEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSGreaterThanEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpULessThan:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSLessThan:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpULessThanEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSLessThanEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFOrdEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFUnordEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFOrdNotEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFUnordNotEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFOrdLessThan:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFUnordLessThan:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFOrdGreaterThan:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFUnordGreaterThan:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFOrdLessThanEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFUnordLessThanEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFOrdGreaterThanEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFUnordGreaterThanEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpShiftRightLogical:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpShiftRightArithmetic:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpShiftLeftLogical:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpBitwiseOr:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpBitwiseXor:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpBitwiseAnd:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpNot:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpBitFieldInsert:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpBitFieldSExtract:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpBitFieldUExtract:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpBitReverse:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpBitCount:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpDPdx:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpDPdy:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFwidth:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpDPdxFine:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpDPdyFine:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFwidthFine:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpDPdxCoarse:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpDPdyCoarse:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFwidthCoarse:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpEmitVertex:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpEndPrimitive:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpEmitStreamVertex:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpEndStreamPrimitive:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpControlBarrier:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpMemoryBarrier:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpAtomicLoad:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicStore:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpAtomicExchange:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicCompareExchange:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicCompareExchangeWeak:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicIIncrement:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicIDecrement:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicIAdd:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicISub:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicSMin:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicUMin:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicSMax:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicUMax:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicAnd:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicOr:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicXor:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpPhi:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpLoopMerge:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSelectionMerge:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpLabel:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpBranch:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpBranchConditional:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSwitch:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpKill:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpReturn:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpReturnValue:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpUnreachable:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpLifetimeStart:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpLifetimeStop:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpGroupAsyncCopy:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupWaitEvents:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpGroupAll:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupAny:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupBroadcast:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupIAdd:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupFAdd:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupFMin:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupUMin:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupSMin:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupFMax:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupUMax:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupSMax:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpReadPipe:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpWritePipe:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpReservedReadPipe:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpReservedWritePipe:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpReserveReadPipePackets:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpReserveWritePipePackets:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCommitReadPipe:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpCommitWritePipe:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpIsValidReserveId:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGetNumPipePackets:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGetMaxPipePackets:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupReserveReadPipePackets:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupReserveWritePipePackets:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupCommitReadPipe:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpGroupCommitWritePipe:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpEnqueueMarker:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpEnqueueKernel:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGetKernelNDrangeSubGroupCount:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGetKernelNDrangeMaxSubGroupSize:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGetKernelWorkGroupSize:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGetKernelPreferredWorkGroupSizeMultiple:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRetainEvent:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpReleaseEvent:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpCreateUserEvent:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIsValidEvent:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSetUserEventStatus:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpCaptureEventProfilingInfo:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpGetDefaultQueue:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpBuildNDRange:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSparseSampleImplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSparseSampleExplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSparseSampleDrefImplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSparseSampleDrefExplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSparseSampleProjImplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSparseSampleProjExplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSparseSampleProjDrefImplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSparseSampleProjDrefExplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSparseFetch:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSparseGather:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSparseDrefGather:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSparseTexelsResident:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpNoLine:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpAtomicFlagTestAndSet:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicFlagClear:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpImageSparseRead:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSizeOf:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTypePipeStorage:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpConstantPipeStorage:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCreatePipeFromPipeStorage:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGetKernelLocalSizeForSubgroupCount:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGetKernelMaxNumSubgroups:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTypeNamedBarrier:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpNamedBarrierInitialize:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpMemoryNamedBarrier:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpModuleProcessed:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpExecutionModeId:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpDecorateId:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpGroupNonUniformElect:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformAll:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformAny:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformAllEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformBroadcast:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformBroadcastFirst:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformBallot:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformInverseBallot:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformBallotBitExtract:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformBallotBitCount:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformBallotFindLSB:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformBallotFindMSB:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformShuffle:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformShuffleXor:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformShuffleUp:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformShuffleDown:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformIAdd:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformFAdd:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformIMul:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformFMul:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformSMin:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformUMin:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformFMin:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformSMax:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformUMax:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformFMax:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformBitwiseAnd:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformBitwiseOr:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformBitwiseXor:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformLogicalAnd:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformLogicalOr:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformLogicalXor:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformQuadBroadcast:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformQuadSwap:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCopyLogical:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpPtrEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpPtrNotEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpPtrDiff:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpColorAttachmentReadEXT:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpDepthAttachmentReadEXT:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpStencilAttachmentReadEXT:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTerminateInvocation:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSubgroupBallotKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupFirstInvocationKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAllKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAnyKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAllEqualKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformRotateKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupReadInvocationKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTraceRayKHR:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpExecuteCallableKHR:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpConvertUToAccelerationStructureKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIgnoreIntersectionKHR:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpTerminateRayKHR:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSDot:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUDot:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSUDot:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSDotAccSat:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUDotAccSat:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSUDotAccSat:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTypeCooperativeMatrixKHR:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpCooperativeMatrixLoadKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCooperativeMatrixStoreKHR:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpCooperativeMatrixMulAddKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCooperativeMatrixLengthKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTypeRayQueryKHR:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpRayQueryInitializeKHR:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpRayQueryTerminateKHR:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpRayQueryGenerateIntersectionKHR:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpRayQueryConfirmIntersectionKHR:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpRayQueryProceedKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionTypeKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSampleWeightedQCOM:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageBoxFilterQCOM:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageBlockMatchSSDQCOM:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageBlockMatchSADQCOM:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupIAddNonUniformAMD:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupFAddNonUniformAMD:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupFMinNonUniformAMD:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupUMinNonUniformAMD:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupSMinNonUniformAMD:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupFMaxNonUniformAMD:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupUMaxNonUniformAMD:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupSMaxNonUniformAMD:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFragmentMaskFetchAMD:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFragmentFetchAMD:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpReadClockKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectRecordHitMotionNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpHitObjectRecordHitWithIndexMotionNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpHitObjectRecordMissMotionNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpHitObjectGetWorldToObjectNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetObjectToWorldNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetObjectRayDirectionNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetObjectRayOriginNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectTraceRayMotionNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpHitObjectGetShaderRecordBufferHandleNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetShaderBindingTableRecordIndexNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectRecordEmptyNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpHitObjectTraceRayNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpHitObjectRecordHitNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpHitObjectRecordHitWithIndexNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpHitObjectRecordMissNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpHitObjectExecuteShaderNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpHitObjectGetCurrentTimeNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetAttributesNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpHitObjectGetHitKindNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetPrimitiveIndexNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetGeometryIndexNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetInstanceIdNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetInstanceCustomIndexNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetWorldRayDirectionNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetWorldRayOriginNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetRayTMaxNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetRayTMinNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectIsEmptyNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectIsHitNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectIsMissNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpReorderThreadWithHitObjectNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpReorderThreadWithHintNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpTypeHitObjectNV:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpImageSampleFootprintNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpEmitMeshTasksEXT:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSetMeshOutputsEXT:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpGroupNonUniformPartitionNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpWritePackedPrimitiveIndices4x8NV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpReportIntersectionNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIgnoreIntersectionNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpTerminateRayNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpTraceNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpTraceMotionNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpTraceRayMotionNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpRayQueryGetIntersectionTriangleVertexPositionsKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTypeAccelerationStructureNV:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpExecuteCallableNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpTypeCooperativeMatrixNV:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpCooperativeMatrixLoadNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCooperativeMatrixStoreNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpCooperativeMatrixMulAddNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCooperativeMatrixLengthNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpBeginInvocationInterlockEXT:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpEndInvocationInterlockEXT:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpDemoteToHelperInvocation:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpIsHelperInvocationEXT:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertUToImageNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertUToSamplerNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertImageToUNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertSamplerToUNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertUToSampledImageNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertSampledImageToUNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSamplerImageAddressingModeNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSubgroupShuffleINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupShuffleDownINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupShuffleUpINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupShuffleXorINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupBlockReadINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupBlockWriteINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSubgroupImageBlockReadINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupImageBlockWriteINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSubgroupImageMediaBlockReadINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupImageMediaBlockWriteINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpUCountLeadingZerosINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUCountTrailingZerosINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAbsISubINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAbsUSubINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIAddSatINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUAddSatINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIAverageINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUAverageINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIAverageRoundedINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUAverageRoundedINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpISubSatINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUSubSatINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIMul32x16INTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUMul32x16INTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConstantFunctionPointerINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFunctionPointerCallINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAsmTargetINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAsmINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAsmCallINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicFMinEXT:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicFMaxEXT:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAssumeTrueKHR:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpExpectKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpDecorateString:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpMemberDecorateString:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpVmeImageINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTypeVmeImageINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeAvcImePayloadINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeAvcRefPayloadINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeAvcSicPayloadINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeAvcMcePayloadINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeAvcMceResultINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeAvcImeResultINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeAvcImeSingleReferenceStreaminINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeAvcImeDualReferenceStreaminINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeAvcRefResultINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeAvcSicResultINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceConvertToImePayloadINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceConvertToImeResultINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceConvertToRefPayloadINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceConvertToRefResultINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceConvertToSicPayloadINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceConvertToSicResultINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetMotionVectorsINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetInterDistortionsINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetInterMajorShapeINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetInterMinorShapeINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetInterDirectionsINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeInitializeINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeSetSingleReferenceINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeSetDualReferenceINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeRefWindowSizeINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeAdjustRefOffsetINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeConvertToMcePayloadINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeSetWeightedSadINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeConvertToMceResultINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetBorderReachedINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcFmeInitializeINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcBmeInitializeINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcRefConvertToMcePayloadINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcRefConvertToMceResultINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicInitializeINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicConfigureSkcINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicConfigureIpeLumaINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicConvertToMcePayloadINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicEvaluateIpeINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicConvertToMceResultINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicGetIpeChromaModeINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicGetInterRawSadsINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpVariableLengthArrayINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSaveMemoryINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRestoreMemoryINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpArbitraryFloatSinCosPiINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatCastINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatCastFromIntINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatCastToIntINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatAddINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatSubINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatMulINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatDivINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatGTINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatGEINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatLTINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatLEINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatEQINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatRecipINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatRSqrtINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatCbrtINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatHypotINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatSqrtINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatLogINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatLog2INTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatLog10INTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatLog1pINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatExpINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatExp2INTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatExp10INTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatExpm1INTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatSinINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatCosINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatSinCosINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatSinPiINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatCosPiINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatASinINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatASinPiINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatACosINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatACosPiINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatATanINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatATanPiINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatATan2INTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatPowINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatPowRINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatPowNINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpLoopControlINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpAliasDomainDeclINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpAliasScopeDeclINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpAliasScopeListDeclINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpFixedSqrtINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFixedRecipINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFixedRsqrtINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFixedSinINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFixedCosINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFixedSinCosINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFixedSinPiINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFixedCosPiINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFixedSinCosPiINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFixedLogINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFixedExpINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpPtrCastToCrossWorkgroupINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCrossWorkgroupCastToPtrINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpReadPipeBlockingINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpWritePipeBlockingINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFPGARegINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetRayTMinKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetRayFlagsKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionTKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionInstanceCustomIndexKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionInstanceIdKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionGeometryIndexKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionPrimitiveIndexKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionBarycentricsKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionFrontFaceKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionCandidateAABBOpaqueKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionObjectRayDirectionKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionObjectRayOriginKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetWorldRayDirectionKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetWorldRayOriginKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionObjectToWorldKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionWorldToObjectKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicFAddEXT:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTypeBufferSurfaceINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeStructContinuedINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpConstantCompositeContinuedINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSpecConstantCompositeContinuedINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpConvertFToBF16INTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertBF16ToFINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpControlBarrierArriveINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpControlBarrierWaitINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpGroupIMulKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupFMulKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupBitwiseAndKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupBitwiseOrKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupBitwiseXorKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupLogicalAndKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupLogicalOrKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupLogicalXorKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
  }
}
#endif /* SPV_ENABLE_UTILITY_CODE */

#endif


================================================
FILE: deps/SPIRV-reflect/spirv_reflect.c
================================================
/*
 Copyright 2017-2022 Google Inc.

 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
 You may obtain a copy of the License at

 http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
*/

#include "spirv_reflect.h"

#include <assert.h>
#include <stdbool.h>
#include <string.h>

#if defined(WIN32)
#define _CRTDBG_MAP_ALLOC
#include <crtdbg.h>
#include <stdlib.h>
#else
#include <stdlib.h>
#endif

#if defined(__clang__) || defined(__GNUC__) || defined(__APPLE_CC__)
#define FALLTHROUGH __attribute__((fallthrough))
#else
#define FALLTHROUGH
#endif

#if defined(SPIRV_REFLECT_ENABLE_ASSERTS)
#define SPV_REFLECT_ASSERT(COND) assert(COND);
#else
#define SPV_REFLECT_ASSERT(COND)
#endif

// clang-format off
enum {
  SPIRV_STARTING_WORD_INDEX       = 5,
  SPIRV_WORD_SIZE                 = sizeof(uint32_t),
  SPIRV_BYTE_WIDTH                = 8,
  SPIRV_MINIMUM_FILE_SIZE         = SPIRV_STARTING_WORD_INDEX * SPIRV_WORD_SIZE,
  SPIRV_DATA_ALIGNMENT            = 4 * SPIRV_WORD_SIZE, // 16
  SPIRV_ACCESS_CHAIN_INDEX_OFFSET = 4,
};

enum {
  INVALID_VALUE  = 0xFFFFFFFF,
};

enum {
  MAX_NODE_NAME_LENGTH        = 1024,
  // Number of unique PhysicalStorageBuffer structs tracked to detect recursion
  MAX_RECURSIVE_PHYSICAL_POINTER_CHECK = 128,
};

enum {
  IMAGE_SAMPLED = 1,
  IMAGE_STORAGE = 2,
};

typedef struct SpvReflectPrvArrayTraits {
  uint32_t                        element_type_id;
  uint32_t                        length_id;
} SpvReflectPrvArrayTraits;

typedef struct SpvReflectPrvImageTraits {
  uint32_t                        sampled_type_id;
  SpvDim                          dim;
  uint32_t                        depth;
  uint32_t                        arrayed;
  uint32_t                        ms;
  uint32_t                        sampled;
  SpvImageFormat                  image_format;
} SpvReflectPrvImageTraits;

typedef struct SpvReflectPrvNumberDecoration {
  uint32_t                        word_offset;
  uint32_t                        value;
} SpvReflectPrvNumberDecoration;

typedef struct SpvReflectPrvStringDecoration {
  uint32_t                        word_offset;
  const char*                     value;
} SpvReflectPrvStringDecoration;

typedef struct SpvReflectPrvDecorations {
  bool                            is_relaxed_precision;
  bool                            is_block;
  bool                            is_buffer_block;
  bool                            is_row_major;
  bool                            is_column_major;
  bool                            is_built_in;
  bool                            is_noperspective;
  bool                            is_flat;
  bool                            is_non_writable;
  bool                            is_non_readable;
  bool                            is_patch;
  bool                            is_per_vertex;
  bool                            is_per_task;
  bool                            is_weight_texture;
  bool                            is_block_match_texture;
  SpvReflectUserType              user_type;
  SpvReflectPrvNumberDecoration   set;
  SpvReflectPrvNumberDecoration   binding;
  SpvReflectPrvNumberDecoration   input_attachment_index;
  SpvReflectPrvNumberDecoration   location;
  SpvReflectPrvNumberDecoration   component;
  SpvReflectPrvNumberDecoration   offset;
  SpvReflectPrvNumberDecoration   uav_counter_buffer;
  SpvReflectPrvStringDecoration   semantic;
  uint32_t                        array_stride;
  uint32_t                        matrix_stride;
  uint32_t                        spec_id;
  SpvBuiltIn                      built_in;
} SpvReflectPrvDecorations;

typedef struct SpvReflectPrvNode {
  uint32_t                        result_id;
  SpvOp                           op;
  uint32_t                        result_type_id;
  uint32_t                        type_id;
  SpvCapability                   capability;
  SpvStorageClass                 storage_class;
  uint32_t                        word_offset;
  uint32_t                        word_count;
  bool                            is_type;

  SpvReflectPrvArrayTraits        array_traits;
  SpvReflectPrvImageTraits        image_traits;
  uint32_t                        image_type_id;

  const char*                     name;
  SpvReflectPrvDecorations        decorations;
  uint32_t                        member_count;
  const char**                    member_names;
  SpvReflectPrvDecorations*       member_decorations;
} SpvReflectPrvNode;

typedef struct SpvReflectPrvString {
  uint32_t                        result_id;
  const char*                     string;
} SpvReflectPrvString;

// There are a limit set of instructions that can touch an OpVariable,
// these are represented here with how it was accessed
// Examples:
//    OpImageRead  -> OpLoad -> OpVariable
//    OpImageWrite -> OpLoad -> OpVariable
//    OpStore      -> OpAccessChain -> OpAccessChain -> OpVariable
//    OpAtomicIAdd -> OpAccessChain -> OpVariable
//    OpAtomicLoad -> OpImageTexelPointer -> OpVariable
typedef struct SpvReflectPrvAccessedVariable {
  SpvReflectPrvNode*     p_node;
  uint32_t               result_id;
  uint32_t               variable_ptr;
} SpvReflectPrvAccessedVariable;

typedef struct SpvReflectPrvFunction {
  uint32_t                        id;
  uint32_t                        callee_count;
  uint32_t*                       callees;
  struct SpvReflectPrvFunction**  callee_ptrs;
  uint32_t                        accessed_variable_count;
  SpvReflectPrvAccessedVariable*  accessed_variables;
} SpvReflectPrvFunction;

typedef struct SpvReflectPrvAccessChain {
  uint32_t                        result_id;
  uint32_t                        result_type_id;
  //
  // Pointing to the base of a composite object.
  // Generally the id of descriptor block variable
  uint32_t                        base_id;
  //
  // From spec:
  //   The first index in Indexes will select the
  //   top-level member/element/component/element
  //   of the base composite
  uint32_t                        index_count;
  uint32_t*                       indexes;
  //
  // Block variable ac is pointing to (for block references)
  SpvReflectBlockVariable*        block_var;
} SpvReflectPrvAccessChain;

// To prevent infinite recursion, we never walk down a
// PhysicalStorageBuffer struct twice, but incase a 2nd variable
// needs to use that struct, save a copy
typedef struct SpvReflectPrvPhysicalPointerStruct {
    uint32_t struct_id;
    // first variable to see the PhysicalStorageBuffer struct
    SpvReflectBlockVariable* p_var;
} SpvReflectPrvPhysicalPointerStruct;

typedef struct SpvReflectPrvParser {
  size_t                          spirv_word_count;
  uint32_t*                       spirv_code;
  uint32_t                        string_count;
  SpvReflectPrvString*            strings;
  SpvSourceLanguage               source_language;
  uint32_t                        source_language_version;
  uint32_t                        source_file_id;
  const char*                     source_embedded;
  size_t                          node_count;
  SpvReflectPrvNode*              nodes;
  uint32_t                        entry_point_count;
  uint32_t                        capability_count;
  uint32_t                        function_count;
  SpvReflectPrvFunction*          functions;
  uint32_t                        access_chain_count;
  SpvReflectPrvAccessChain*       access_chains;

  uint32_t                        type_count;
  uint32_t                        descriptor_count;
  uint32_t                        push_constant_count;

  SpvReflectTypeDescription*      physical_pointer_check[MAX_RECURSIVE_PHYSICAL_POINTER_CHECK];
  uint32_t                        physical_pointer_count;

  SpvReflectPrvPhysicalPointerStruct* physical_pointer_structs;
  uint32_t                            physical_pointer_struct_count;
} SpvReflectPrvParser;
// clang-format on

static uint32_t Max(uint32_t a, uint32_t b) { return a > b ? a : b; }
static uint32_t Min(uint32_t a, uint32_t b) { return a < b ? a : b; }

static uint32_t RoundUp(uint32_t value, uint32_t multiple) {
  assert(multiple && ((multiple & (multiple - 1)) == 0));
  return (value + multiple - 1) & ~(multiple - 1);
}

#define IsNull(ptr) (ptr == NULL)

#define IsNotNull(ptr) (ptr != NULL)

#define SafeFree(ptr) \
  {                   \
    free((void*)ptr); \
    ptr = NULL;       \
  }

static int SortCompareUint32(const void* a, const void* b) {
  const uint32_t* p_a = (const uint32_t*)a;
  const uint32_t* p_b = (const uint32_t*)b;

  return (int)*p_a - (int)*p_b;
}

static int SortCompareAccessedVariable(const void* a, const void* b) {
  const SpvReflectPrvAccessedVariable* p_a = (const SpvReflectPrvAccessedVariable*)a;
  const SpvReflectPrvAccessedVariable* p_b = (const SpvReflectPrvAccessedVariable*)b;

  return (int)p_a->variable_ptr - (int)p_b->variable_ptr;
}

//
// De-duplicates a sorted array and returns the new size.
//
// Note: The array doesn't actually need to be sorted, just
// arranged into "runs" so that all the entries with one
// value are adjacent.
//
static size_t DedupSortedUint32(uint32_t* arr, size_t size) {
  if (size == 0) {
    return 0;
  }
  size_t dedup_idx = 0;
  for (size_t i = 0; i < size; ++i) {
    if (arr[dedup_idx] != arr[i]) {
      ++dedup_idx;
      arr[dedup_idx] = arr[i];
    }
  }
  return dedup_idx + 1;
}

static bool SearchSortedUint32(const uint32_t* arr, size_t size, uint32_t target) {
  size_t lo = 0;
  size_t hi = size;
  while (lo < hi) {
    size_t mid = (hi - lo) / 2 + lo;
    if (arr[mid] == target) {
      return true;
    } else if (arr[mid] < target) {
      lo = mid + 1;
    } else {
      hi = mid;
    }
  }
  return false;
}

static SpvReflectResult IntersectSortedAccessedVariable(const SpvReflectPrvAccessedVariable* p_arr0, size_t arr0_size,
                                                        const uint32_t* p_arr1, size_t arr1_size, uint32_t** pp_res,
                                                        size_t* res_size) {
  *pp_res = NULL;
  *res_size = 0;
  if (IsNull(p_arr0) || IsNull(p_arr1)) {
    return SPV_REFLECT_RESULT_SUCCESS;
  }

  const SpvReflectPrvAccessedVariable* p_arr0_end = p_arr0 + arr0_size;
  const uint32_t* p_arr1_end = p_arr1 + arr1_size;

  const SpvReflectPrvAccessedVariable* p_idx0 = p_arr0;
  const uint32_t* p_idx1 = p_arr1;
  while (p_idx0 != p_arr0_end && p_idx1 != p_arr1_end) {
    if (p_idx0->variable_ptr < *p_idx1) {
      ++p_idx0;
    } else if (p_idx0->variable_ptr > *p_idx1) {
      ++p_idx1;
    } else {
      ++*res_size;
      ++p_idx0;
      ++p_idx1;
    }
  }

  if (*res_size > 0) {
    *pp_res = (uint32_t*)calloc(*res_size, sizeof(**pp_res));
    if (IsNull(*pp_res)) {
      return SPV_REFLECT_RESULT_ERROR_ALLOC_FAILED;
    }
    uint32_t* p_idxr = *pp_res;
    p_idx0 = p_arr0;
    p_idx1 = p_arr1;
    while (p_idx0 != p_arr0_end && p_idx1 != p_arr1_end) {
      if (p_idx0->variable_ptr < *p_idx1) {
        ++p_idx0;
      } else if (p_idx0->variable_ptr > *p_idx1) {
        ++p_idx1;
      } else {
        *(p_idxr++) = p_idx0->variable_ptr;
        ++p_idx0;
        ++p_idx1;
      }
    }
  }
  return SPV_REFLECT_RESULT_SUCCESS;
}

static bool InRange(const SpvReflectPrvParser* p_parser, uint32_t index) {
  bool in_range = false;
  if (IsNotNull(p_parser)) {
    in_range = (index < p_parser->spirv_word_count);
  }
  return in_range;
}

static SpvReflectResult ReadU32(SpvReflectPrvParser* p_parser, uint32_t word_offset, uint32_t* p_value) {
  assert(IsNotNull(p_parser));
  assert(IsNotNull(p_parser->spirv_code));
  assert(InRange(p_parser, word_offset));
  SpvReflectResult result = SPV_REFLECT_RESULT_ERROR_SPIRV_UNEXPECTED_EOF;
  if (IsNotNull(p_parser) && IsNotNull(p_parser->spirv_code) && InRange(p_parser, word_offset)) {
    *p_value = *(p_parser->spirv_code + word_offset);
    result = SPV_REFLECT_RESULT_SUCCESS;
  }
  return result;
}

#define UNCHECKED_READU32(parser, word_offset, value) \
  { (void)ReadU32(parser, word_offset, (uint32_t*)&(value)); }

#define CHECKED_READU32(parser, word_offset, value)                                              \
  {                                                                                              \
    SpvReflectResult checked_readu32_result = ReadU32(parser, word_offset, (uint32_t*)&(value)); \
    if (checked_readu32_result != SPV_REFLECT_RESULT_SUCCESS) {                                  \
      return checked_readu32_result;                                                             \
    }                                                                                            \
  }

#define CHECKED_READU32_CAST(parser, word_offset, cast_to_type, value)                                                   \
  {                                                                                                                      \
    uint32_t checked_readu32_cast_u32 = UINT32_MAX;                                                                      \
    SpvReflectResult checked_readu32_cast_result = ReadU32(parser, word_offset, (uint32_t*)&(checked_readu32_cast_u32)); \
    if (checked_readu32_cast_result != SPV_REFLECT_RESULT_SUCCESS) {                                                     \
      return checked_readu32_cast_result;                                                                                \
    }                                                                                                                    \
    value = (cast_to_type)checked_readu32_cast_u32;                                                                      \
  }

#define IF_READU32(result, parser, word_offset, value)          \
  if ((result) == SPV_REFLECT_RESULT_SUCCESS) {                 \
    result = ReadU32(parser, word_offset, (uint32_t*)&(value)); \
  }

#define IF_READU32_CAST(result, parser, word_offset, cast_to_type, value) \
  if ((result) == SPV_REFLECT_RESULT_SUCCESS) {                           \
    uint32_t if_readu32_cast_u32 = UINT32_MAX;                            \
    result = ReadU32(parser, word_offset, &if_readu32_cast_u32);          \
    if ((result) == SPV_REFLECT_RESULT_SUCCESS) {                         \
      value = (cast_to_type)if_readu32_cast_u32;                          \
    }                                                                     \
  }

static SpvReflectResult ReadStr(SpvReflectPrvParser* p_parser, uint32_t word_offset, uint32_t word_index, uint32_t word_count,
                                uint32_t* p_buf_size, char* p_buf) {
  uint32_t limit = (word_offset + word_count);
  assert(IsNotNull(p_parser));
  assert(IsNotNull(p_parser->spirv_code));
  assert(InRange(p_parser, limit));
  SpvReflectResult result = SPV_REFLECT_RESULT_ERROR_SPIRV_UNEXPECTED_EOF;
  if (IsNotNull(p_parser) && IsNotNull(p_parser->spirv_code) && InRange(p_parser, limit)) {
    const char* c_str = (const char*)(p_parser->spirv_code + word_offset + word_index);
    uint32_t n = word_count * SPIRV_WORD_SIZE;
    uint32_t length_with_terminator = 0;
    for (uint32_t i = 0; i < n; ++i) {
      char c = *(c_str + i);
      if (c == 0) {
        length_with_terminator = i + 1;
        break;
      }
    }

    if (length_with_terminator > 0) {
      result = SPV_REFLECT_RESULT_ERROR_NULL_POINTER;
      if (IsNotNull(p_buf_size) && IsNotNull(p_buf)) {
        result = SPV_REFLECT_RESULT_ERROR_RANGE_EXCEEDED;
        if (length_with_terminator <= *p_buf_size) {
          memset(p_buf, 0, *p_buf_size);
          memcpy(p_buf, c_str, length_with_terminator);
          result = SPV_REFLECT_RESULT_SUCCESS;
        }
      } else {
        if (IsNotNull(p_buf_size)) {
          *p_buf_size = length_with_terminator;
          result = SPV_REFLECT_RESULT_SUCCESS;
        }
      }
    }
  }
  return result;
}

static SpvReflectDecorationFlags ApplyDecorations(const SpvReflectPrvDecorations* p_decoration_fields) {
  SpvReflectDecorationFlags decorations = SPV_REFLECT_DECORATION_NONE;
  if (p_decoration_fields->is_relaxed_precision) {
    decorations |= SPV_REFLECT_DECORATION_RELAXED_PRECISION;
  }
  if (p_decoration_fields->is_block) {
    decorations |= SPV_REFLECT_DECORATION_BLOCK;
  }
  if (p_decoration_fields->is_buffer_block) {
    decorations |= SPV_REFLECT_DECORATION_BUFFER_BLOCK;
  }
  if (p_decoration_fields->is_row_major) {
    decorations |= SPV_REFLECT_DECORATION_ROW_MAJOR;
  }
  if (p_decoration_fields->is_column_major) {
    decorations |= SPV_REFLECT_DECORATION_COLUMN_MAJOR;
  }
  if (p_decoration_fields->is_built_in) {
    decorations |= SPV_REFLECT_DECORATION_BUILT_IN;
  }
  if (p_decoration_fields->is_noperspective) {
    decorations |= SPV_REFLECT_DECORATION_NOPERSPECTIVE;
  }
  if (p_decoration_fields->is_flat) {
    decorations |= SPV_REFLECT_DECORATION_FLAT;
  }
  if (p_decoration_fields->is_non_writable) {
    decorations |= SPV_REFLECT_DECORATION_NON_WRITABLE;
  }
  if (p_decoration_fields->is_non_readable) {
    decorations |= SPV_REFLECT_DECORATION_NON_READABLE;
  }
  if (p_decoration_fields->is_patch) {
    decorations |= SPV_REFLECT_DECORATION_PATCH;
  }
  if (p_decoration_fields->is_per_vertex) {
    decorations |= SPV_REFLECT_DECORATION_PER_VERTEX;
  }
  if (p_decoration_fields->is_per_task) {
    decorations |= SPV_REFLECT_DECORATION_PER_TASK;
  }
  if (p_decoration_fields->is_weight_texture) {
    decorations |= SPV_REFLECT_DECORATION_WEIGHT_TEXTURE;
  }
  if (p_decoration_fields->is_block_match_texture) {
    decorations |= SPV_REFLECT_DECORATION_BLOCK_MATCH_TEXTURE;
  }
  return decorations;
}

static void ApplyNumericTraits(const SpvReflectTypeDescription* p_type, SpvReflectNumericTraits* p_numeric_traits) {
  memcpy(p_numeric_traits, &p_type->traits.numeric, sizeof(p_type->traits.numeric));
}

static void ApplyArrayTraits(const SpvReflectTypeDescription* p_type, SpvReflectArrayTraits* p_array_traits) {
  memcpy(p_array_traits, &p_type->traits.array, sizeof(p_type->traits.array));
}

static bool IsSpecConstant(const SpvReflectPrvNode* p_node) {
  return (p_node->op == SpvOpSpecConstant || p_node->op == SpvOpSpecConstantOp || p_node->op == SpvOpSpecConstantTrue ||
          p_node->op == SpvOpSpecConstantFalse);
}

static SpvReflectPrvNode* FindNode(SpvReflectPrvParser* p_parser, uint32_t result_id) {
  SpvReflectPrvNode* p_node = NULL;
  for (size_t i = 0; i < p_parser->node_count; ++i) {
    SpvReflectPrvNode* p_elem = &(p_parser->nodes[i]);
    if (p_elem->result_id == result_id) {
      p_node = p_elem;
      break;
    }
  }
  return p_node;
}

static SpvReflectTypeDescription* FindType(SpvReflectShaderModule* p_module, uint32_t type_id) {
  SpvReflectTypeDescription* p_type = NULL;
  for (size_t i = 0; i < p_module->_internal->type_description_count; ++i) {
    SpvReflectTypeDescription* p_elem = &(p_module->_internal->type_descriptions[i]);
    if (p_elem->id == type_id) {
      p_type = p_elem;
      break;
    }
  }
  return p_type;
}

static SpvReflectPrvAccessChain* FindAccessChain(SpvReflectPrvParser* p_parser, uint32_t id) {
  uint32_t ac_cnt = p_parser->access_chain_count;
  for (uint32_t i = 0; i < ac_cnt; i++) {
    if (p_parser->access_chains[i].result_id == id) {
      return &p_parser->access_chains[i];
    }
  }
  return 0;
}

static uint32_t FindBaseId(SpvReflectPrvParser* p_parser, SpvReflectPrvAccessChain* ac) {
  uint32_t base_id = ac->base_id;
  SpvReflectPrvNode* base_node = FindNode(p_parser, base_id);
  // TODO - This is just a band-aid to fix crashes.
  // Need to understand why here and hopefully remove
  // https://github.com/KhronosGroup/SPIRV-Reflect/pull/206
  if (IsNull(base_node)) {
    return 0;
  }
  while (base_node->op != SpvOpVariable) {
    switch (base_node->op) {
      case SpvOpLoad: {
        UNCHECKED_READU32(p_parser, base_node->word_offs
Download .txt
gitextract_ofuavp55/

├── .clang-format
├── .github/
│   └── workflows/
│       └── tests.yml
├── .gitignore
├── CMakeLists.txt
├── README.md
├── build-samples.bat
├── build-samples.sh
├── build-utils.cmake
├── deps/
│   ├── SPIRV-reflect/
│   │   ├── CMakeLists.txt
│   │   ├── include/
│   │   │   └── spirv/
│   │   │       └── unified1/
│   │   │           └── spirv.h
│   │   ├── spirv_reflect.c
│   │   └── spirv_reflect.h
│   ├── metal-cpp/
│   │   └── MetalSingleHeader.hpp
│   ├── renderdoc/
│   │   └── renderdoc_app.h
│   ├── utest/
│   │   └── utest.h
│   ├── vma/
│   │   ├── CHANGELOG.md
│   │   ├── CMakeLists.txt
│   │   ├── LICENSE.txt
│   │   ├── README.md
│   │   └── src/
│   │       ├── vk_mem_alloc.cpp
│   │       └── vk_mem_alloc.h
│   └── vulkan-headers/
│       └── vulkan/
│           ├── vk_platform.h
│           ├── vulkan.h
│           ├── vulkan_core.h
│           ├── vulkan_ios.h
│           ├── vulkan_macos.h
│           ├── vulkan_metal.h
│           ├── vulkan_win32.h
│           └── vulkan_xcb.h
├── docs/
│   └── logo.xcf
├── include/
│   ├── nicegraf-mtl-handles.h
│   ├── nicegraf-util.h
│   ├── nicegraf-vk-handles.h
│   ├── nicegraf-wrappers.h
│   └── nicegraf.h
├── misc/
│   ├── common/
│   │   ├── CMakeLists.txt
│   │   ├── check.h
│   │   ├── file-utils.cpp
│   │   ├── file-utils.h
│   │   ├── logging.h
│   │   ├── mesh-loader.cpp
│   │   ├── mesh-loader.h
│   │   ├── shader-loader.cpp
│   │   ├── shader-loader.h
│   │   ├── targa-loader.cpp
│   │   └── targa-loader.h
│   └── shaders.cmake
├── samples/
│   ├── 00-template/
│   │   └── sample-impl.cpp
│   ├── 01-fullscreen-triangle/
│   │   └── fullscreen-triangle.cpp
│   ├── 02-render-to-texture/
│   │   └── render-to-texture.cpp
│   ├── 03-uniform-buffers/
│   │   └── uniform-buffers.cpp
│   ├── 04-texture-sampling/
│   │   └── texture-sampling.cpp
│   ├── 05-cubemap/
│   │   └── cubemap.cpp
│   ├── 06-vertex-attribs/
│   │   └── vertex-attribs.cpp
│   ├── 07-blinn-phong/
│   │   └── blinn-phong.cpp
│   ├── 08-image-arrays/
│   │   └── image-arrays.cpp
│   ├── 09-volume-rendering/
│   │   └── volume-rendering.cpp
│   ├── 0a-compute-demo/
│   │   └── compute-demo.cpp
│   ├── 0a-compute-mandelbrot/
│   │   └── compute-mandelbrot.cpp
│   ├── 0b-compute-vertices/
│   │   └── compute-vertices.cpp
│   ├── 0c-render-to-multisample-texture/
│   │   └── render-to-multisample-texture.cpp
│   ├── common/
│   │   ├── camera-controller.cpp
│   │   ├── camera-controller.h
│   │   ├── diagnostic-callback.cpp
│   │   ├── diagnostic-callback.h
│   │   ├── imgui-backend.cpp
│   │   ├── imgui-backend.h
│   │   ├── main.cpp
│   │   ├── platform/
│   │   │   └── macos/
│   │   │       ├── glfw-cocoa-contentview.h
│   │   │       └── glfw-cocoa-contentview.mm
│   │   ├── sample-interface.h
│   │   ├── staging-image.cpp
│   │   └── staging-image.h
│   └── shaders/
│       ├── blinn-phong.hlsl
│       ├── compute-demo.hlsl
│       ├── compute-vertices.hlsl
│       ├── cubemap.hlsl
│       ├── fullscreen-triangle.hlsl
│       ├── generic-frag-shader-input.hlsl
│       ├── imgui.hlsl
│       ├── instancing.hlsl
│       ├── polygon.hlsl
│       ├── quad.hlsl
│       ├── quat.hlsl
│       ├── simple-texture.hlsl
│       ├── textured-quad.hlsl
│       ├── triangle.hlsl
│       └── volume-renderer.hlsl
├── source/
│   ├── ngf-common/
│   │   ├── arena.cpp
│   │   ├── arena.h
│   │   ├── array.h
│   │   ├── chunked-list.h
│   │   ├── cmdbuf-state.h
│   │   ├── create-destroy.cpp
│   │   ├── default-arenas.cpp
│   │   ├── default-arenas.h
│   │   ├── frame-token.h
│   │   ├── hashtable.h
│   │   ├── internal.cpp
│   │   ├── macros.h
│   │   ├── silence.h
│   │   ├── unique-ptr.h
│   │   ├── util.c
│   │   ├── util.h
│   │   └── value-or-error.h
│   ├── ngf-mtl/
│   │   ├── impl.cpp
│   │   └── layer.mm
│   └── ngf-vk/
│       ├── ca-metal-layer.mm
│       ├── impl.cpp
│       ├── vk_10.c
│       └── vk_10.h
└── tests/
    ├── arena-alloc-tests.cpp
    ├── common-tests.cpp
    └── vk-backend-tests.cpp
Download .txt
Showing preview only (1,349K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (5819 symbols across 73 files)

FILE: deps/SPIRV-reflect/include/spirv/unified1/spirv.h
  type SpvId (line 59) | typedef unsigned int SpvId;
  type SpvSourceLanguage (line 70) | typedef enum SpvSourceLanguage_ {
  type SpvExecutionModel (line 84) | typedef enum SpvExecutionModel_ {
  type SpvAddressingModel (line 111) | typedef enum SpvAddressingModel_ {
  type SpvMemoryModel (line 120) | typedef enum SpvMemoryModel_ {
  type SpvExecutionMode (line 129) | typedef enum SpvExecutionMode_ {
  type SpvStorageClass (line 216) | typedef enum SpvStorageClass_ {
  type SpvDim (line 253) | typedef enum SpvDim_ {
  type SpvSamplerAddressingMode (line 265) | typedef enum SpvSamplerAddressingMode_ {
  type SpvSamplerFilterMode (line 274) | typedef enum SpvSamplerFilterMode_ {
  type SpvImageFormat (line 280) | typedef enum SpvImageFormat_ {
  type SpvImageChannelOrder (line 326) | typedef enum SpvImageChannelOrder_ {
  type SpvImageChannelDataType (line 350) | typedef enum SpvImageChannelDataType_ {
  type SpvImageOperandsShift (line 373) | typedef enum SpvImageOperandsShift_ {
  type SpvImageOperandsMask (line 397) | typedef enum SpvImageOperandsMask_ {
  type SpvFPFastMathModeShift (line 421) | typedef enum SpvFPFastMathModeShift_ {
  type SpvFPFastMathModeMask (line 432) | typedef enum SpvFPFastMathModeMask_ {
  type SpvFPRoundingMode (line 443) | typedef enum SpvFPRoundingMode_ {
  type SpvLinkageType (line 451) | typedef enum SpvLinkageType_ {
  type SpvAccessQualifier (line 458) | typedef enum SpvAccessQualifier_ {
  type SpvFunctionParameterAttribute (line 465) | typedef enum SpvFunctionParameterAttribute_ {
  type SpvDecoration (line 478) | typedef enum SpvDecoration_ {
  type SpvBuiltIn (line 612) | typedef enum SpvBuiltIn_ {
  type SpvSelectionControlShift (line 748) | typedef enum SpvSelectionControlShift_ {
  type SpvSelectionControlMask (line 754) | typedef enum SpvSelectionControlMask_ {
  type SpvLoopControlShift (line 760) | typedef enum SpvLoopControlShift_ {
  type SpvLoopControlMask (line 783) | typedef enum SpvLoopControlMask_ {
  type SpvFunctionControlShift (line 806) | typedef enum SpvFunctionControlShift_ {
  type SpvFunctionControlMask (line 815) | typedef enum SpvFunctionControlMask_ {
  type SpvMemorySemanticsShift (line 824) | typedef enum SpvMemorySemanticsShift_ {
  type SpvMemorySemanticsMask (line 845) | typedef enum SpvMemorySemanticsMask_ {
  type SpvMemoryAccessShift (line 866) | typedef enum SpvMemoryAccessShift_ {
  type SpvMemoryAccessMask (line 881) | typedef enum SpvMemoryAccessMask_ {
  type SpvScope (line 896) | typedef enum SpvScope_ {
  type SpvGroupOperation (line 908) | typedef enum SpvGroupOperation_ {
  type SpvKernelEnqueueFlags (line 919) | typedef enum SpvKernelEnqueueFlags_ {
  type SpvKernelProfilingInfoShift (line 926) | typedef enum SpvKernelProfilingInfoShift_ {
  type SpvKernelProfilingInfoMask (line 931) | typedef enum SpvKernelProfilingInfoMask_ {
  type SpvCapability (line 936) | typedef enum SpvCapability_ {
  type SpvRayFlagsShift (line 1184) | typedef enum SpvRayFlagsShift_ {
  type SpvRayFlagsMask (line 1199) | typedef enum SpvRayFlagsMask_ {
  type SpvRayQueryIntersection (line 1214) | typedef enum SpvRayQueryIntersection_ {
  type SpvRayQueryCommittedIntersectionType (line 1220) | typedef enum SpvRayQueryCommittedIntersectionType_ {
  type SpvRayQueryCandidateIntersectionType (line 1229) | typedef enum SpvRayQueryCandidateIntersectionType_ {
  type SpvFragmentShadingRateShift (line 1236) | typedef enum SpvFragmentShadingRateShift_ {
  type SpvFragmentShadingRateMask (line 1244) | typedef enum SpvFragmentShadingRateMask_ {
  type SpvFPDenormMode (line 1252) | typedef enum SpvFPDenormMode_ {
  type SpvFPOperationMode (line 1258) | typedef enum SpvFPOperationMode_ {
  type SpvQuantizationModes (line 1264) | typedef enum SpvQuantizationModes_ {
  type SpvOverflowModes (line 1276) | typedef enum SpvOverflowModes_ {
  type SpvPackedVectorFormat (line 1284) | typedef enum SpvPackedVectorFormat_ {
  type SpvCooperativeMatrixOperandsShift (line 1290) | typedef enum SpvCooperativeMatrixOperandsShift_ {
  type SpvCooperativeMatrixOperandsMask (line 1299) | typedef enum SpvCooperativeMatrixOperandsMask_ {
  type SpvCooperativeMatrixLayout (line 1308) | typedef enum SpvCooperativeMatrixLayout_ {
  type SpvCooperativeMatrixUse (line 1314) | typedef enum SpvCooperativeMatrixUse_ {
  type SpvOp (line 1321) | typedef enum SpvOp_ {
  function SpvHasResultAndType (line 2052) | inline void SpvHasResultAndType(SpvOp opcode, bool* hasResult,

FILE: deps/SPIRV-reflect/spirv_reflect.c
  type SpvReflectPrvArrayTraits (line 68) | typedef struct SpvReflectPrvArrayTraits {
  type SpvReflectPrvImageTraits (line 73) | typedef struct SpvReflectPrvImageTraits {
  type SpvReflectPrvNumberDecoration (line 83) | typedef struct SpvReflectPrvNumberDecoration {
  type SpvReflectPrvStringDecoration (line 88) | typedef struct SpvReflectPrvStringDecoration {
  type SpvReflectPrvDecorations (line 93) | typedef struct SpvReflectPrvDecorations {
  type SpvReflectPrvNode (line 124) | typedef struct SpvReflectPrvNode {
  type SpvReflectPrvString (line 146) | typedef struct SpvReflectPrvString {
  type SpvReflectPrvAccessedVariable (line 159) | typedef struct SpvReflectPrvAccessedVariable {
  type SpvReflectPrvFunction (line 165) | typedef struct SpvReflectPrvFunction {
  type SpvReflectPrvAccessChain (line 174) | typedef struct SpvReflectPrvAccessChain {
  type SpvReflectPrvPhysicalPointerStruct (line 196) | typedef struct SpvReflectPrvPhysicalPointerStruct {
  type SpvReflectPrvParser (line 202) | typedef struct SpvReflectPrvParser {
  function Max (line 232) | static uint32_t Max(uint32_t a, uint32_t b) { return a > b ? a : b; }
  function Min (line 233) | static uint32_t Min(uint32_t a, uint32_t b) { return a < b ? a : b; }
  function RoundUp (line 235) | static uint32_t RoundUp(uint32_t value, uint32_t multiple) {
  function SortCompareUint32 (line 250) | static int SortCompareUint32(const void* a, const void* b) {
  function SortCompareAccessedVariable (line 257) | static int SortCompareAccessedVariable(const void* a, const void* b) {
  function DedupSortedUint32 (line 271) | static size_t DedupSortedUint32(uint32_t* arr, size_t size) {
  function SearchSortedUint32 (line 285) | static bool SearchSortedUint32(const uint32_t* arr, size_t size, uint32_...
  function SpvReflectResult (line 301) | static SpvReflectResult IntersectSortedAccessedVariable(const SpvReflect...
  function InRange (line 350) | static bool InRange(const SpvReflectPrvParser* p_parser, uint32_t index) {
  function SpvReflectResult (line 358) | static SpvReflectResult ReadU32(SpvReflectPrvParser* p_parser, uint32_t ...
  function SpvReflectResult (line 405) | static SpvReflectResult ReadStr(SpvReflectPrvParser* p_parser, uint32_t ...
  function SpvReflectDecorationFlags (line 444) | static SpvReflectDecorationFlags ApplyDecorations(const SpvReflectPrvDec...
  function ApplyNumericTraits (line 494) | static void ApplyNumericTraits(const SpvReflectTypeDescription* p_type, ...
  function ApplyArrayTraits (line 498) | static void ApplyArrayTraits(const SpvReflectTypeDescription* p_type, Sp...
  function IsSpecConstant (line 502) | static bool IsSpecConstant(const SpvReflectPrvNode* p_node) {
  function SpvReflectPrvNode (line 507) | static SpvReflectPrvNode* FindNode(SpvReflectPrvParser* p_parser, uint32...
  function SpvReflectTypeDescription (line 519) | static SpvReflectTypeDescription* FindType(SpvReflectShaderModule* p_mod...
  function SpvReflectPrvAccessChain (line 531) | static SpvReflectPrvAccessChain* FindAccessChain(SpvReflectPrvParser* p_...
  function FindBaseId (line 541) | static uint32_t FindBaseId(SpvReflectPrvParser* p_parser, SpvReflectPrvA...
  function SpvReflectBlockVariable (line 576) | static SpvReflectBlockVariable* GetRefBlkVar(SpvReflectPrvParser* p_pars...
  function IsPointerToPointer (line 588) | bool IsPointerToPointer(SpvReflectPrvParser* p_parser, uint32_t type_id) {
  function SpvReflectResult (line 602) | static SpvReflectResult CreateParser(size_t size, void* p_code, SpvRefle...
  function DestroyParser (line 624) | static void DestroyParser(SpvReflectPrvParser* p_parser) {
  function SpvReflectResult (line 662) | static SpvReflectResult ParseNodes(SpvReflectPrvParser* p_parser) {
  function SpvReflectResult (line 1007) | static SpvReflectResult ParseStrings(SpvReflectPrvParser* p_parser) {
  function SpvReflectResult (line 1050) | static SpvReflectResult ParseSource(SpvReflectPrvParser* p_parser, SpvRe...
  function SpvReflectResult (line 1088) | static SpvReflectResult ParseFunction(SpvReflectPrvParser* p_parser, Spv...
  function SortCompareFunctions (line 1205) | static int SortCompareFunctions(const void* a, const void* b) {
  function SpvReflectResult (line 1211) | static SpvReflectResult ParseFunctions(SpvReflectPrvParser* p_parser) {
  function SpvReflectResult (line 1286) | static SpvReflectResult ParseMemberCounts(SpvReflectPrvParser* p_parser) {
  function SpvReflectResult (line 1335) | static SpvReflectResult ParseNames(SpvReflectPrvParser* p_parser) {
  function UserTypeMatches (line 1371) | static bool UserTypeMatches(const char* user_type, const char* pattern) {
  function SpvReflectResult (line 1381) | static SpvReflectResult ParseDecorations(SpvReflectPrvParser* p_parser, ...
  function SpvReflectResult (line 1709) | static SpvReflectResult EnumerateAllUniforms(SpvReflectShaderModule* p_m...
  function SpvReflectResult (line 1727) | static SpvReflectResult ParseType(SpvReflectPrvParser* p_parser, SpvRefl...
  function SpvReflectResult (line 2002) | static SpvReflectResult ParseTypes(SpvReflectPrvParser* p_parser, SpvRef...
  function SpvReflectResult (line 2049) | static SpvReflectResult ParseCapabilities(SpvReflectPrvParser* p_parser,...
  function SortCompareDescriptorBinding (line 2083) | static int SortCompareDescriptorBinding(const void* a, const void* b) {
  function SpvReflectResult (line 2096) | static SpvReflectResult ParseDescriptorBindings(SpvReflectPrvParser* p_p...
  function SpvReflectResult (line 2256) | static SpvReflectResult ParseDescriptorType(SpvReflectShaderModule* p_mo...
  function SpvReflectResult (line 2382) | static SpvReflectResult ParseUAVCounterBindings(SpvReflectShaderModule* ...
  function SpvReflectResult (line 2441) | static SpvReflectResult ParseDescriptorBlockVariable(SpvReflectPrvParser...
  function GetPhysicalPointerStructSize (line 2582) | static uint32_t GetPhysicalPointerStructSize(SpvReflectPrvParser* p_pars...
  function SpvReflectResult (line 2591) | static SpvReflectResult ParseDescriptorBlockVariableSizes(SpvReflectPrvP...
  function MarkSelfAndAllMemberVarsAsUsed (line 2746) | static void MarkSelfAndAllMemberVarsAsUsed(SpvReflectBlockVariable* p_va...
  function SpvReflectResult (line 2767) | static SpvReflectResult ParseDescriptorBlockVariableUsage(SpvReflectPrvP...
  function SpvReflectResult (line 2890) | static SpvReflectResult ParseDescriptorBlocks(SpvReflectPrvParser* p_par...
  function SpvReflectResult (line 2943) | static SpvReflectResult ParseFormat(const SpvReflectTypeDescription* p_t...
  function SpvReflectResult (line 3075) | static SpvReflectResult ParseInterfaceVariable(SpvReflectPrvParser* p_pa...
  function SpvReflectResult (line 3141) | static SpvReflectResult ParseInterfaceVariables(SpvReflectPrvParser* p_p...
  function SpvReflectResult (line 3267) | static SpvReflectResult EnumerateAllPushConstants(SpvReflectShaderModule...
  function SpvReflectResult (line 3286) | static SpvReflectResult TraverseCallGraph(SpvReflectPrvParser* p_parser,...
  function GetUint32Constant (line 3308) | static uint32_t GetUint32Constant(SpvReflectPrvParser* p_parser, uint32_...
  function HasByteAddressBufferOffset (line 3317) | static bool HasByteAddressBufferOffset(SpvReflectPrvNode* p_node, SpvRef...
  function SpvReflectResult (line 3323) | static SpvReflectResult ParseByteAddressBuffer(SpvReflectPrvParser* p_pa...
  function SpvReflectResult (line 3408) | static SpvReflectResult ParseStaticallyUsedResources(SpvReflectPrvParser...
  function SpvReflectResult (line 3562) | static SpvReflectResult ParseEntryPoints(SpvReflectPrvParser* p_parser, ...
  function SpvReflectResult (line 3697) | static SpvReflectResult ParseExecutionModes(SpvReflectPrvParser* p_parse...
  function SpvReflectResult (line 3836) | static SpvReflectResult ParsePushConstantBlocks(SpvReflectPrvParser* p_p...
  function SortCompareDescriptorSet (line 3929) | static int SortCompareDescriptorSet(const void* a, const void* b) {
  function SpvReflectResult (line 3939) | static SpvReflectResult ParseEntrypointDescriptorSets(SpvReflectShaderMo...
  function SpvReflectResult (line 3997) | static SpvReflectResult ParseDescriptorSets(SpvReflectShaderModule* p_mo...
  function SpvReflectResult (line 4064) | static SpvReflectResult DisambiguateStorageBufferSrvUav(SpvReflectShader...
  function SpvReflectResult (line 4090) | static SpvReflectResult SynchronizeDescriptorSets(SpvReflectShaderModule...
  function SpvReflectResult (line 4105) | static SpvReflectResult CreateShaderModule(uint32_t flags, size_t size, ...
  function SpvReflectResult (line 4266) | SpvReflectResult spvReflectCreateShaderModule(size_t size, const void* p...
  function SpvReflectResult (line 4270) | SpvReflectResult spvReflectCreateShaderModule2(uint32_t flags, size_t si...
  function SpvReflectResult (line 4274) | SpvReflectResult spvReflectGetShaderModule(size_t size, const void* p_co...
  function SafeFreeTypes (line 4278) | static void SafeFreeTypes(SpvReflectTypeDescription* p_type) {
  function SafeFreeBlockVariables (line 4294) | static void SafeFreeBlockVariables(SpvReflectBlockVariable* p_block) {
  function SafeFreeInterfaceVariable (line 4315) | static void SafeFreeInterfaceVariable(SpvReflectInterfaceVariable* p_int...
  function spvReflectDestroyShaderModule (line 4331) | void spvReflectDestroyShaderModule(SpvReflectShaderModule* p_module) {
  function spvReflectGetCodeSize (line 4399) | uint32_t spvReflectGetCodeSize(const SpvReflectShaderModule* p_module) {
  function SpvReflectEntryPoint (line 4415) | const SpvReflectEntryPoint* spvReflectGetEntryPoint(const SpvReflectShad...
  function SpvReflectResult (line 4428) | SpvReflectResult spvReflectEnumerateDescriptorBindings(const SpvReflectS...
  function SpvReflectResult (line 4453) | SpvReflectResult spvReflectEnumerateEntryPointDescriptorBindings(const S...
  function SpvReflectResult (line 4491) | SpvReflectResult spvReflectEnumerateDescriptorSets(const SpvReflectShade...
  function SpvReflectResult (line 4516) | SpvReflectResult spvReflectEnumerateEntryPointDescriptorSets(const SpvRe...
  function SpvReflectResult (line 4546) | SpvReflectResult spvReflectEnumerateInterfaceVariables(const SpvReflectS...
  function SpvReflectResult (line 4571) | SpvReflectResult spvReflectEnumerateEntryPointInterfaceVariables(const S...
  function SpvReflectResult (line 4601) | SpvReflectResult spvReflectEnumerateInputVariables(const SpvReflectShade...
  function SpvReflectResult (line 4626) | SpvReflectResult spvReflectEnumerateEntryPointInputVariables(const SpvRe...
  function SpvReflectResult (line 4656) | SpvReflectResult spvReflectEnumerateOutputVariables(const SpvReflectShad...
  function SpvReflectResult (line 4681) | SpvReflectResult spvReflectEnumerateEntryPointOutputVariables(const SpvR...
  function SpvReflectResult (line 4711) | SpvReflectResult spvReflectEnumeratePushConstantBlocks(const SpvReflectS...
  function SpvReflectResult (line 4735) | SpvReflectResult spvReflectEnumeratePushConstants(const SpvReflectShader...
  function SpvReflectResult (line 4740) | SpvReflectResult spvReflectEnumerateEntryPointPushConstantBlocks(const S...
  function SpvReflectResult (line 4779) | SpvReflectResult spvReflectEnumerateSpecializationConstants(const SpvRef...
  function SpvReflectDescriptorBinding (line 4804) | const SpvReflectDescriptorBinding* spvReflectGetDescriptorBinding(const ...
  function SpvReflectDescriptorBinding (line 4824) | const SpvReflectDescriptorBinding* spvReflectGetEntryPointDescriptorBind...
  function SpvReflectDescriptorSet (line 4853) | const SpvReflectDescriptorSet* spvReflectGetDescriptorSet(const SpvRefle...
  function SpvReflectDescriptorSet (line 4872) | const SpvReflectDescriptorSet* spvReflectGetEntryPointDescriptorSet(cons...
  function SpvReflectInterfaceVariable (line 4898) | const SpvReflectInterfaceVariable* spvReflectGetInputVariableByLocation(...
  function SpvReflectInterfaceVariable (line 4922) | const SpvReflectInterfaceVariable* spvReflectGetInputVariable(const SpvR...
  function SpvReflectInterfaceVariable (line 4927) | const SpvReflectInterfaceVariable* spvReflectGetEntryPointInputVariableB...
  function SpvReflectInterfaceVariable (line 4961) | const SpvReflectInterfaceVariable* spvReflectGetInputVariableBySemantic(...
  function SpvReflectInterfaceVariable (line 4992) | const SpvReflectInterfaceVariable* spvReflectGetEntryPointInputVariableB...
  function SpvReflectInterfaceVariable (line 5031) | const SpvReflectInterfaceVariable* spvReflectGetOutputVariableByLocation...
  function SpvReflectInterfaceVariable (line 5055) | const SpvReflectInterfaceVariable* spvReflectGetOutputVariable(const Spv...
  function SpvReflectInterfaceVariable (line 5060) | const SpvReflectInterfaceVariable* spvReflectGetEntryPointOutputVariable...
  function SpvReflectInterfaceVariable (line 5094) | const SpvReflectInterfaceVariable* spvReflectGetOutputVariableBySemantic...
  function SpvReflectInterfaceVariable (line 5125) | const SpvReflectInterfaceVariable* spvReflectGetEntryPointOutputVariable...
  function SpvReflectBlockVariable (line 5164) | const SpvReflectBlockVariable* spvReflectGetPushConstantBlock(const SpvR...
  function SpvReflectBlockVariable (line 5179) | const SpvReflectBlockVariable* spvReflectGetPushConstant(const SpvReflec...
  function SpvReflectBlockVariable (line 5184) | const SpvReflectBlockVariable* spvReflectGetEntryPointPushConstantBlock(...
  function SpvReflectResult (line 5212) | SpvReflectResult spvReflectChangeDescriptorBindingNumbers(SpvReflectShad...
  function SpvReflectResult (line 5254) | SpvReflectResult spvReflectChangeDescriptorBindingNumber(SpvReflectShade...
  function SpvReflectResult (line 5260) | SpvReflectResult spvReflectChangeDescriptorSetNumber(SpvReflectShaderMod...
  function SpvReflectResult (line 5297) | static SpvReflectResult ChangeVariableLocation(SpvReflectShaderModule* p...
  function SpvReflectResult (line 5308) | SpvReflectResult spvReflectChangeInputVariableLocation(SpvReflectShaderM...
  function SpvReflectResult (line 5324) | SpvReflectResult spvReflectChangeOutputVariableLocation(SpvReflectShader...

FILE: deps/SPIRV-reflect/spirv_reflect.h
  type SpvReflectResult (line 61) | typedef enum SpvReflectResult {
  type SpvReflectModuleFlagBits (line 98) | typedef enum SpvReflectModuleFlagBits {
  type SpvReflectModuleFlags (line 103) | typedef uint32_t SpvReflectModuleFlags;
  type SpvReflectTypeFlagBits (line 108) | typedef enum SpvReflectTypeFlagBits {
  type SpvReflectTypeFlags (line 127) | typedef uint32_t SpvReflectTypeFlags;
  type SpvReflectDecorationFlagBits (line 142) | typedef enum SpvReflectDecorationFlagBits {
  type SpvReflectDecorationFlags (line 161) | typedef uint32_t SpvReflectDecorationFlags;
  type SpvReflectUserType (line 164) | typedef enum SpvReflectUserType {
  type SpvReflectResourceType (line 210) | typedef enum SpvReflectResourceType {
  type SpvReflectFormat (line 221) | typedef enum SpvReflectFormat {
  type SpvReflectVariableFlagBits (line 264) | enum SpvReflectVariableFlagBits{
  type SpvReflectVariableFlags (line 271) | typedef uint32_t SpvReflectVariableFlags;
  type SpvReflectDescriptorType (line 276) | typedef enum SpvReflectDescriptorType {
  type SpvReflectShaderStageFlagBits (line 294) | typedef enum SpvReflectShaderStageFlagBits {
  type SpvReflectGenerator (line 317) | typedef enum SpvReflectGenerator {
  type SpvReflectNumericTraits (line 340) | typedef struct SpvReflectNumericTraits {
  type SpvReflectImageTraits (line 357) | typedef struct SpvReflectImageTraits {
  type SpvReflectArrayDimType (line 366) | typedef enum SpvReflectArrayDimType {
  type SpvReflectArrayTraits (line 370) | typedef struct SpvReflectArrayTraits {
  type SpvReflectBindingArrayTraits (line 382) | typedef struct SpvReflectBindingArrayTraits {
  type SpvReflectTypeDescription (line 390) | typedef struct SpvReflectTypeDescription {
  type SpvReflectInterfaceVariable (line 424) | typedef struct SpvReflectInterfaceVariable {
  type SpvReflectBlockVariable (line 455) | typedef struct SpvReflectBlockVariable {
  type SpvReflectDescriptorBinding (line 482) | typedef struct SpvReflectDescriptorBinding {
  type SpvReflectDescriptorSet (line 515) | typedef struct SpvReflectDescriptorSet {
  type SpvReflectExecutionModeValue (line 521) | typedef enum SpvReflectExecutionModeValue {
  type SpvReflectEntryPoint (line 528) | typedef struct SpvReflectEntryPoint {
  type SpvReflectCapability (line 565) | typedef struct SpvReflectCapability {
  type SpvReflectSpecializationConstant (line 574) | typedef struct SpvReflectSpecializationConstant {
  type SpvReflectShaderModule (line 583) | typedef struct SpvReflectShaderModule {
  function class (line 1583) | class ShaderModule {

FILE: deps/metal-cpp/MetalSingleHeader.hpp
  type NS::Private (line 52) | namespace NS::Private
    function _Type (line 55) | inline _Type const LoadSymbol(const char* pSymbol)
  type NS (line 102) | namespace NS
    type Private (line 104) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type Private (line 131) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type Private (line 142) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type OperatingSystemVersion (line 553) | struct OperatingSystemVersion
    class Object (line 568) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    function Referencing (line 569) | class _NS_EXPORT Referencing : public _Base
    class Object (line 580) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class Copying (line 581) | class Copying : public Referencing<_Class, _Base>
    class Object (line 587) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class SecureCoding (line 588) | class SecureCoding : public Referencing<_Class, _Base>
    class Object (line 592) | class Object : public Referencing<Object, objc_object>
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    type FastEnumerationState (line 796) | struct FastEnumerationState
    class FastEnumeration (line 804) | class FastEnumeration : public Referencing<FastEnumeration>
    class Enumerator (line 811) | class Enumerator : public Referencing<Enumerator<_ObjectType>, FastEnu...
      class Array (line 815) | class Array
    class Array (line 838) | class Array : public Copying<Array>
      class Coder (line 849) | class Coder
    class AutoreleasePool (line 911) | class AutoreleasePool : public Object
    class Dictionary (line 952) | class Dictionary : public NS::Copying<Dictionary>
      class Coder (line 963) | class Coder
    type Range (line 1042) | struct Range
    class String (line 1267) | class String
    class Notification (line 1269) | class Notification : public NS::Referencing<Notification>
    class NotificationCenter (line 1280) | class NotificationCenter : public NS::Referencing<NotificationCenter>
      class NotificationCenter (line 1283) | class NotificationCenter
    class String (line 1333) | class String
    class String (line 1334) | class String
    class String (line 1335) | class String
    class Bundle (line 1335) | class Bundle
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class String (line 1336) | class String
    class Bundle (line 1336) | class Bundle
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class Bundle (line 1338) | class Bundle : public Referencing<Bundle>
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class Data (line 1592) | class Data : public Copying<Data>
    class Date (line 1615) | class Date : public Copying<Date>
    class String (line 1632) | class String
    class String (line 1639) | class String
    class Error (line 1654) | class Error : public Copying<Error>
      class Dictionary (line 1657) | class Dictionary
      class Dictionary (line 1661) | class Dictionary
      class Dictionary (line 1665) | class Dictionary
      class String (line 1667) | class String
      class Array (line 1668) | class Array
      class String (line 1669) | class String
      class String (line 1670) | class String
    class Object (line 1750) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class Locking (line 1751) | class Locking : public _Base
    class Condition (line 1758) | class Condition : public Locking<Condition>
    class Value (line 1819) | class Value : public Copying<Value>
      class Coder (line 1828) | class Coder
    class Number (line 1837) | class Number : public Copying<Number, Value>
      class Coder (line 1856) | class Coder
      class String (line 1886) | class String
      class String (line 1891) | class String
    class Set (line 2457) | class Set : public NS::Copying <Set>
      class Coder (line 2467) | class Coder
    class SharedPtr (line 2509) | class SharedPtr
    function _NS_INLINE (line 2619) | _NS_INLINE NS::SharedPtr<_Class> RetainPtr(_Class* pObject)
    function _NS_INLINE (line 2632) | _NS_INLINE NS::SharedPtr<_Class> TransferPtr(_Class* pObject)
    class URL (line 2794) | class URL : public Copying<URL>
      class String (line 2797) | class String
      class String (line 2801) | class String
      class String (line 2802) | class String
  type NS (line 129) | namespace NS
    type Private (line 104) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type Private (line 131) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type Private (line 142) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type OperatingSystemVersion (line 553) | struct OperatingSystemVersion
    class Object (line 568) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    function Referencing (line 569) | class _NS_EXPORT Referencing : public _Base
    class Object (line 580) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class Copying (line 581) | class Copying : public Referencing<_Class, _Base>
    class Object (line 587) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class SecureCoding (line 588) | class SecureCoding : public Referencing<_Class, _Base>
    class Object (line 592) | class Object : public Referencing<Object, objc_object>
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    type FastEnumerationState (line 796) | struct FastEnumerationState
    class FastEnumeration (line 804) | class FastEnumeration : public Referencing<FastEnumeration>
    class Enumerator (line 811) | class Enumerator : public Referencing<Enumerator<_ObjectType>, FastEnu...
      class Array (line 815) | class Array
    class Array (line 838) | class Array : public Copying<Array>
      class Coder (line 849) | class Coder
    class AutoreleasePool (line 911) | class AutoreleasePool : public Object
    class Dictionary (line 952) | class Dictionary : public NS::Copying<Dictionary>
      class Coder (line 963) | class Coder
    type Range (line 1042) | struct Range
    class String (line 1267) | class String
    class Notification (line 1269) | class Notification : public NS::Referencing<Notification>
    class NotificationCenter (line 1280) | class NotificationCenter : public NS::Referencing<NotificationCenter>
      class NotificationCenter (line 1283) | class NotificationCenter
    class String (line 1333) | class String
    class String (line 1334) | class String
    class String (line 1335) | class String
    class Bundle (line 1335) | class Bundle
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class String (line 1336) | class String
    class Bundle (line 1336) | class Bundle
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class Bundle (line 1338) | class Bundle : public Referencing<Bundle>
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class Data (line 1592) | class Data : public Copying<Data>
    class Date (line 1615) | class Date : public Copying<Date>
    class String (line 1632) | class String
    class String (line 1639) | class String
    class Error (line 1654) | class Error : public Copying<Error>
      class Dictionary (line 1657) | class Dictionary
      class Dictionary (line 1661) | class Dictionary
      class Dictionary (line 1665) | class Dictionary
      class String (line 1667) | class String
      class Array (line 1668) | class Array
      class String (line 1669) | class String
      class String (line 1670) | class String
    class Object (line 1750) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class Locking (line 1751) | class Locking : public _Base
    class Condition (line 1758) | class Condition : public Locking<Condition>
    class Value (line 1819) | class Value : public Copying<Value>
      class Coder (line 1828) | class Coder
    class Number (line 1837) | class Number : public Copying<Number, Value>
      class Coder (line 1856) | class Coder
      class String (line 1886) | class String
      class String (line 1891) | class String
    class Set (line 2457) | class Set : public NS::Copying <Set>
      class Coder (line 2467) | class Coder
    class SharedPtr (line 2509) | class SharedPtr
    function _NS_INLINE (line 2619) | _NS_INLINE NS::SharedPtr<_Class> RetainPtr(_Class* pObject)
    function _NS_INLINE (line 2632) | _NS_INLINE NS::SharedPtr<_Class> TransferPtr(_Class* pObject)
    class URL (line 2794) | class URL : public Copying<URL>
      class String (line 2797) | class String
      class String (line 2801) | class String
      class String (line 2802) | class String
  type NS (line 140) | namespace NS
    type Private (line 104) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type Private (line 131) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type Private (line 142) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type OperatingSystemVersion (line 553) | struct OperatingSystemVersion
    class Object (line 568) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    function Referencing (line 569) | class _NS_EXPORT Referencing : public _Base
    class Object (line 580) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class Copying (line 581) | class Copying : public Referencing<_Class, _Base>
    class Object (line 587) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class SecureCoding (line 588) | class SecureCoding : public Referencing<_Class, _Base>
    class Object (line 592) | class Object : public Referencing<Object, objc_object>
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    type FastEnumerationState (line 796) | struct FastEnumerationState
    class FastEnumeration (line 804) | class FastEnumeration : public Referencing<FastEnumeration>
    class Enumerator (line 811) | class Enumerator : public Referencing<Enumerator<_ObjectType>, FastEnu...
      class Array (line 815) | class Array
    class Array (line 838) | class Array : public Copying<Array>
      class Coder (line 849) | class Coder
    class AutoreleasePool (line 911) | class AutoreleasePool : public Object
    class Dictionary (line 952) | class Dictionary : public NS::Copying<Dictionary>
      class Coder (line 963) | class Coder
    type Range (line 1042) | struct Range
    class String (line 1267) | class String
    class Notification (line 1269) | class Notification : public NS::Referencing<Notification>
    class NotificationCenter (line 1280) | class NotificationCenter : public NS::Referencing<NotificationCenter>
      class NotificationCenter (line 1283) | class NotificationCenter
    class String (line 1333) | class String
    class String (line 1334) | class String
    class String (line 1335) | class String
    class Bundle (line 1335) | class Bundle
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class String (line 1336) | class String
    class Bundle (line 1336) | class Bundle
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class Bundle (line 1338) | class Bundle : public Referencing<Bundle>
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class Data (line 1592) | class Data : public Copying<Data>
    class Date (line 1615) | class Date : public Copying<Date>
    class String (line 1632) | class String
    class String (line 1639) | class String
    class Error (line 1654) | class Error : public Copying<Error>
      class Dictionary (line 1657) | class Dictionary
      class Dictionary (line 1661) | class Dictionary
      class Dictionary (line 1665) | class Dictionary
      class String (line 1667) | class String
      class Array (line 1668) | class Array
      class String (line 1669) | class String
      class String (line 1670) | class String
    class Object (line 1750) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class Locking (line 1751) | class Locking : public _Base
    class Condition (line 1758) | class Condition : public Locking<Condition>
    class Value (line 1819) | class Value : public Copying<Value>
      class Coder (line 1828) | class Coder
    class Number (line 1837) | class Number : public Copying<Number, Value>
      class Coder (line 1856) | class Coder
      class String (line 1886) | class String
      class String (line 1891) | class String
    class Set (line 2457) | class Set : public NS::Copying <Set>
      class Coder (line 2467) | class Coder
    class SharedPtr (line 2509) | class SharedPtr
    function _NS_INLINE (line 2619) | _NS_INLINE NS::SharedPtr<_Class> RetainPtr(_Class* pObject)
    function _NS_INLINE (line 2632) | _NS_INLINE NS::SharedPtr<_Class> TransferPtr(_Class* pObject)
    class URL (line 2794) | class URL : public Copying<URL>
      class String (line 2797) | class String
      class String (line 2801) | class String
      class String (line 2802) | class String
  type NS (line 542) | namespace NS
    type Private (line 104) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type Private (line 131) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type Private (line 142) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type OperatingSystemVersion (line 553) | struct OperatingSystemVersion
    class Object (line 568) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    function Referencing (line 569) | class _NS_EXPORT Referencing : public _Base
    class Object (line 580) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class Copying (line 581) | class Copying : public Referencing<_Class, _Base>
    class Object (line 587) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class SecureCoding (line 588) | class SecureCoding : public Referencing<_Class, _Base>
    class Object (line 592) | class Object : public Referencing<Object, objc_object>
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    type FastEnumerationState (line 796) | struct FastEnumerationState
    class FastEnumeration (line 804) | class FastEnumeration : public Referencing<FastEnumeration>
    class Enumerator (line 811) | class Enumerator : public Referencing<Enumerator<_ObjectType>, FastEnu...
      class Array (line 815) | class Array
    class Array (line 838) | class Array : public Copying<Array>
      class Coder (line 849) | class Coder
    class AutoreleasePool (line 911) | class AutoreleasePool : public Object
    class Dictionary (line 952) | class Dictionary : public NS::Copying<Dictionary>
      class Coder (line 963) | class Coder
    type Range (line 1042) | struct Range
    class String (line 1267) | class String
    class Notification (line 1269) | class Notification : public NS::Referencing<Notification>
    class NotificationCenter (line 1280) | class NotificationCenter : public NS::Referencing<NotificationCenter>
      class NotificationCenter (line 1283) | class NotificationCenter
    class String (line 1333) | class String
    class String (line 1334) | class String
    class String (line 1335) | class String
    class Bundle (line 1335) | class Bundle
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class String (line 1336) | class String
    class Bundle (line 1336) | class Bundle
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class Bundle (line 1338) | class Bundle : public Referencing<Bundle>
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class Data (line 1592) | class Data : public Copying<Data>
    class Date (line 1615) | class Date : public Copying<Date>
    class String (line 1632) | class String
    class String (line 1639) | class String
    class Error (line 1654) | class Error : public Copying<Error>
      class Dictionary (line 1657) | class Dictionary
      class Dictionary (line 1661) | class Dictionary
      class Dictionary (line 1665) | class Dictionary
      class String (line 1667) | class String
      class Array (line 1668) | class Array
      class String (line 1669) | class String
      class String (line 1670) | class String
    class Object (line 1750) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class Locking (line 1751) | class Locking : public _Base
    class Condition (line 1758) | class Condition : public Locking<Condition>
    class Value (line 1819) | class Value : public Copying<Value>
      class Coder (line 1828) | class Coder
    class Number (line 1837) | class Number : public Copying<Number, Value>
      class Coder (line 1856) | class Coder
      class String (line 1886) | class String
      class String (line 1891) | class String
    class Set (line 2457) | class Set : public NS::Copying <Set>
      class Coder (line 2467) | class Coder
    class SharedPtr (line 2509) | class SharedPtr
    function _NS_INLINE (line 2619) | _NS_INLINE NS::SharedPtr<_Class> RetainPtr(_Class* pObject)
    function _NS_INLINE (line 2632) | _NS_INLINE NS::SharedPtr<_Class> TransferPtr(_Class* pObject)
    class URL (line 2794) | class URL : public Copying<URL>
      class String (line 2797) | class String
      class String (line 2801) | class String
      class String (line 2802) | class String
  type NS (line 566) | namespace NS
    type Private (line 104) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type Private (line 131) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type Private (line 142) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type OperatingSystemVersion (line 553) | struct OperatingSystemVersion
    class Object (line 568) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    function Referencing (line 569) | class _NS_EXPORT Referencing : public _Base
    class Object (line 580) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class Copying (line 581) | class Copying : public Referencing<_Class, _Base>
    class Object (line 587) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class SecureCoding (line 588) | class SecureCoding : public Referencing<_Class, _Base>
    class Object (line 592) | class Object : public Referencing<Object, objc_object>
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    type FastEnumerationState (line 796) | struct FastEnumerationState
    class FastEnumeration (line 804) | class FastEnumeration : public Referencing<FastEnumeration>
    class Enumerator (line 811) | class Enumerator : public Referencing<Enumerator<_ObjectType>, FastEnu...
      class Array (line 815) | class Array
    class Array (line 838) | class Array : public Copying<Array>
      class Coder (line 849) | class Coder
    class AutoreleasePool (line 911) | class AutoreleasePool : public Object
    class Dictionary (line 952) | class Dictionary : public NS::Copying<Dictionary>
      class Coder (line 963) | class Coder
    type Range (line 1042) | struct Range
    class String (line 1267) | class String
    class Notification (line 1269) | class Notification : public NS::Referencing<Notification>
    class NotificationCenter (line 1280) | class NotificationCenter : public NS::Referencing<NotificationCenter>
      class NotificationCenter (line 1283) | class NotificationCenter
    class String (line 1333) | class String
    class String (line 1334) | class String
    class String (line 1335) | class String
    class Bundle (line 1335) | class Bundle
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class String (line 1336) | class String
    class Bundle (line 1336) | class Bundle
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class Bundle (line 1338) | class Bundle : public Referencing<Bundle>
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class Data (line 1592) | class Data : public Copying<Data>
    class Date (line 1615) | class Date : public Copying<Date>
    class String (line 1632) | class String
    class String (line 1639) | class String
    class Error (line 1654) | class Error : public Copying<Error>
      class Dictionary (line 1657) | class Dictionary
      class Dictionary (line 1661) | class Dictionary
      class Dictionary (line 1665) | class Dictionary
      class String (line 1667) | class String
      class Array (line 1668) | class Array
      class String (line 1669) | class String
      class String (line 1670) | class String
    class Object (line 1750) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class Locking (line 1751) | class Locking : public _Base
    class Condition (line 1758) | class Condition : public Locking<Condition>
    class Value (line 1819) | class Value : public Copying<Value>
      class Coder (line 1828) | class Coder
    class Number (line 1837) | class Number : public Copying<Number, Value>
      class Coder (line 1856) | class Coder
      class String (line 1886) | class String
      class String (line 1891) | class String
    class Set (line 2457) | class Set : public NS::Copying <Set>
      class Coder (line 2467) | class Coder
    class SharedPtr (line 2509) | class SharedPtr
    function _NS_INLINE (line 2619) | _NS_INLINE NS::SharedPtr<_Class> RetainPtr(_Class* pObject)
    function _NS_INLINE (line 2632) | _NS_INLINE NS::SharedPtr<_Class> TransferPtr(_Class* pObject)
    class URL (line 2794) | class URL : public Copying<URL>
      class String (line 2797) | class String
      class String (line 2801) | class String
      class String (line 2802) | class String
  function _NS_INLINE (line 632) | _NS_INLINE _Class* NS::Referencing<_Class, _Base>::retain()
  function _NS_INLINE (line 638) | _NS_INLINE void NS::Referencing<_Class, _Base>::release()
  function _NS_INLINE (line 644) | _NS_INLINE _Class* NS::Referencing<_Class, _Base>::autorelease()
  function _NS_INLINE (line 650) | _NS_INLINE NS::UInteger NS::Referencing<_Class, _Base>::retainCount() const
  function _NS_INLINE (line 656) | _NS_INLINE _Class* NS::Copying<_Class, _Base>::copy() const
  function _NS_INLINE (line 662) | _NS_INLINE _Dst NS::Object::bridgingCast(const void* pObj)
  function _NS_INLINE (line 672) | _NS_INLINE constexpr bool NS::Object::doesRequireMsgSendStret()
  function _NS_INLINE (line 690) | _NS_INLINE constexpr bool NS::Object::doesRequireMsgSendStret<void>()
  function _NS_INLINE (line 696) | _NS_INLINE _Ret NS::Object::sendMessage(const void* pObj, SEL selector, ...
  function _NS_INLINE (line 732) | _NS_INLINE NS::MethodSignature* NS::Object::methodSignatureForSelector(c...
  function _NS_INLINE (line 737) | _NS_INLINE bool NS::Object::respondsToSelector(const void* pObj, SEL sel...
  function _NS_INLINE (line 743) | _NS_INLINE _Ret NS::Object::sendMessageSafe(const void* pObj, SEL select...
  function _NS_INLINE (line 757) | _NS_INLINE _Class* NS::Object::alloc(const char* pClassName)
  function _NS_INLINE (line 763) | _NS_INLINE _Class* NS::Object::alloc(const void* pClass)
  function _NS_INLINE (line 769) | _NS_INLINE _Class* NS::Object::init()
  function _NS_INLINE (line 774) | _NS_INLINE NS::UInteger NS::Object::hash() const
  function _NS_INLINE (line 779) | _NS_INLINE bool NS::Object::isEqual(const Object* pObject) const
  function _NS_INLINE (line 784) | _NS_INLINE NS::String* NS::Object::description() const
  function _NS_INLINE (line 789) | _NS_INLINE NS::String* NS::Object::debugDescription() const
  type NS (line 794) | namespace NS
    type Private (line 104) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type Private (line 131) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type Private (line 142) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type OperatingSystemVersion (line 553) | struct OperatingSystemVersion
    class Object (line 568) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    function Referencing (line 569) | class _NS_EXPORT Referencing : public _Base
    class Object (line 580) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class Copying (line 581) | class Copying : public Referencing<_Class, _Base>
    class Object (line 587) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class SecureCoding (line 588) | class SecureCoding : public Referencing<_Class, _Base>
    class Object (line 592) | class Object : public Referencing<Object, objc_object>
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    type FastEnumerationState (line 796) | struct FastEnumerationState
    class FastEnumeration (line 804) | class FastEnumeration : public Referencing<FastEnumeration>
    class Enumerator (line 811) | class Enumerator : public Referencing<Enumerator<_ObjectType>, FastEnu...
      class Array (line 815) | class Array
    class Array (line 838) | class Array : public Copying<Array>
      class Coder (line 849) | class Coder
    class AutoreleasePool (line 911) | class AutoreleasePool : public Object
    class Dictionary (line 952) | class Dictionary : public NS::Copying<Dictionary>
      class Coder (line 963) | class Coder
    type Range (line 1042) | struct Range
    class String (line 1267) | class String
    class Notification (line 1269) | class Notification : public NS::Referencing<Notification>
    class NotificationCenter (line 1280) | class NotificationCenter : public NS::Referencing<NotificationCenter>
      class NotificationCenter (line 1283) | class NotificationCenter
    class String (line 1333) | class String
    class String (line 1334) | class String
    class String (line 1335) | class String
    class Bundle (line 1335) | class Bundle
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class String (line 1336) | class String
    class Bundle (line 1336) | class Bundle
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class Bundle (line 1338) | class Bundle : public Referencing<Bundle>
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class Data (line 1592) | class Data : public Copying<Data>
    class Date (line 1615) | class Date : public Copying<Date>
    class String (line 1632) | class String
    class String (line 1639) | class String
    class Error (line 1654) | class Error : public Copying<Error>
      class Dictionary (line 1657) | class Dictionary
      class Dictionary (line 1661) | class Dictionary
      class Dictionary (line 1665) | class Dictionary
      class String (line 1667) | class String
      class Array (line 1668) | class Array
      class String (line 1669) | class String
      class String (line 1670) | class String
    class Object (line 1750) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class Locking (line 1751) | class Locking : public _Base
    class Condition (line 1758) | class Condition : public Locking<Condition>
    class Value (line 1819) | class Value : public Copying<Value>
      class Coder (line 1828) | class Coder
    class Number (line 1837) | class Number : public Copying<Number, Value>
      class Coder (line 1856) | class Coder
      class String (line 1886) | class String
      class String (line 1891) | class String
    class Set (line 2457) | class Set : public NS::Copying <Set>
      class Coder (line 2467) | class Coder
    class SharedPtr (line 2509) | class SharedPtr
    function _NS_INLINE (line 2619) | _NS_INLINE NS::SharedPtr<_Class> RetainPtr(_Class* pObject)
    function _NS_INLINE (line 2632) | _NS_INLINE NS::SharedPtr<_Class> TransferPtr(_Class* pObject)
    class URL (line 2794) | class URL : public Copying<URL>
      class String (line 2797) | class String
      class String (line 2801) | class String
      class String (line 2802) | class String
  function _NS_INLINE (line 819) | _NS_INLINE NS::UInteger NS::FastEnumeration::countByEnumerating(FastEnum...
  function _NS_INLINE (line 825) | _NS_INLINE _ObjectType* NS::Enumerator<_ObjectType>::nextObject()
  function _NS_INLINE (line 831) | _NS_INLINE NS::Array* NS::Enumerator<_ObjectType>::allObjects()
  type NS (line 836) | namespace NS
    type Private (line 104) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type Private (line 131) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type Private (line 142) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type OperatingSystemVersion (line 553) | struct OperatingSystemVersion
    class Object (line 568) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    function Referencing (line 569) | class _NS_EXPORT Referencing : public _Base
    class Object (line 580) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class Copying (line 581) | class Copying : public Referencing<_Class, _Base>
    class Object (line 587) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class SecureCoding (line 588) | class SecureCoding : public Referencing<_Class, _Base>
    class Object (line 592) | class Object : public Referencing<Object, objc_object>
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    type FastEnumerationState (line 796) | struct FastEnumerationState
    class FastEnumeration (line 804) | class FastEnumeration : public Referencing<FastEnumeration>
    class Enumerator (line 811) | class Enumerator : public Referencing<Enumerator<_ObjectType>, FastEnu...
      class Array (line 815) | class Array
    class Array (line 838) | class Array : public Copying<Array>
      class Coder (line 849) | class Coder
    class AutoreleasePool (line 911) | class AutoreleasePool : public Object
    class Dictionary (line 952) | class Dictionary : public NS::Copying<Dictionary>
      class Coder (line 963) | class Coder
    type Range (line 1042) | struct Range
    class String (line 1267) | class String
    class Notification (line 1269) | class Notification : public NS::Referencing<Notification>
    class NotificationCenter (line 1280) | class NotificationCenter : public NS::Referencing<NotificationCenter>
      class NotificationCenter (line 1283) | class NotificationCenter
    class String (line 1333) | class String
    class String (line 1334) | class String
    class String (line 1335) | class String
    class Bundle (line 1335) | class Bundle
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class String (line 1336) | class String
    class Bundle (line 1336) | class Bundle
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class Bundle (line 1338) | class Bundle : public Referencing<Bundle>
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class Data (line 1592) | class Data : public Copying<Data>
    class Date (line 1615) | class Date : public Copying<Date>
    class String (line 1632) | class String
    class String (line 1639) | class String
    class Error (line 1654) | class Error : public Copying<Error>
      class Dictionary (line 1657) | class Dictionary
      class Dictionary (line 1661) | class Dictionary
      class Dictionary (line 1665) | class Dictionary
      class String (line 1667) | class String
      class Array (line 1668) | class Array
      class String (line 1669) | class String
      class String (line 1670) | class String
    class Object (line 1750) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class Locking (line 1751) | class Locking : public _Base
    class Condition (line 1758) | class Condition : public Locking<Condition>
    class Value (line 1819) | class Value : public Copying<Value>
      class Coder (line 1828) | class Coder
    class Number (line 1837) | class Number : public Copying<Number, Value>
      class Coder (line 1856) | class Coder
      class String (line 1886) | class String
      class String (line 1891) | class String
    class Set (line 2457) | class Set : public NS::Copying <Set>
      class Coder (line 2467) | class Coder
    class SharedPtr (line 2509) | class SharedPtr
    function _NS_INLINE (line 2619) | _NS_INLINE NS::SharedPtr<_Class> RetainPtr(_Class* pObject)
    function _NS_INLINE (line 2632) | _NS_INLINE NS::SharedPtr<_Class> TransferPtr(_Class* pObject)
    class URL (line 2794) | class URL : public Copying<URL>
      class String (line 2797) | class String
      class String (line 2801) | class String
      class String (line 2802) | class String
  function _NS_INLINE (line 858) | _NS_INLINE NS::Array* NS::Array::array()
  function _NS_INLINE (line 863) | _NS_INLINE NS::Array* NS::Array::array(const Object* pObject)
  function _NS_INLINE (line 868) | _NS_INLINE NS::Array* NS::Array::array(const Object* const* pObjects, UI...
  function _NS_INLINE (line 873) | _NS_INLINE NS::Array* NS::Array::alloc()
  function _NS_INLINE (line 878) | _NS_INLINE NS::Array* NS::Array::init()
  function _NS_INLINE (line 883) | _NS_INLINE NS::Array* NS::Array::init(const Object* const* pObjects, UIn...
  function _NS_INLINE (line 888) | _NS_INLINE NS::Array* NS::Array::init(const class Coder* pCoder)
  function _NS_INLINE (line 893) | _NS_INLINE NS::UInteger NS::Array::count() const
  function _NS_INLINE (line 899) | _NS_INLINE _Object* NS::Array::object(UInteger index) const
  function _NS_INLINE (line 904) | _NS_INLINE NS::Enumerator<NS::Object>* NS::Array::objectEnumerator() const
  type NS (line 909) | namespace NS
    type Private (line 104) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type Private (line 131) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type Private (line 142) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type OperatingSystemVersion (line 553) | struct OperatingSystemVersion
    class Object (line 568) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    function Referencing (line 569) | class _NS_EXPORT Referencing : public _Base
    class Object (line 580) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class Copying (line 581) | class Copying : public Referencing<_Class, _Base>
    class Object (line 587) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class SecureCoding (line 588) | class SecureCoding : public Referencing<_Class, _Base>
    class Object (line 592) | class Object : public Referencing<Object, objc_object>
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    type FastEnumerationState (line 796) | struct FastEnumerationState
    class FastEnumeration (line 804) | class FastEnumeration : public Referencing<FastEnumeration>
    class Enumerator (line 811) | class Enumerator : public Referencing<Enumerator<_ObjectType>, FastEnu...
      class Array (line 815) | class Array
    class Array (line 838) | class Array : public Copying<Array>
      class Coder (line 849) | class Coder
    class AutoreleasePool (line 911) | class AutoreleasePool : public Object
    class Dictionary (line 952) | class Dictionary : public NS::Copying<Dictionary>
      class Coder (line 963) | class Coder
    type Range (line 1042) | struct Range
    class String (line 1267) | class String
    class Notification (line 1269) | class Notification : public NS::Referencing<Notification>
    class NotificationCenter (line 1280) | class NotificationCenter : public NS::Referencing<NotificationCenter>
      class NotificationCenter (line 1283) | class NotificationCenter
    class String (line 1333) | class String
    class String (line 1334) | class String
    class String (line 1335) | class String
    class Bundle (line 1335) | class Bundle
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class String (line 1336) | class String
    class Bundle (line 1336) | class Bundle
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class Bundle (line 1338) | class Bundle : public Referencing<Bundle>
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class Data (line 1592) | class Data : public Copying<Data>
    class Date (line 1615) | class Date : public Copying<Date>
    class String (line 1632) | class String
    class String (line 1639) | class String
    class Error (line 1654) | class Error : public Copying<Error>
      class Dictionary (line 1657) | class Dictionary
      class Dictionary (line 1661) | class Dictionary
      class Dictionary (line 1665) | class Dictionary
      class String (line 1667) | class String
      class Array (line 1668) | class Array
      class String (line 1669) | class String
      class String (line 1670) | class String
    class Object (line 1750) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class Locking (line 1751) | class Locking : public _Base
    class Condition (line 1758) | class Condition : public Locking<Condition>
    class Value (line 1819) | class Value : public Copying<Value>
      class Coder (line 1828) | class Coder
    class Number (line 1837) | class Number : public Copying<Number, Value>
      class Coder (line 1856) | class Coder
      class String (line 1886) | class String
      class String (line 1891) | class String
    class Set (line 2457) | class Set : public NS::Copying <Set>
      class Coder (line 2467) | class Coder
    class SharedPtr (line 2509) | class SharedPtr
    function _NS_INLINE (line 2619) | _NS_INLINE NS::SharedPtr<_Class> RetainPtr(_Class* pObject)
    function _NS_INLINE (line 2632) | _NS_INLINE NS::SharedPtr<_Class> TransferPtr(_Class* pObject)
    class URL (line 2794) | class URL : public Copying<URL>
      class String (line 2797) | class String
      class String (line 2801) | class String
      class String (line 2802) | class String
  function _NS_INLINE (line 925) | _NS_INLINE NS::AutoreleasePool* NS::AutoreleasePool::alloc()
  function _NS_INLINE (line 930) | _NS_INLINE NS::AutoreleasePool* NS::AutoreleasePool::init()
  function _NS_INLINE (line 935) | _NS_INLINE void NS::AutoreleasePool::drain()
  function _NS_INLINE (line 940) | _NS_INLINE void NS::AutoreleasePool::addObject(Object* pObject)
  function _NS_INLINE (line 945) | _NS_INLINE void NS::AutoreleasePool::showPools()
  type NS (line 950) | namespace NS
    type Private (line 104) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type Private (line 131) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type Private (line 142) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type OperatingSystemVersion (line 553) | struct OperatingSystemVersion
    class Object (line 568) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    function Referencing (line 569) | class _NS_EXPORT Referencing : public _Base
    class Object (line 580) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class Copying (line 581) | class Copying : public Referencing<_Class, _Base>
    class Object (line 587) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class SecureCoding (line 588) | class SecureCoding : public Referencing<_Class, _Base>
    class Object (line 592) | class Object : public Referencing<Object, objc_object>
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    type FastEnumerationState (line 796) | struct FastEnumerationState
    class FastEnumeration (line 804) | class FastEnumeration : public Referencing<FastEnumeration>
    class Enumerator (line 811) | class Enumerator : public Referencing<Enumerator<_ObjectType>, FastEnu...
      class Array (line 815) | class Array
    class Array (line 838) | class Array : public Copying<Array>
      class Coder (line 849) | class Coder
    class AutoreleasePool (line 911) | class AutoreleasePool : public Object
    class Dictionary (line 952) | class Dictionary : public NS::Copying<Dictionary>
      class Coder (line 963) | class Coder
    type Range (line 1042) | struct Range
    class String (line 1267) | class String
    class Notification (line 1269) | class Notification : public NS::Referencing<Notification>
    class NotificationCenter (line 1280) | class NotificationCenter : public NS::Referencing<NotificationCenter>
      class NotificationCenter (line 1283) | class NotificationCenter
    class String (line 1333) | class String
    class String (line 1334) | class String
    class String (line 1335) | class String
    class Bundle (line 1335) | class Bundle
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class String (line 1336) | class String
    class Bundle (line 1336) | class Bundle
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class Bundle (line 1338) | class Bundle : public Referencing<Bundle>
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class Data (line 1592) | class Data : public Copying<Data>
    class Date (line 1615) | class Date : public Copying<Date>
    class String (line 1632) | class String
    class String (line 1639) | class String
    class Error (line 1654) | class Error : public Copying<Error>
      class Dictionary (line 1657) | class Dictionary
      class Dictionary (line 1661) | class Dictionary
      class Dictionary (line 1665) | class Dictionary
      class String (line 1667) | class String
      class Array (line 1668) | class Array
      class String (line 1669) | class String
      class String (line 1670) | class String
    class Object (line 1750) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class Locking (line 1751) | class Locking : public _Base
    class Condition (line 1758) | class Condition : public Locking<Condition>
    class Value (line 1819) | class Value : public Copying<Value>
      class Coder (line 1828) | class Coder
    class Number (line 1837) | class Number : public Copying<Number, Value>
      class Coder (line 1856) | class Coder
      class String (line 1886) | class String
      class String (line 1891) | class String
    class Set (line 2457) | class Set : public NS::Copying <Set>
      class Coder (line 2467) | class Coder
    class SharedPtr (line 2509) | class SharedPtr
    function _NS_INLINE (line 2619) | _NS_INLINE NS::SharedPtr<_Class> RetainPtr(_Class* pObject)
    function _NS_INLINE (line 2632) | _NS_INLINE NS::SharedPtr<_Class> TransferPtr(_Class* pObject)
    class URL (line 2794) | class URL : public Copying<URL>
      class String (line 2797) | class String
      class String (line 2801) | class String
      class String (line 2802) | class String
  function _NS_INLINE (line 974) | _NS_INLINE NS::Dictionary* NS::Dictionary::dictionary()
  function _NS_INLINE (line 979) | _NS_INLINE NS::Dictionary* NS::Dictionary::dictionary(const Object* pObj...
  function _NS_INLINE (line 984) | _NS_INLINE NS::Dictionary* NS::Dictionary::dictionary(const Object* cons...
  function _NS_INLINE (line 990) | _NS_INLINE NS::Dictionary* NS::Dictionary::alloc()
  function _NS_INLINE (line 995) | _NS_INLINE NS::Dictionary* NS::Dictionary::init()
  function _NS_INLINE (line 1000) | _NS_INLINE NS::Dictionary* NS::Dictionary::init(const Object* const* pOb...
  function _NS_INLINE (line 1005) | _NS_INLINE NS::Dictionary* NS::Dictionary::init(const class Coder* pCoder)
  function _NS_INLINE (line 1011) | _NS_INLINE NS::Enumerator<_KeyType>* NS::Dictionary::keyEnumerator() const
  function _NS_INLINE (line 1017) | _NS_INLINE _Object* NS::Dictionary::object(const Object* pKey) const
  function _NS_INLINE (line 1022) | _NS_INLINE NS::UInteger NS::Dictionary::count() const
  function _NS_ENUM (line 1030) | _NS_ENUM(Integer, ComparisonResult) {
  type NS (line 1040) | namespace NS
    type Private (line 104) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type Private (line 131) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type Private (line 142) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type OperatingSystemVersion (line 553) | struct OperatingSystemVersion
    class Object (line 568) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    function Referencing (line 569) | class _NS_EXPORT Referencing : public _Base
    class Object (line 580) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class Copying (line 581) | class Copying : public Referencing<_Class, _Base>
    class Object (line 587) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class SecureCoding (line 588) | class SecureCoding : public Referencing<_Class, _Base>
    class Object (line 592) | class Object : public Referencing<Object, objc_object>
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    type FastEnumerationState (line 796) | struct FastEnumerationState
    class FastEnumeration (line 804) | class FastEnumeration : public Referencing<FastEnumeration>
    class Enumerator (line 811) | class Enumerator : public Referencing<Enumerator<_ObjectType>, FastEnu...
      class Array (line 815) | class Array
    class Array (line 838) | class Array : public Copying<Array>
      class Coder (line 849) | class Coder
    class AutoreleasePool (line 911) | class AutoreleasePool : public Object
    class Dictionary (line 952) | class Dictionary : public NS::Copying<Dictionary>
      class Coder (line 963) | class Coder
    type Range (line 1042) | struct Range
    class String (line 1267) | class String
    class Notification (line 1269) | class Notification : public NS::Referencing<Notification>
    class NotificationCenter (line 1280) | class NotificationCenter : public NS::Referencing<NotificationCenter>
      class NotificationCenter (line 1283) | class NotificationCenter
    class String (line 1333) | class String
    class String (line 1334) | class String
    class String (line 1335) | class String
    class Bundle (line 1335) | class Bundle
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class String (line 1336) | class String
    class Bundle (line 1336) | class Bundle
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class Bundle (line 1338) | class Bundle : public Referencing<Bundle>
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class Data (line 1592) | class Data : public Copying<Data>
    class Date (line 1615) | class Date : public Copying<Date>
    class String (line 1632) | class String
    class String (line 1639) | class String
    class Error (line 1654) | class Error : public Copying<Error>
      class Dictionary (line 1657) | class Dictionary
      class Dictionary (line 1661) | class Dictionary
      class Dictionary (line 1665) | class Dictionary
      class String (line 1667) | class String
      class Array (line 1668) | class Array
      class String (line 1669) | class String
      class String (line 1670) | class String
    class Object (line 1750) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class Locking (line 1751) | class Locking : public _Base
    class Condition (line 1758) | class Condition : public Locking<Condition>
    class Value (line 1819) | class Value : public Copying<Value>
      class Coder (line 1828) | class Coder
    class Number (line 1837) | class Number : public Copying<Number, Value>
      class Coder (line 1856) | class Coder
      class String (line 1886) | class String
      class String (line 1891) | class String
    class Set (line 2457) | class Set : public NS::Copying <Set>
      class Coder (line 2467) | class Coder
    class SharedPtr (line 2509) | class SharedPtr
    function _NS_INLINE (line 2619) | _NS_INLINE NS::SharedPtr<_Class> RetainPtr(_Class* pObject)
    function _NS_INLINE (line 2632) | _NS_INLINE NS::SharedPtr<_Class> TransferPtr(_Class* pObject)
    class URL (line 2794) | class URL : public Copying<URL>
      class String (line 2797) | class String
      class String (line 2801) | class String
      class String (line 2802) | class String
  function _NS_INLINE (line 1057) | _NS_INLINE NS::Range::Range(UInteger loc, UInteger len)
  function _NS_INLINE (line 1068) | _NS_INLINE bool NS::Range::Equal(const Range& range) const
  function _NS_INLINE (line 1073) | _NS_INLINE bool NS::Range::LocationInRange(UInteger loc) const
  function _NS_INLINE (line 1078) | _NS_INLINE NS::UInteger NS::Range::Max() const
  function _NS_OPTIONS (line 1114) | _NS_OPTIONS(NS::UInteger, StringCompareOptions) {
  function _NS_INLINE (line 1168) | _NS_INLINE NS::String* NS::String::string()
  function _NS_INLINE (line 1173) | _NS_INLINE NS::String* NS::String::string(const String* pString)
  function _NS_INLINE (line 1178) | _NS_INLINE NS::String* NS::String::string(const char* pString, StringEnc...
  function _NS_INLINE (line 1183) | _NS_INLINE NS::String* NS::String::alloc()
  function _NS_INLINE (line 1188) | _NS_INLINE NS::String* NS::String::init()
  function _NS_INLINE (line 1193) | _NS_INLINE NS::String* NS::String::init(const String* pString)
  function _NS_INLINE (line 1198) | _NS_INLINE NS::String* NS::String::init(const char* pString, StringEncod...
  function _NS_INLINE (line 1203) | _NS_INLINE NS::String* NS::String::init(void* pBytes, UInteger len, Stri...
  function _NS_INLINE (line 1208) | _NS_INLINE NS::unichar NS::String::character(UInteger index) const
  function _NS_INLINE (line 1213) | _NS_INLINE NS::UInteger NS::String::length() const
  function _NS_INLINE (line 1218) | _NS_INLINE const char* NS::String::cString(StringEncoding encoding) const
  function _NS_INLINE (line 1223) | _NS_INLINE const char* NS::String::utf8String() const
  function _NS_INLINE (line 1228) | _NS_INLINE NS::UInteger NS::String::maximumLengthOfBytes(StringEncoding ...
  function _NS_INLINE (line 1233) | _NS_INLINE NS::UInteger NS::String::lengthOfBytes(StringEncoding encodin...
  function _NS_INLINE (line 1238) | _NS_INLINE bool NS::String::isEqualToString(const NS::String* pString) c...
  function _NS_INLINE (line 1243) | _NS_INLINE NS::Range NS::String::rangeOfString(const NS::String* pString...
  function _NS_INLINE (line 1248) | _NS_INLINE const char* NS::String::fileSystemRepresentation() const
  function _NS_INLINE (line 1253) | _NS_INLINE NS::String* NS::String::stringByAppendingString(const String*...
  function _NS_INLINE (line 1258) | _NS_INLINE NS::ComparisonResult NS::String::caseInsensitiveCompare(const...
  type NS (line 1265) | namespace NS
    type Private (line 104) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type Private (line 131) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type Private (line 142) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type OperatingSystemVersion (line 553) | struct OperatingSystemVersion
    class Object (line 568) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    function Referencing (line 569) | class _NS_EXPORT Referencing : public _Base
    class Object (line 580) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class Copying (line 581) | class Copying : public Referencing<_Class, _Base>
    class Object (line 587) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class SecureCoding (line 588) | class SecureCoding : public Referencing<_Class, _Base>
    class Object (line 592) | class Object : public Referencing<Object, objc_object>
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    type FastEnumerationState (line 796) | struct FastEnumerationState
    class FastEnumeration (line 804) | class FastEnumeration : public Referencing<FastEnumeration>
    class Enumerator (line 811) | class Enumerator : public Referencing<Enumerator<_ObjectType>, FastEnu...
      class Array (line 815) | class Array
    class Array (line 838) | class Array : public Copying<Array>
      class Coder (line 849) | class Coder
    class AutoreleasePool (line 911) | class AutoreleasePool : public Object
    class Dictionary (line 952) | class Dictionary : public NS::Copying<Dictionary>
      class Coder (line 963) | class Coder
    type Range (line 1042) | struct Range
    class String (line 1267) | class String
    class Notification (line 1269) | class Notification : public NS::Referencing<Notification>
    class NotificationCenter (line 1280) | class NotificationCenter : public NS::Referencing<NotificationCenter>
      class NotificationCenter (line 1283) | class NotificationCenter
    class String (line 1333) | class String
    class String (line 1334) | class String
    class String (line 1335) | class String
    class Bundle (line 1335) | class Bundle
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class String (line 1336) | class String
    class Bundle (line 1336) | class Bundle
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class Bundle (line 1338) | class Bundle : public Referencing<Bundle>
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class Data (line 1592) | class Data : public Copying<Data>
    class Date (line 1615) | class Date : public Copying<Date>
    class String (line 1632) | class String
    class String (line 1639) | class String
    class Error (line 1654) | class Error : public Copying<Error>
      class Dictionary (line 1657) | class Dictionary
      class Dictionary (line 1661) | class Dictionary
      class Dictionary (line 1665) | class Dictionary
      class String (line 1667) | class String
      class Array (line 1668) | class Array
      class String (line 1669) | class String
      class String (line 1670) | class String
    class Object (line 1750) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class Locking (line 1751) | class Locking : public _Base
    class Condition (line 1758) | class Condition : public Locking<Condition>
    class Value (line 1819) | class Value : public Copying<Value>
      class Coder (line 1828) | class Coder
    class Number (line 1837) | class Number : public Copying<Number, Value>
      class Coder (line 1856) | class Coder
      class String (line 1886) | class String
      class String (line 1891) | class String
    class Set (line 2457) | class Set : public NS::Copying <Set>
      class Coder (line 2467) | class Coder
    class SharedPtr (line 2509) | class SharedPtr
    function _NS_INLINE (line 2619) | _NS_INLINE NS::SharedPtr<_Class> RetainPtr(_Class* pObject)
    function _NS_INLINE (line 2632) | _NS_INLINE NS::SharedPtr<_Class> TransferPtr(_Class* pObject)
    class URL (line 2794) | class URL : public Copying<URL>
      class String (line 2797) | class String
      class String (line 2801) | class String
      class String (line 2802) | class String
  function _NS_INLINE (line 1291) | _NS_INLINE NS::String* NS::Notification::name() const
  function _NS_INLINE (line 1296) | _NS_INLINE NS::Object* NS::Notification::object() const
  function _NS_INLINE (line 1301) | _NS_INLINE NS::Dictionary* NS::Notification::userInfo() const
  function _NS_INLINE (line 1306) | _NS_INLINE NS::NotificationCenter* NS::NotificationCenter::defaultCenter()
  function _NS_INLINE (line 1311) | _NS_INLINE NS::Object* NS::NotificationCenter::addObserver(NS::Notificat...
  function _NS_INLINE (line 1316) | _NS_INLINE NS::Object* NS::NotificationCenter::addObserver(NS::Notificat...
  function _NS_INLINE (line 1323) | _NS_INLINE void NS::NotificationCenter::removeObserver(Object* pObserver)
  type NS (line 1328) | namespace NS
    type Private (line 104) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type Private (line 131) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type Private (line 142) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type OperatingSystemVersion (line 553) | struct OperatingSystemVersion
    class Object (line 568) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    function Referencing (line 569) | class _NS_EXPORT Referencing : public _Base
    class Object (line 580) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class Copying (line 581) | class Copying : public Referencing<_Class, _Base>
    class Object (line 587) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class SecureCoding (line 588) | class SecureCoding : public Referencing<_Class, _Base>
    class Object (line 592) | class Object : public Referencing<Object, objc_object>
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    type FastEnumerationState (line 796) | struct FastEnumerationState
    class FastEnumeration (line 804) | class FastEnumeration : public Referencing<FastEnumeration>
    class Enumerator (line 811) | class Enumerator : public Referencing<Enumerator<_ObjectType>, FastEnu...
      class Array (line 815) | class Array
    class Array (line 838) | class Array : public Copying<Array>
      class Coder (line 849) | class Coder
    class AutoreleasePool (line 911) | class AutoreleasePool : public Object
    class Dictionary (line 952) | class Dictionary : public NS::Copying<Dictionary>
      class Coder (line 963) | class Coder
    type Range (line 1042) | struct Range
    class String (line 1267) | class String
    class Notification (line 1269) | class Notification : public NS::Referencing<Notification>
    class NotificationCenter (line 1280) | class NotificationCenter : public NS::Referencing<NotificationCenter>
      class NotificationCenter (line 1283) | class NotificationCenter
    class String (line 1333) | class String
    class String (line 1334) | class String
    class String (line 1335) | class String
    class Bundle (line 1335) | class Bundle
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class String (line 1336) | class String
    class Bundle (line 1336) | class Bundle
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class Bundle (line 1338) | class Bundle : public Referencing<Bundle>
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class Data (line 1592) | class Data : public Copying<Data>
    class Date (line 1615) | class Date : public Copying<Date>
    class String (line 1632) | class String
    class String (line 1639) | class String
    class Error (line 1654) | class Error : public Copying<Error>
      class Dictionary (line 1657) | class Dictionary
      class Dictionary (line 1661) | class Dictionary
      class Dictionary (line 1665) | class Dictionary
      class String (line 1667) | class String
      class Array (line 1668) | class Array
      class String (line 1669) | class String
      class String (line 1670) | class String
    class Object (line 1750) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class Locking (line 1751) | class Locking : public _Base
    class Condition (line 1758) | class Condition : public Locking<Condition>
    class Value (line 1819) | class Value : public Copying<Value>
      class Coder (line 1828) | class Coder
    class Number (line 1837) | class Number : public Copying<Number, Value>
      class Coder (line 1856) | class Coder
      class String (line 1886) | class String
      class String (line 1891) | class String
    class Set (line 2457) | class Set : public NS::Copying <Set>
      class Coder (line 2467) | class Coder
    class SharedPtr (line 2509) | class SharedPtr
    function _NS_INLINE (line 2619) | _NS_INLINE NS::SharedPtr<_Class> RetainPtr(_Class* pObject)
    function _NS_INLINE (line 2632) | _NS_INLINE NS::SharedPtr<_Class> TransferPtr(_Class* pObject)
    class URL (line 2794) | class URL : public Copying<URL>
      class String (line 2797) | class String
      class String (line 2801) | class String
      class String (line 2802) | class String
  function _NS_INLINE (line 1395) | _NS_INLINE NS::String* NS::LocalizedString(const String* pKey, const Str...
  function _NS_INLINE (line 1400) | _NS_INLINE NS::String* NS::LocalizedStringFromTable(const String* pKey, ...
  function _NS_INLINE (line 1405) | _NS_INLINE NS::String* NS::LocalizedStringFromTableInBundle(const String...
  function _NS_INLINE (line 1410) | _NS_INLINE NS::String* NS::LocalizedStringWithDefaultValue(const String*...
  function _NS_INLINE (line 1415) | _NS_INLINE NS::Bundle* NS::Bundle::mainBundle()
  function _NS_INLINE (line 1420) | _NS_INLINE NS::Bundle* NS::Bundle::bundle(const class String* pPath)
  function _NS_INLINE (line 1425) | _NS_INLINE NS::Bundle* NS::Bundle::bundle(const class URL* pURL)
  function _NS_INLINE (line 1430) | _NS_INLINE NS::Array* NS::Bundle::allBundles()
  function _NS_INLINE (line 1435) | _NS_INLINE NS::Array* NS::Bundle::allFrameworks()
  function _NS_INLINE (line 1440) | _NS_INLINE NS::Bundle* NS::Bundle::alloc()
  function _NS_INLINE (line 1445) | _NS_INLINE NS::Bundle* NS::Bundle::init(const String* pPath)
  function _NS_INLINE (line 1450) | _NS_INLINE NS::Bundle* NS::Bundle::init(const URL* pURL)
  function _NS_INLINE (line 1455) | _NS_INLINE bool NS::Bundle::load()
  function _NS_INLINE (line 1460) | _NS_INLINE bool NS::Bundle::unload()
  function _NS_INLINE (line 1465) | _NS_INLINE bool NS::Bundle::isLoaded() const
  function _NS_INLINE (line 1470) | _NS_INLINE bool NS::Bundle::preflightAndReturnError(Error** pError) const
  function _NS_INLINE (line 1475) | _NS_INLINE bool NS::Bundle::loadAndReturnError(Error** pError)
  function _NS_INLINE (line 1480) | _NS_INLINE NS::URL* NS::Bundle::bundleURL() const
  function _NS_INLINE (line 1485) | _NS_INLINE NS::URL* NS::Bundle::resourceURL() const
  function _NS_INLINE (line 1490) | _NS_INLINE NS::URL* NS::Bundle::executableURL() const
  function _NS_INLINE (line 1495) | _NS_INLINE NS::URL* NS::Bundle::URLForAuxiliaryExecutable(const String* ...
  function _NS_INLINE (line 1500) | _NS_INLINE NS::URL* NS::Bundle::privateFrameworksURL() const
  function _NS_INLINE (line 1505) | _NS_INLINE NS::URL* NS::Bundle::sharedFrameworksURL() const
  function _NS_INLINE (line 1510) | _NS_INLINE NS::URL* NS::Bundle::sharedSupportURL() const
  function _NS_INLINE (line 1515) | _NS_INLINE NS::URL* NS::Bundle::builtInPlugInsURL() const
  function _NS_INLINE (line 1520) | _NS_INLINE NS::URL* NS::Bundle::appStoreReceiptURL() const
  function _NS_INLINE (line 1525) | _NS_INLINE NS::String* NS::Bundle::bundlePath() const
  function _NS_INLINE (line 1530) | _NS_INLINE NS::String* NS::Bundle::resourcePath() const
  function _NS_INLINE (line 1535) | _NS_INLINE NS::String* NS::Bundle::executablePath() const
  function _NS_INLINE (line 1540) | _NS_INLINE NS::String* NS::Bundle::pathForAuxiliaryExecutable(const Stri...
  function _NS_INLINE (line 1545) | _NS_INLINE NS::String* NS::Bundle::privateFrameworksPath() const
  function _NS_INLINE (line 1550) | _NS_INLINE NS::String* NS::Bundle::sharedFrameworksPath() const
  function _NS_INLINE (line 1555) | _NS_INLINE NS::String* NS::Bundle::sharedSupportPath() const
  function _NS_INLINE (line 1560) | _NS_INLINE NS::String* NS::Bundle::builtInPlugInsPath() const
  function _NS_INLINE (line 1565) | _NS_INLINE NS::String* NS::Bundle::bundleIdentifier() const
  function _NS_INLINE (line 1570) | _NS_INLINE NS::Dictionary* NS::Bundle::infoDictionary() const
  function _NS_INLINE (line 1575) | _NS_INLINE NS::Dictionary* NS::Bundle::localizedInfoDictionary() const
  function _NS_INLINE (line 1580) | _NS_INLINE NS::Object* NS::Bundle::objectForInfoDictionaryKey(const Stri...
  function _NS_INLINE (line 1585) | _NS_INLINE NS::String* NS::Bundle::localizedString(const String* pKey, c...
  type NS (line 1590) | namespace NS
    type Private (line 104) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type Private (line 131) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type Private (line 142) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type OperatingSystemVersion (line 553) | struct OperatingSystemVersion
    class Object (line 568) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    function Referencing (line 569) | class _NS_EXPORT Referencing : public _Base
    class Object (line 580) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class Copying (line 581) | class Copying : public Referencing<_Class, _Base>
    class Object (line 587) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class SecureCoding (line 588) | class SecureCoding : public Referencing<_Class, _Base>
    class Object (line 592) | class Object : public Referencing<Object, objc_object>
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    type FastEnumerationState (line 796) | struct FastEnumerationState
    class FastEnumeration (line 804) | class FastEnumeration : public Referencing<FastEnumeration>
    class Enumerator (line 811) | class Enumerator : public Referencing<Enumerator<_ObjectType>, FastEnu...
      class Array (line 815) | class Array
    class Array (line 838) | class Array : public Copying<Array>
      class Coder (line 849) | class Coder
    class AutoreleasePool (line 911) | class AutoreleasePool : public Object
    class Dictionary (line 952) | class Dictionary : public NS::Copying<Dictionary>
      class Coder (line 963) | class Coder
    type Range (line 1042) | struct Range
    class String (line 1267) | class String
    class Notification (line 1269) | class Notification : public NS::Referencing<Notification>
    class NotificationCenter (line 1280) | class NotificationCenter : public NS::Referencing<NotificationCenter>
      class NotificationCenter (line 1283) | class NotificationCenter
    class String (line 1333) | class String
    class String (line 1334) | class String
    class String (line 1335) | class String
    class Bundle (line 1335) | class Bundle
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class String (line 1336) | class String
    class Bundle (line 1336) | class Bundle
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class Bundle (line 1338) | class Bundle : public Referencing<Bundle>
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class Data (line 1592) | class Data : public Copying<Data>
    class Date (line 1615) | class Date : public Copying<Date>
    class String (line 1632) | class String
    class String (line 1639) | class String
    class Error (line 1654) | class Error : public Copying<Error>
      class Dictionary (line 1657) | class Dictionary
      class Dictionary (line 1661) | class Dictionary
      class Dictionary (line 1665) | class Dictionary
      class String (line 1667) | class String
      class Array (line 1668) | class Array
      class String (line 1669) | class String
      class String (line 1670) | class String
    class Object (line 1750) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class Locking (line 1751) | class Locking : public _Base
    class Condition (line 1758) | class Condition : public Locking<Condition>
    class Value (line 1819) | class Value : public Copying<Value>
      class Coder (line 1828) | class Coder
    class Number (line 1837) | class Number : public Copying<Number, Value>
      class Coder (line 1856) | class Coder
      class String (line 1886) | class String
      class String (line 1891) | class String
    class Set (line 2457) | class Set : public NS::Copying <Set>
      class Coder (line 2467) | class Coder
    class SharedPtr (line 2509) | class SharedPtr
    function _NS_INLINE (line 2619) | _NS_INLINE NS::SharedPtr<_Class> RetainPtr(_Class* pObject)
    function _NS_INLINE (line 2632) | _NS_INLINE NS::SharedPtr<_Class> TransferPtr(_Class* pObject)
    class URL (line 2794) | class URL : public Copying<URL>
      class String (line 2797) | class String
      class String (line 2801) | class String
      class String (line 2802) | class String
  function _NS_INLINE (line 1600) | _NS_INLINE void* NS::Data::mutableBytes() const
  function _NS_INLINE (line 1605) | _NS_INLINE NS::UInteger NS::Data::length() const
  type NS (line 1610) | namespace NS
    type Private (line 104) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type Private (line 131) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type Private (line 142) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type OperatingSystemVersion (line 553) | struct OperatingSystemVersion
    class Object (line 568) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    function Referencing (line 569) | class _NS_EXPORT Referencing : public _Base
    class Object (line 580) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class Copying (line 581) | class Copying : public Referencing<_Class, _Base>
    class Object (line 587) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class SecureCoding (line 588) | class SecureCoding : public Referencing<_Class, _Base>
    class Object (line 592) | class Object : public Referencing<Object, objc_object>
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    type FastEnumerationState (line 796) | struct FastEnumerationState
    class FastEnumeration (line 804) | class FastEnumeration : public Referencing<FastEnumeration>
    class Enumerator (line 811) | class Enumerator : public Referencing<Enumerator<_ObjectType>, FastEnu...
      class Array (line 815) | class Array
    class Array (line 838) | class Array : public Copying<Array>
      class Coder (line 849) | class Coder
    class AutoreleasePool (line 911) | class AutoreleasePool : public Object
    class Dictionary (line 952) | class Dictionary : public NS::Copying<Dictionary>
      class Coder (line 963) | class Coder
    type Range (line 1042) | struct Range
    class String (line 1267) | class String
    class Notification (line 1269) | class Notification : public NS::Referencing<Notification>
    class NotificationCenter (line 1280) | class NotificationCenter : public NS::Referencing<NotificationCenter>
      class NotificationCenter (line 1283) | class NotificationCenter
    class String (line 1333) | class String
    class String (line 1334) | class String
    class String (line 1335) | class String
    class Bundle (line 1335) | class Bundle
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class String (line 1336) | class String
    class Bundle (line 1336) | class Bundle
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class Bundle (line 1338) | class Bundle : public Referencing<Bundle>
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class Data (line 1592) | class Data : public Copying<Data>
    class Date (line 1615) | class Date : public Copying<Date>
    class String (line 1632) | class String
    class String (line 1639) | class String
    class Error (line 1654) | class Error : public Copying<Error>
      class Dictionary (line 1657) | class Dictionary
      class Dictionary (line 1661) | class Dictionary
      class Dictionary (line 1665) | class Dictionary
      class String (line 1667) | class String
      class Array (line 1668) | class Array
      class String (line 1669) | class String
      class String (line 1670) | class String
    class Object (line 1750) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class Locking (line 1751) | class Locking : public _Base
    class Condition (line 1758) | class Condition : public Locking<Condition>
    class Value (line 1819) | class Value : public Copying<Value>
      class Coder (line 1828) | class Coder
    class Number (line 1837) | class Number : public Copying<Number, Value>
      class Coder (line 1856) | class Coder
      class String (line 1886) | class String
      class String (line 1891) | class String
    class Set (line 2457) | class Set : public NS::Copying <Set>
      class Coder (line 2467) | class Coder
    class SharedPtr (line 2509) | class SharedPtr
    function _NS_INLINE (line 2619) | _NS_INLINE NS::SharedPtr<_Class> RetainPtr(_Class* pObject)
    function _NS_INLINE (line 2632) | _NS_INLINE NS::SharedPtr<_Class> TransferPtr(_Class* pObject)
    class URL (line 2794) | class URL : public Copying<URL>
      class String (line 2797) | class String
      class String (line 2801) | class String
      class String (line 2802) | class String
  function _NS_INLINE (line 1623) | _NS_INLINE NS::Date* NS::Date::dateWithTimeIntervalSinceNow(NS::TimeInte...
  type NS (line 1630) | namespace NS
    type Private (line 104) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type Private (line 131) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type Private (line 142) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type OperatingSystemVersion (line 553) | struct OperatingSystemVersion
    class Object (line 568) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    function Referencing (line 569) | class _NS_EXPORT Referencing : public _Base
    class Object (line 580) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class Copying (line 581) | class Copying : public Referencing<_Class, _Base>
    class Object (line 587) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class SecureCoding (line 588) | class SecureCoding : public Referencing<_Class, _Base>
    class Object (line 592) | class Object : public Referencing<Object, objc_object>
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    type FastEnumerationState (line 796) | struct FastEnumerationState
    class FastEnumeration (line 804) | class FastEnumeration : public Referencing<FastEnumeration>
    class Enumerator (line 811) | class Enumerator : public Referencing<Enumerator<_ObjectType>, FastEnu...
      class Array (line 815) | class Array
    class Array (line 838) | class Array : public Copying<Array>
      class Coder (line 849) | class Coder
    class AutoreleasePool (line 911) | class AutoreleasePool : public Object
    class Dictionary (line 952) | class Dictionary : public NS::Copying<Dictionary>
      class Coder (line 963) | class Coder
    type Range (line 1042) | struct Range
    class String (line 1267) | class String
    class Notification (line 1269) | class Notification : public NS::Referencing<Notification>
    class NotificationCenter (line 1280) | class NotificationCenter : public NS::Referencing<NotificationCenter>
      class NotificationCenter (line 1283) | class NotificationCenter
    class String (line 1333) | class String
    class String (line 1334) | class String
    class String (line 1335) | class String
    class Bundle (line 1335) | class Bundle
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class String (line 1336) | class String
    class Bundle (line 1336) | class Bundle
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class Bundle (line 1338) | class Bundle : public Referencing<Bundle>
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String (line 1379) | class String
      class String (line 1380) | class String
      class String (line 1381) | class String
      class String (line 1383) | class String
      class Dictionary (line 1384) | class Dictionary
      class Dictionary (line 1385) | class Dictionary
      class Object (line 1386) | class Object
      class String (line 1386) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
      class String (line 1388) | class String
    class Data (line 1592) | class Data : public Copying<Data>
    class Date (line 1615) | class Date : public Copying<Date>
    class String (line 1632) | class String
    class String (line 1639) | class String
    class Error (line 1654) | class Error : public Copying<Error>
      class Dictionary (line 1657) | class Dictionary
      class Dictionary (line 1661) | class Dictionary
      class Dictionary (line 1665) | class Dictionary
      class String (line 1667) | class String
      class Array (line 1668) | class Array
      class String (line 1669) | class String
      class String (line 1670) | class String
    class Object (line 1750) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class Locking (line 1751) | class Locking : public _Base
    class Condition (line 1758) | class Condition : public Locking<Condition>
    class Value (line 1819) | class Value : public Copying<Value>
      class Coder (line 1828) | class Coder
    class Number (line 1837) | class Number : public Copying<Number, Value>
      class Coder (line 1856) | class Coder
      class String (line 1886) | class String
      class String (line 1891) | class String
    class Set (line 2457) | class Set : public NS::Copying <Set>
      class Coder (line 2467) | class Coder
    class SharedPtr (line 2509) | class SharedPtr
    function _NS_INLINE (line 2619) | _NS_INLINE NS::SharedPtr<_Class> RetainPtr(_Class* pObject)
    function _NS_INLINE (line 2632) | _NS_INLINE NS::SharedPtr<_Class> TransferPtr(_Class* pObject)
    class URL (line 2794) | class URL : public Copying<URL>
      class String (line 2797) | class String
      class String (line 2801) | class String
      class String (line 2802) | class String
  function _NS_INLINE (line 1692) | _NS_INLINE NS::Error* NS::Error::error(ErrorDomain domain, Integer code,...
  function _NS_INLINE (line 1697) | _NS_INLINE NS::Error* NS::Error::alloc()
  function _NS_INLINE (line 1702) | _NS_INLINE NS::Error* NS::Error::init()
  function _NS_INLINE (line 1707) | _NS_INLINE NS::Error* NS::Error::init(ErrorDomain domain, Integer code, ...
  function _NS_INLINE (line 1712) | _NS_INLINE NS::Integer NS::Error::code() const
  function _NS_INLINE (line 1717) | _NS_INLINE NS::ErrorDomain NS::Error::domain() const
  function _NS_INLINE (line 1722) | _NS_INLINE NS::Dictionary* NS::Error::userInfo() const
  function _NS_INLINE (line 1727) | _NS_INLINE NS::String* NS::Error::localizedDescription() const
  function _NS_INLINE (line 1732) | _NS_INLINE NS::Array* NS::Error::localizedRecoveryOptions() const
  function _NS_INLINE (line 1737) | _NS_INLINE NS::String* NS::Error::localizedRecoverySuggestion() const
  function _NS_INLINE (line 1742) | _NS_INLINE NS::String* NS::Error::localizedFailureReason() const
  type NS (line 1747) | namespace NS
    type Private (line 104) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type Private (line 131) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type Private (line 142) | namespace Private
      type Class (line 106) | namespace Class
      type Protocol (line 133) | namespace Protocol
      type Selector (line 144) | namespace Selector
    type OperatingSystemVersion (line 553) | struct OperatingSystemVersion
    class Object (line 568) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    function Referencing (line 569) | class _NS_EXPORT Referencing : public _Base
    class Object (line 580) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class Copying (line 581) | class Copying : public Referencing<_Class, _Base>
    class Object (line 587) | class Object
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    class SecureCoding (line 588) | class SecureCoding : public Referencing<_Class, _Base>
    class Object (line 592) | class Object : public Referencing<Object, objc_object>
      class String (line 598) | class String
      class String (line 599) | class String
      class MethodSignature (line 613) | class MethodSignature
      method Object (line 623) | Object() = delete;
      method Object (line 624) | Object(const Object&) = delete;
      method Object (line 627) | Object& operator=(const Object&) = delete;
    type FastEnumerationState (line 796) | struct FastEnumerationState
    class FastEnumeration (line 804) | class FastEnumeration : public Referencing<FastEnumeration>
    class Enumerator (line 811) | class Enumerator : public Referencing<Enumerator<_ObjectType>, FastEnu...
      class Array (line 815) | class Array
    class Array (line 838) | class Array : public Copying<Array>
      class Coder (line 849) | class Coder
    class AutoreleasePool (line 911) | class AutoreleasePool : public Object
    class Dictionary (line 952) | class Dictionary : public NS::Copying<Dictionary>
      class Coder (line 963) | class Coder
    type Range (line 1042) | struct Range
    class String (line 1267) | class String
    class Notification (line 1269) | class Notification : public NS::Referencing<Notification>
    class NotificationCenter (line 1280) | class NotificationCenter : public NS::Referencing<NotificationCenter>
      class NotificationCenter (line 1283) | class NotificationCenter
    class String (line 1333) | class String
    class String (line 1334) | class String
    class String (line 1335) | class String
    class Bundle (line 1335) | class Bundle
      class String (line 1343) | class String
      class URL (line 1344) | class URL
      class Array (line 1346) | class Array
      class Array (line 1347) | class Array
      class String (line 1351) | class String
      class URL (line 1352) | class URL
      class Error (line 1359) | class Error
      class Error (line 1360) | class Error
      class URL (line 1362) | class URL
      class URL (line 1363) | class URL
      class URL (line 1364) | class URL
      class URL (line 1365) | class URL
      class String (line 1365) | class String
      class URL (line 1367) | class URL
      class URL (line 1368) | class URL
      class URL (line 1369) | class URL
      class URL (line 1370) | class URL
      class URL (line 1371) | class URL
      class String (line 1373) | class String
      class String (line 1374) | class String
      class String (line 1375) | class String
      class String (line 1376) | class String
      class String (line 1376) | class String
      class String (line 1378) | class String
      class String
Condensed preview — 114 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (4,066K chars).
[
  {
    "path": ".clang-format",
    "chars": 2000,
    "preview": "AccessModifierOffset: 0\nAlignAfterOpenBracket: AlwaysBreak\nAlignConsecutiveAssignments: true\nAlignConsecutiveDeclaration"
  },
  {
    "path": ".github/workflows/tests.yml",
    "chars": 607,
    "preview": "name: Run tests\n\non:\n  push:\n    branches: [ master ]\n  pull_request:\n    branches: [ master ]\nenv:\n  CC: /usr/bin/clang"
  },
  {
    "path": ".gitignore",
    "chars": 260,
    "preview": "build/*\ntests/build/*\ndocs/doxygen/html\ndocs/doxygen/xml\ndocs/doxygen/latex\ntests/ngf_tests\nsamples/binaries/*\nsamples/d"
  },
  {
    "path": "CMakeLists.txt",
    "chars": 15081,
    "preview": "#[[\nCopyright (c) 2026 nicegraf contributors\n\nPermission is hereby granted, free of charge, to any person obtaining a co"
  },
  {
    "path": "README.md",
    "chars": 1126,
    "preview": "nicegraf\n========\n\n![Run tests](https://github.com/nicebyte/nicegraf/workflows/Run%20tests/badge.svg)\n\n<p align=\"center\""
  },
  {
    "path": "build-samples.bat",
    "chars": 873,
    "preview": "@echo off\n\necho Downloading binary dependencies and data for samples...\npowershell -Command \"(New-Object Net.WebClient)."
  },
  {
    "path": "build-samples.sh",
    "chars": 895,
    "preview": "#!/bin/bash\n\nset -e\n\necho \"Downloading binary dependencies for samples...\"\ncurl https://github.com/nicebyte/nicegraf/rel"
  },
  {
    "path": "build-utils.cmake",
    "chars": 4695,
    "preview": "#[[\nCopyright (c) 2022 nicegraf contributors\n\nPermission is hereby granted, free of charge, to any person obtaining a co"
  },
  {
    "path": "deps/SPIRV-reflect/CMakeLists.txt",
    "chars": 344,
    "preview": "cmake_minimum_required(VERSION 3.14.0)\nproject(spvreflect)\n\nset(CMAKE_C_STANDARD 99)\n\nadd_library(spvreflect STATIC\n  ${"
  },
  {
    "path": "deps/SPIRV-reflect/include/spirv/unified1/spirv.h",
    "chars": 152524,
    "preview": "/*\n** Copyright (c) 2014-2020 The Khronos Group Inc.\n**\n** Permission is hereby granted, free of charge, to any person o"
  },
  {
    "path": "deps/SPIRV-reflect/spirv_reflect.c",
    "chars": 214134,
    "preview": "/*\n Copyright 2017-2022 Google Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use t"
  },
  {
    "path": "deps/SPIRV-reflect/spirv_reflect.h",
    "chars": 95733,
    "preview": "/*\n Copyright 2017-2022 Google Inc.\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use t"
  },
  {
    "path": "deps/metal-cpp/MetalSingleHeader.hpp",
    "chars": 869357,
    "preview": "//\n// Metal.hpp\n//\n// Autogenerated on October 02, 2025.\n//\n// Copyright 2020-2024 Apple Inc.\n//\n// Licensed under the A"
  },
  {
    "path": "deps/renderdoc/renderdoc_app.h",
    "chars": 30977,
    "preview": "/******************************************************************************\n * The MIT License (MIT)\n *\n * Copyright"
  },
  {
    "path": "deps/utest/utest.h",
    "chars": 77867,
    "preview": "/*\n   The latest version of this library is available on GitHub;\n   https://github.com/sheredom/utest.h\n*/\n\n/*\n   This i"
  },
  {
    "path": "deps/vma/CHANGELOG.md",
    "chars": 18085,
    "preview": "# 3.2.1 (2025-02-05)\n\nChanges:\n\n- Fixed an assert in `vmaCreateAllocator` function incorrectly failing when Vulkan versi"
  },
  {
    "path": "deps/vma/CMakeLists.txt",
    "chars": 523,
    "preview": "cmake_minimum_required(VERSION 3.10)\n\nproject(vma)\n\n\nadd_library(vma STATIC\n    ${CMAKE_CURRENT_LIST_DIR}/src/vk_mem_all"
  },
  {
    "path": "deps/vma/LICENSE.txt",
    "chars": 1099,
    "preview": "Copyright (c) 2017-2025 Advanced Micro Devices, Inc. All rights reserved.\n\nPermission is hereby granted, free of charge,"
  },
  {
    "path": "deps/vma/README.md",
    "chars": 14433,
    "preview": "# Vulkan Memory Allocator\n\nEasy to integrate Vulkan memory allocation library.\n\n**Documentation:** Browse online: [Vulka"
  },
  {
    "path": "deps/vma/src/vk_mem_alloc.cpp",
    "chars": 80,
    "preview": "#define VMA_IMPLEMENTATION\n#define WIN32_LEAN_AND_MEAN\n#include \"vk_mem_alloc.h\""
  },
  {
    "path": "deps/vma/src/vk_mem_alloc.h",
    "chars": 729652,
    "preview": "//\n// Copyright (c) 2017-2025 Advanced Micro Devices, Inc. All rights reserved.\n//\n// Permission is hereby granted, free"
  },
  {
    "path": "deps/vulkan-headers/vulkan/vk_platform.h",
    "chars": 2828,
    "preview": "//\n// File: vk_platform.h\n//\n/*\n** Copyright 2014-2022 The Khronos Group Inc.\n**\n** SPDX-License-Identifier: Apache-2.0\n"
  },
  {
    "path": "deps/vulkan-headers/vulkan/vulkan.h",
    "chars": 1477,
    "preview": "#ifndef VULKAN_H_\n#define VULKAN_H_ 1\n\n/*\n** Copyright 2015-2022 The Khronos Group Inc.\n**\n** SPDX-License-Identifier: A"
  },
  {
    "path": "deps/vulkan-headers/vulkan/vulkan_core.h",
    "chars": 749162,
    "preview": "#ifndef VULKAN_CORE_H_\n#define VULKAN_CORE_H_ 1\n\n/*\n** Copyright 2015-2022 The Khronos Group Inc.\n**\n** SPDX-License-Ide"
  },
  {
    "path": "deps/vulkan-headers/vulkan/vulkan_ios.h",
    "chars": 1233,
    "preview": "#ifndef VULKAN_IOS_H_\n#define VULKAN_IOS_H_ 1\n\n/*\n** Copyright 2015-2022 The Khronos Group Inc.\n**\n** SPDX-License-Ident"
  },
  {
    "path": "deps/vulkan-headers/vulkan/vulkan_macos.h",
    "chars": 1263,
    "preview": "#ifndef VULKAN_MACOS_H_\n#define VULKAN_MACOS_H_ 1\n\n/*\n** Copyright 2015-2022 The Khronos Group Inc.\n**\n** SPDX-License-I"
  },
  {
    "path": "deps/vulkan-headers/vulkan/vulkan_metal.h",
    "chars": 5651,
    "preview": "#ifndef VULKAN_METAL_H_\n#define VULKAN_METAL_H_ 1\n\n/*\n** Copyright 2015-2022 The Khronos Group Inc.\n**\n** SPDX-License-I"
  },
  {
    "path": "deps/vulkan-headers/vulkan/vulkan_win32.h",
    "chars": 13477,
    "preview": "#ifndef VULKAN_WIN32_H_\n#define VULKAN_WIN32_H_ 1\n\n/*\n** Copyright 2015-2022 The Khronos Group Inc.\n**\n** SPDX-License-I"
  },
  {
    "path": "deps/vulkan-headers/vulkan/vulkan_xcb.h",
    "chars": 1804,
    "preview": "#ifndef VULKAN_XCB_H_\n#define VULKAN_XCB_H_ 1\n\n/*\n** Copyright 2015-2022 The Khronos Group Inc.\n**\n** SPDX-License-Ident"
  },
  {
    "path": "include/nicegraf-mtl-handles.h",
    "chars": 4763,
    "preview": "/**\n * Copyright (c) 2023 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "include/nicegraf-util.h",
    "chars": 3528,
    "preview": "/**\n * Copyright (c) 2021 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "include/nicegraf-vk-handles.h",
    "chars": 3075,
    "preview": "/**\n * Copyright (c) 2023 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "include/nicegraf-wrappers.h",
    "chars": 34242,
    "preview": "/**\n * Copyright (c) 2025 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "include/nicegraf.h",
    "chars": 121866,
    "preview": "/**\n * Copyright (c) 2025 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "misc/common/CMakeLists.txt",
    "chars": 2882,
    "preview": "#[[\nCopyright (c) 2023 nicegraf contributors\n\nPermission is hereby granted, free of charge, to any person obtaining a co"
  },
  {
    "path": "misc/common/check.h",
    "chars": 2583,
    "preview": "/**\n * Copyright (c) 2023 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "misc/common/file-utils.cpp",
    "chars": 1578,
    "preview": "/**\n * Copyright (c) 2023 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "misc/common/file-utils.h",
    "chars": 1384,
    "preview": "/**\n * Copyright (c) 2023 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "misc/common/logging.h",
    "chars": 2084,
    "preview": "/**\n * Copyright (c) 2023 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "misc/common/mesh-loader.cpp",
    "chars": 5886,
    "preview": "/**\n * Copyright (c) 2023 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "misc/common/mesh-loader.h",
    "chars": 1407,
    "preview": "/**\n * Copyright (c) 2023 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "misc/common/shader-loader.cpp",
    "chars": 2436,
    "preview": "/**\n * Copyright (c) 2023 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "misc/common/shader-loader.h",
    "chars": 1316,
    "preview": "/**\n * Copyright (c) 2023 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "misc/common/targa-loader.cpp",
    "chars": 6231,
    "preview": "/**\n * Copyright (c) 2023 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "misc/common/targa-loader.h",
    "chars": 1873,
    "preview": "/**\n * Copyright (c) 2023 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "misc/shaders.cmake",
    "chars": 2405,
    "preview": "function (ngf_shaders_target)\n   cmake_parse_arguments(SHADERS_TARGET \"\" \"NAME;OUTPUT_DIR;NICESHADE_PATH\" \"SRCS\" ${ARGN}"
  },
  {
    "path": "samples/00-template/sample-impl.cpp",
    "chars": 1986,
    "preview": "/**\n * Copyright (c) 2021 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "samples/01-fullscreen-triangle/fullscreen-triangle.cpp",
    "chars": 3947,
    "preview": "/**\n * Copyright (c) 2023 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "samples/02-render-to-texture/render-to-texture.cpp",
    "chars": 6782,
    "preview": "/**\n * Copyright (c) 2021 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "samples/03-uniform-buffers/uniform-buffers.cpp",
    "chars": 8681,
    "preview": "/**\n * Copyright (c) 2023 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "samples/04-texture-sampling/texture-sampling.cpp",
    "chars": 10098,
    "preview": "/**\n * Copyright (c) 2025 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "samples/05-cubemap/cubemap.cpp",
    "chars": 8734,
    "preview": "/**\n * Copyright (c) 2023 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "samples/06-vertex-attribs/vertex-attribs.cpp",
    "chars": 19905,
    "preview": "/**\n * Copyright (c) 2023 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "samples/07-blinn-phong/blinn-phong.cpp",
    "chars": 9953,
    "preview": "/**\n * Copyright (c) 2023 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "samples/08-image-arrays/image-arrays.cpp",
    "chars": 15891,
    "preview": "/**\n * Copyright (c) 2023 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "samples/09-volume-rendering/volume-rendering.cpp",
    "chars": 8761,
    "preview": "/**\n * Copyright (c) 2023 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "samples/0a-compute-demo/compute-demo.cpp",
    "chars": 6974,
    "preview": "/**\n * Copyright (c) 2023 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "samples/0a-compute-mandelbrot/compute-mandelbrot.cpp",
    "chars": 6501,
    "preview": "/**\n * Copyright (c) 2025 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "samples/0b-compute-vertices/compute-vertices.cpp",
    "chars": 11232,
    "preview": "/**\n * Copyright (c) 2023 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "samples/0c-render-to-multisample-texture/render-to-multisample-texture.cpp",
    "chars": 10073,
    "preview": "/**\n * Copyright (c) 2023 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "samples/common/camera-controller.cpp",
    "chars": 2806,
    "preview": "/**\n * Copyright (c) 2021 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "samples/common/camera-controller.h",
    "chars": 1916,
    "preview": "/**\n * Copyright (c) 2021 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "samples/common/diagnostic-callback.cpp",
    "chars": 1628,
    "preview": "/**\n * Copyright (c) 2021 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "samples/common/diagnostic-callback.h",
    "chars": 1484,
    "preview": "/**\n * Copyright (c) 2021 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "samples/common/imgui-backend.cpp",
    "chars": 12560,
    "preview": "/**\n * Copyright (c) 2023 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "samples/common/imgui-backend.h",
    "chars": 2707,
    "preview": "/**\n * Copyright (c) 2023 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "samples/common/main.cpp",
    "chars": 16371,
    "preview": "/**\n * Copyright (c) 2023 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "samples/common/platform/macos/glfw-cocoa-contentview.h",
    "chars": 1226,
    "preview": "/**\n * Copyright (c) 2021 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "samples/common/platform/macos/glfw-cocoa-contentview.mm",
    "chars": 1519,
    "preview": "/**\n * Copyright (c) 2021 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "samples/common/sample-interface.h",
    "chars": 3974,
    "preview": "/**\n * Copyright (c) 2023 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "samples/common/staging-image.cpp",
    "chars": 2035,
    "preview": "#include \"staging-image.h\"\n\n#include \"check.h\"\n#include \"file-utils.h\"\n#include \"targa-loader.h\"\n\n#include <cmath>\n#incl"
  },
  {
    "path": "samples/common/staging-image.h",
    "chars": 1062,
    "preview": "#pragma once\n\n#include \"nicegraf-wrappers.h\"\n\nnamespace ngf_samples {\n\n/**\n * This is a helper type used by the samples "
  },
  {
    "path": "samples/shaders/blinn-phong.hlsl",
    "chars": 4022,
    "preview": "//T: blinn-phong vs:VSMain ps:PSMain\n\n[[vk::constant_id(0)]] const uint enableHalfLambert = 0;\n\nstruct PixelShaderInput "
  },
  {
    "path": "samples/shaders/compute-demo.hlsl",
    "chars": 1385,
    "preview": "// T: compute-demo cs:CSMain\n\n[[vk::binding(0, 0)]] RWTexture2D<float4> outputImage;\n\nfloat2 f(float2 x, float2 c) {\n  r"
  },
  {
    "path": "samples/shaders/compute-vertices.hlsl",
    "chars": 1798,
    "preview": "struct VertexData {\n  float3 position;\n  float3 normal;\n};\n\nstruct VertexOutput {\n  float4 position : SV_Position;\n  flo"
  },
  {
    "path": "samples/shaders/cubemap.hlsl",
    "chars": 1399,
    "preview": "// T: cubemap vs:VSMain ps:PSMain define:GENERIC_FS_INPUT_HAS_CLIPSPACE_POS=1\n// T: cubemap-array vs:VSMain ps:PSMain de"
  },
  {
    "path": "samples/shaders/fullscreen-triangle.hlsl",
    "chars": 419,
    "preview": "//T: fullscreen-triangle ps:PSMain vs:VSMain\n//T: small-triangle ps:PSMain vs:VSMain define:SCALE=0.25\n\n#define GENERIC_"
  },
  {
    "path": "samples/shaders/generic-frag-shader-input.hlsl",
    "chars": 330,
    "preview": "struct GenericFragShaderInput {\n  float4 position : SV_Position;\n  \n#if defined(GENERIC_FS_INPUT_HAS_COLOR)\n  float4 col"
  },
  {
    "path": "samples/shaders/imgui.hlsl",
    "chars": 895,
    "preview": "//T: imgui ps:PSMain vs:VSMain\n\n#define GENERIC_FS_INPUT_HAS_UV\n#define GENERIC_FS_INPUT_HAS_COLOR\n#include \"generic-fra"
  },
  {
    "path": "samples/shaders/instancing.hlsl",
    "chars": 1653,
    "preview": "//T: instancing ps:PSMain vs:VSMain\n\n#include \"quat.hlsl\"\n\n#define GENERIC_FS_INPUT_HAS_UV\n#include \"generic-frag-shader"
  },
  {
    "path": "samples/shaders/polygon.hlsl",
    "chars": 1646,
    "preview": "//T: polygon ps:PSMain vs:VSMain\n\n#define GENERIC_FS_INPUT_HAS_COLOR\n#include \"generic-frag-shader-input.hlsl\"\n\nstruct V"
  },
  {
    "path": "samples/shaders/quad.hlsl",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "samples/shaders/quat.hlsl",
    "chars": 1148,
    "preview": "// Helper functions for quaternions.\n\nfloat4 quatFromAxisAngle(float3 axis, float angle) {\n  float3 n = normalize(axis);"
  },
  {
    "path": "samples/shaders/simple-texture.hlsl",
    "chars": 458,
    "preview": "// T: simple-texture vs:VSMain ps:PSMain\n\n#define GENERIC_FS_INPUT_HAS_UV\n#include \"triangle.hlsl\"\n\n[[vk::binding(1, 0)]"
  },
  {
    "path": "samples/shaders/textured-quad.hlsl",
    "chars": 1834,
    "preview": "//T: textured-quad ps:PSMain vs:VSMain define:GENERIC_FS_INPUT_HAS_UV=1\n//T: textured-quad-image-array ps:PSMain vs:VSMa"
  },
  {
    "path": "samples/shaders/triangle.hlsl",
    "chars": 1015,
    "preview": "#include \"generic-frag-shader-input.hlsl\"\n\nGenericFragShaderInput TriangleVertex(uint vertexId, float scale, float2 offs"
  },
  {
    "path": "samples/shaders/volume-renderer.hlsl",
    "chars": 1241,
    "preview": "// T: volume-renderer vs:VSMain ps:PSMain\n\nstruct VertexShaderInput {\n  float4 position : SV_Position;\n  float3 textureC"
  },
  {
    "path": "source/ngf-common/arena.cpp",
    "chars": 6161,
    "preview": "/**\n * Copyright (c) 2026 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "source/ngf-common/arena.h",
    "chars": 2380,
    "preview": "/**\n * Copyright (c) 2026 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "source/ngf-common/array.h",
    "chars": 5657,
    "preview": "/**\n * Copyright (c) 2026 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "source/ngf-common/chunked-list.h",
    "chars": 2206,
    "preview": "#pragma once\n\n#include \"arena.h\"\n\nnamespace ngfi {\n\ntemplate <class T, unsigned ChunkCapacity = 10>\nclass chunked_list {"
  },
  {
    "path": "source/ngf-common/cmdbuf-state.h",
    "chars": 3469,
    "preview": "/**\n * Copyright (c) 2026 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "source/ngf-common/create-destroy.cpp",
    "chars": 5064,
    "preview": "/**\n * Copyright (c) 2026 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "source/ngf-common/default-arenas.cpp",
    "chars": 1410,
    "preview": "/**\n * Copyright (c) 2025 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "source/ngf-common/default-arenas.h",
    "chars": 2089,
    "preview": "/**\n * Copyright (c) 2025 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "source/ngf-common/frame-token.h",
    "chars": 1914,
    "preview": "/**\n * Copyright (c) 2021 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "source/ngf-common/hashtable.h",
    "chars": 9937,
    "preview": "/**\n * Copyright (c) 2026 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "source/ngf-common/internal.cpp",
    "chars": 2099,
    "preview": "/**\n * Copyright (c) 2026 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "source/ngf-common/macros.h",
    "chars": 7263,
    "preview": "/**\n * Copyright (c) 2026 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "source/ngf-common/silence.h",
    "chars": 294,
    "preview": "#pragma once\n\n#ifndef _CRT_SECURE_NO_WARNINGS\n#define _CRT_SECURE_NO_WARNINGS\n#endif\n#ifdef __clang__\n#pragma clang diag"
  },
  {
    "path": "source/ngf-common/unique-ptr.h",
    "chars": 1106,
    "preview": "#pragma once\n\n#include \"macros.h\"\n\nnamespace ngfi {\n\ntemplate<class T> class unique_ptr {\n  private:\n  T* obj_ = nullptr"
  },
  {
    "path": "source/ngf-common/util.c",
    "chars": 3941,
    "preview": "/**\n * Copyright (c) 2021 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "source/ngf-common/util.h",
    "chars": 1976,
    "preview": "/**\n * Copyright (c) 2025 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "source/ngf-common/value-or-error.h",
    "chars": 2280,
    "preview": "#pragma once\n\n#include \"ngf-common/util.h\"\n\n#include <nicegraf.h>\n\nnamespace ngfi {\n\ntemplate<class ErrorT> ErrorT missi"
  },
  {
    "path": "source/ngf-mtl/impl.cpp",
    "chars": 106293,
    "preview": "/**\n * Copyright (c) 2026 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "source/ngf-mtl/layer.mm",
    "chars": 3719,
    "preview": "#include \"nicegraf.h\"\n\n#import <Metal/Metal.h>\n#import <QuartzCore/QuartzCore.h>\n\n#if TARGET_OS_OSX\n#import <AppKit/AppK"
  },
  {
    "path": "source/ngf-vk/ca-metal-layer.mm",
    "chars": 1406,
    "preview": "#if defined(__APPLE__)\n\n#include \"nicegraf.h\"\n#import <QuartzCore/QuartzCore.h>\n#import <Metal/Metal.h>\n#if TARGET_OS_OS"
  },
  {
    "path": "source/ngf-vk/impl.cpp",
    "chars": 272086,
    "preview": "/**\n * Copyright (c) 2026 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "source/ngf-vk/vk_10.c",
    "chars": 27818,
    "preview": "#include \"ngf-common/silence.h\"\n#include \"vk_10.h\"\n#include \"ngf-common/macros.h\"\n\n#define TO_STRING(str) #str\n#define S"
  },
  {
    "path": "source/ngf-vk/vk_10.h",
    "chars": 10782,
    "preview": "#pragma once\n\n#if defined(_WIN32)||defined(_WIN64)\n  #define   VK_GET_DEVICE_PRES_FN       vkGetPhysicalDeviceWin32Prese"
  },
  {
    "path": "tests/arena-alloc-tests.cpp",
    "chars": 11002,
    "preview": "/**\n * Copyright (c) 2025 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "tests/common-tests.cpp",
    "chars": 32174,
    "preview": "#include \"ngf-common/arena.h\"\n#include \"ngf-common/array.h\"\n#include \"ngf-common/chunked-list.h\"\n#include \"ngf-common/cm"
  },
  {
    "path": "tests/vk-backend-tests.cpp",
    "chars": 22395,
    "preview": "/**\n * Copyright (c) 2026 nicegraf contributors\n *\n * Permission is hereby granted, free of charge, to any person obtain"
  }
]

// ... and 1 more files (download for full content)

About this extraction

This page contains the full source code of the nicebyte/nicegraf GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 114 files (3.8 MB), approximately 993.5k tokens, and a symbol index with 5819 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!