>

Пакеты Conan>

vulkan-headers

vulkan-headers

Официальный набор заголовочных файлов C для Vulkan API. Эти заголовки определяют типы, константы, структуры и прототипы функций для взаимодействия с графическим и вычислительным API Vulkan. Библиотека представляет собой каноническое описание Vulkan API, производное от реестра vk.xml, и необходима для разработки любых приложений, использующих Vulkan.

Особенности

  • официальные заголовки Khronos Group, синхронизированные со спецификацией Vulkan;
  • поддержка всех версий Vulkan API и всех зарегистрированных расширений;
  • возможность использования в C и C++ проектах;
  • модульная структура: основной заголовок vulkan.h включает необходимые подзаголовки.

Основные компоненты

Библиотека предоставляет набор заголовочных файлов, определяющих интерфейс Vulkan API (подробнее с документацией можно ознакомиться здесь).

Основной заголовочный файл vulkan.h

Главный заголовочный файл, который включают приложения для доступа ко всему Vulkan API. В свою очередь, он автоматически подключает следующие компоненты:

  • vk_platform.h — платформозависимые определения и макросы;
  • vulkan_core.h — определения ядра Vulkan API и всех зарегистрированных расширений;

Платформозависимые определения

Файл vk_platform.h определяет макросы для управления соглашениями вызовов и платформозависимым поведением. Это обеспечивает переносимость кода между различными компиляторами и операционными системами.

Основные макросы:

  • VKAPI_ATTR — макрос, размещаемый перед типом возвращаемого значения в объявлениях функций Vulkan;
  • VKAPI_CALL — макрос, размещаемый после типа возвращаемого значения;
  • VKAPI_PTR — макрос для определения типов указателей на функции;
  • VK_USE_64_BIT_PTR_DEFINES — управляет представлением non-dispatchable handles (как 64-битные указатели или как 64-битные целые);
  • VK_NULL_HANDLE — константа для нулевого handle (определяется как nullptr, ((void*)0) или 0ULL в зависимости от контекста).

Версионирование заголовков

Заголовки содержат макросы для определения версии API и самих заголовочных файлов.

Основные макросы версионирования:

  • VK_HEADER_VERSION — номер версии заголовочного файла (синхронизирован с patch-версией спецификации);
  • VK_HEADER_VERSION_COMPLETE — полная версия заголовков (major.minor.patch);
  • VK_API_VERSION_1_0, VK_API_VERSION_1_1, VK_API_VERSION_1_2, VK_API_VERSION_1_3 — константы для указания версии API в приложении;
  • VK_MAKE_API_VERSION() — макрос для создания составного номера версии из variant, major, minor и patch компонентов.

Определение типов handle

Vulkan использует два типа handle: dispatchable (для объектов диспетчеризации, таких как VkInstance и VkDevice) и non-dispatchable. Заголовки предоставляют макросы для их определения.

Макросы для handle:

  • VK_DEFINE_HANDLE(object) — определяет dispatchable handle тип;
  • VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) — определяет non-dispatchable handle.

Управление включением стандартных заголовков

Для контроля зависимостей от стандартных заголовков C библиотеки предоставляются следующие макросы:

  • VK_NO_STDINT_H — если определён, приложение должно самостоятельно определить типы uint8_t, uint32_t и др.;
  • VK_NO_STDDEF_H — если определён, приложение должно самостоятельно определить size_t.

Использование в проекте

Документация по использованию Conan-пакетов для разработки приложений для ОС Аврора.

На сервере Conan библиотеки заранее собраны и размещены под различные версии ОС Аврора 4 и ОC Аврора 5. Для данных версий представлены архитектуры armv7hl, aarch64 и x84_64.

Библиотеку можно использовать в проекте с помощью данного conanfile.py

from conan import ConanFile

class Application(ConanFile):
    settings = "os", "compiler", "arch", "build_type"
    generators = "PkgConfigDeps"

    requires = (
        "vulkan-headers/1.3.290.0@aurora",
    )    

Процесс локальной сборки описан в документации.

vulkan-headers

Vulkan Header files.
Лицензия
Apache-2.0
Версия
Домашняя страница
Скачать
package
2.12 Mb
MD5: 564a9cef6e67bb7536674625f632b849
Updated: 03.09.2025, 21:41:02
Использование в проекте

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.