1e8556ba3Sopenharmony_ci#ifndef VULKAN_SCREEN_H_
2e8556ba3Sopenharmony_ci#define VULKAN_SCREEN_H_ 1
3e8556ba3Sopenharmony_ci
4e8556ba3Sopenharmony_ci/*
5e8556ba3Sopenharmony_ci** Copyright 2015-2024 The Khronos Group Inc.
6e8556ba3Sopenharmony_ci**
7e8556ba3Sopenharmony_ci** SPDX-License-Identifier: Apache-2.0
8e8556ba3Sopenharmony_ci*/
9e8556ba3Sopenharmony_ci
10e8556ba3Sopenharmony_ci/*
11e8556ba3Sopenharmony_ci** This header is generated from the Khronos Vulkan XML API Registry.
12e8556ba3Sopenharmony_ci**
13e8556ba3Sopenharmony_ci*/
14e8556ba3Sopenharmony_ci
15e8556ba3Sopenharmony_ci
16e8556ba3Sopenharmony_ci#ifdef __cplusplus
17e8556ba3Sopenharmony_ciextern "C" {
18e8556ba3Sopenharmony_ci#endif
19e8556ba3Sopenharmony_ci
20e8556ba3Sopenharmony_ci
21e8556ba3Sopenharmony_ci
22e8556ba3Sopenharmony_ci// VK_QNX_screen_surface is a preprocessor guard. Do not pass it to API calls.
23e8556ba3Sopenharmony_ci#define VK_QNX_screen_surface 1
24e8556ba3Sopenharmony_ci#define VK_QNX_SCREEN_SURFACE_SPEC_VERSION 1
25e8556ba3Sopenharmony_ci#define VK_QNX_SCREEN_SURFACE_EXTENSION_NAME "VK_QNX_screen_surface"
26e8556ba3Sopenharmony_citypedef VkFlags VkScreenSurfaceCreateFlagsQNX;
27e8556ba3Sopenharmony_citypedef struct VkScreenSurfaceCreateInfoQNX {
28e8556ba3Sopenharmony_ci    VkStructureType                  sType;
29e8556ba3Sopenharmony_ci    const void*                      pNext;
30e8556ba3Sopenharmony_ci    VkScreenSurfaceCreateFlagsQNX    flags;
31e8556ba3Sopenharmony_ci    struct _screen_context*          context;
32e8556ba3Sopenharmony_ci    struct _screen_window*           window;
33e8556ba3Sopenharmony_ci} VkScreenSurfaceCreateInfoQNX;
34e8556ba3Sopenharmony_ci
35e8556ba3Sopenharmony_citypedef VkResult (VKAPI_PTR *PFN_vkCreateScreenSurfaceQNX)(VkInstance instance, const VkScreenSurfaceCreateInfoQNX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
36e8556ba3Sopenharmony_citypedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct _screen_window* window);
37e8556ba3Sopenharmony_ci
38e8556ba3Sopenharmony_ci#ifndef VK_NO_PROTOTYPES
39e8556ba3Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL vkCreateScreenSurfaceQNX(
40e8556ba3Sopenharmony_ci    VkInstance                                  instance,
41e8556ba3Sopenharmony_ci    const VkScreenSurfaceCreateInfoQNX*         pCreateInfo,
42e8556ba3Sopenharmony_ci    const VkAllocationCallbacks*                pAllocator,
43e8556ba3Sopenharmony_ci    VkSurfaceKHR*                               pSurface);
44e8556ba3Sopenharmony_ci
45e8556ba3Sopenharmony_ciVKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceScreenPresentationSupportQNX(
46e8556ba3Sopenharmony_ci    VkPhysicalDevice                            physicalDevice,
47e8556ba3Sopenharmony_ci    uint32_t                                    queueFamilyIndex,
48e8556ba3Sopenharmony_ci    struct _screen_window*                      window);
49e8556ba3Sopenharmony_ci#endif
50e8556ba3Sopenharmony_ci
51e8556ba3Sopenharmony_ci
52e8556ba3Sopenharmony_ci// VK_QNX_external_memory_screen_buffer is a preprocessor guard. Do not pass it to API calls.
53e8556ba3Sopenharmony_ci#define VK_QNX_external_memory_screen_buffer 1
54e8556ba3Sopenharmony_ci#define VK_QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_SPEC_VERSION 1
55e8556ba3Sopenharmony_ci#define VK_QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_EXTENSION_NAME "VK_QNX_external_memory_screen_buffer"
56e8556ba3Sopenharmony_citypedef struct VkScreenBufferPropertiesQNX {
57e8556ba3Sopenharmony_ci    VkStructureType    sType;
58e8556ba3Sopenharmony_ci    void*              pNext;
59e8556ba3Sopenharmony_ci    VkDeviceSize       allocationSize;
60e8556ba3Sopenharmony_ci    uint32_t           memoryTypeBits;
61e8556ba3Sopenharmony_ci} VkScreenBufferPropertiesQNX;
62e8556ba3Sopenharmony_ci
63e8556ba3Sopenharmony_citypedef struct VkScreenBufferFormatPropertiesQNX {
64e8556ba3Sopenharmony_ci    VkStructureType                  sType;
65e8556ba3Sopenharmony_ci    void*                            pNext;
66e8556ba3Sopenharmony_ci    VkFormat                         format;
67e8556ba3Sopenharmony_ci    uint64_t                         externalFormat;
68e8556ba3Sopenharmony_ci    uint64_t                         screenUsage;
69e8556ba3Sopenharmony_ci    VkFormatFeatureFlags             formatFeatures;
70e8556ba3Sopenharmony_ci    VkComponentMapping               samplerYcbcrConversionComponents;
71e8556ba3Sopenharmony_ci    VkSamplerYcbcrModelConversion    suggestedYcbcrModel;
72e8556ba3Sopenharmony_ci    VkSamplerYcbcrRange              suggestedYcbcrRange;
73e8556ba3Sopenharmony_ci    VkChromaLocation                 suggestedXChromaOffset;
74e8556ba3Sopenharmony_ci    VkChromaLocation                 suggestedYChromaOffset;
75e8556ba3Sopenharmony_ci} VkScreenBufferFormatPropertiesQNX;
76e8556ba3Sopenharmony_ci
77e8556ba3Sopenharmony_citypedef struct VkImportScreenBufferInfoQNX {
78e8556ba3Sopenharmony_ci    VkStructureType           sType;
79e8556ba3Sopenharmony_ci    const void*               pNext;
80e8556ba3Sopenharmony_ci    struct _screen_buffer*    buffer;
81e8556ba3Sopenharmony_ci} VkImportScreenBufferInfoQNX;
82e8556ba3Sopenharmony_ci
83e8556ba3Sopenharmony_citypedef struct VkExternalFormatQNX {
84e8556ba3Sopenharmony_ci    VkStructureType    sType;
85e8556ba3Sopenharmony_ci    void*              pNext;
86e8556ba3Sopenharmony_ci    uint64_t           externalFormat;
87e8556ba3Sopenharmony_ci} VkExternalFormatQNX;
88e8556ba3Sopenharmony_ci
89e8556ba3Sopenharmony_citypedef struct VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX {
90e8556ba3Sopenharmony_ci    VkStructureType    sType;
91e8556ba3Sopenharmony_ci    void*              pNext;
92e8556ba3Sopenharmony_ci    VkBool32           screenBufferImport;
93e8556ba3Sopenharmony_ci} VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX;
94e8556ba3Sopenharmony_ci
95e8556ba3Sopenharmony_citypedef VkResult (VKAPI_PTR *PFN_vkGetScreenBufferPropertiesQNX)(VkDevice device, const struct _screen_buffer* buffer, VkScreenBufferPropertiesQNX* pProperties);
96e8556ba3Sopenharmony_ci
97e8556ba3Sopenharmony_ci#ifndef VK_NO_PROTOTYPES
98e8556ba3Sopenharmony_ciVKAPI_ATTR VkResult VKAPI_CALL vkGetScreenBufferPropertiesQNX(
99e8556ba3Sopenharmony_ci    VkDevice                                    device,
100e8556ba3Sopenharmony_ci    const struct _screen_buffer*                buffer,
101e8556ba3Sopenharmony_ci    VkScreenBufferPropertiesQNX*                pProperties);
102e8556ba3Sopenharmony_ci#endif
103e8556ba3Sopenharmony_ci
104e8556ba3Sopenharmony_ci#ifdef __cplusplus
105e8556ba3Sopenharmony_ci}
106e8556ba3Sopenharmony_ci#endif
107e8556ba3Sopenharmony_ci
108e8556ba3Sopenharmony_ci#endif
109