#pragma once
#include <stdlib.h>
#include <cstring>
#include <algorithm>
#include <array>
#include <mutex>
#include <unordered_set>
#include <unordered_map>
#include <string>
#include <vector>
#include "vk_video/vulkan_video_codecs_common.h"
#include "vk_video/vulkan_video_codec_h264std.h"
#include "vk_video/vulkan_video_codec_h264std_decode.h"
#include "vk_video/vulkan_video_codec_h264std_encode.h"
#include "vk_video/vulkan_video_codec_h265std.h"
#include "vk_video/vulkan_video_codec_h265std_decode.h"
#include "vk_video/vulkan_video_codec_h265std_encode.h"
#include "vulkan/vulkan.h"
#include "vulkan/vk_icd.h"
#include "vk_typemap_helper.h"
namespace vkmock {
mutex_t;
lock_guard_t;
unique_lock_t;
static mutex_t global_lock;
static uint64_t global_unique_handle = …;
static const uint32_t SUPPORTED_LOADER_ICD_INTERFACE_VERSION = …;
static uint32_t loader_interface_version = …;
static bool negotiate_loader_icd_interface_called = …;
static void* CreateDispObjHandle() { … }
static void DestroyDispObjHandle(void* handle) { … }
static constexpr uint32_t icd_physical_device_count = …;
static std::unordered_map<VkInstance, std::array<VkPhysicalDevice, icd_physical_device_count>> physical_device_map;
static std::unordered_map<VkPhysicalDevice, std::unordered_set<VkDisplayKHR>> display_map;
static std::unordered_map<VkDeviceMemory, std::vector<void*>> mapped_memory_map;
static std::unordered_map<VkDeviceMemory, VkDeviceSize> allocated_memory_size_map;
static std::unordered_map<VkDevice, std::unordered_map<uint32_t, std::unordered_map<uint32_t, VkQueue>>> queue_map;
static VkDeviceAddress current_available_address = …;
struct BufferState { … };
static std::unordered_map<VkDevice, std::unordered_map<VkBuffer, BufferState>> buffer_map;
static std::unordered_map<VkDevice, std::unordered_map<VkImage, VkDeviceSize>> image_memory_size_map;
static std::unordered_map<VkDevice, std::unordered_set<VkCommandPool>> command_pool_map;
static std::unordered_map<VkCommandPool, std::vector<VkCommandBuffer>> command_pool_buffer_map;
static constexpr uint32_t icd_swapchain_image_count = …;
static std::unordered_map<VkSwapchainKHR, VkImage[icd_swapchain_image_count]> swapchain_image_map;
static VkPhysicalDeviceLimits SetLimits(VkPhysicalDeviceLimits* limits) { … }
void SetBoolArrayTrue(VkBool32* bool_array, uint32_t num_bools) { … }
VkDeviceSize GetImageSizeFromCreateInfo(const VkImageCreateInfo* pCreateInfo) { … }
}