/
redgpu
/
xess
Обзор
Документация
Войти
/
redgpu
/
xess
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
samples/basic_sample_super_resolution_vk/base/VulkanTexture.h
98 строк
3 KB
Intel XeSS
Updated to XeSS SDK 2.1.0
30 июл 2025, 22:47
30 июл 2025, 22:47
c159ef4
Код
Авторство
О чём код?
/* * Vulkan texture loader * * Copyright(C) by Sascha Willems - www.saschawillems.de * Copyright (C) 2024 Intel Corporation * * This code is licensed under the MIT license(MIT) (http://opensource.org/licenses/MIT) */ #pragma once #include <fstream> #include <stdlib.h> #include <string> #include <vector> #include "vulkan/vulkan.h" //#include <ktx.h> //#include <ktxvulkan.h> #include "VulkanBuffer.h" #include "VulkanDevice.h" #include "VulkanTools.h" #if defined(__ANDROID__) # include <android/asset_manager.h> #endif namespace vks { class Texture { public: vks::VulkanDevice * device; VkImage image; VkImageLayout imageLayout; VkDeviceMemory deviceMemory; VkImageView view; uint32_t width, height; uint32_t mipLevels; uint32_t layerCount; VkDescriptorImageInfo descriptor; VkSampler sampler; void updateDescriptor(); void destroy(); //ktxResult loadKTXFile(std::string filename, ktxTexture **target); }; class Texture2D : public Texture { public: void loadFromFile( std::string filename, VkFormat format, vks::VulkanDevice *device, VkQueue copyQueue, VkImageUsageFlags imageUsageFlags = VK_IMAGE_USAGE_SAMPLED_BIT, VkImageLayout imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, bool forceLinear = false); void fromBuffer( void * buffer, VkDeviceSize bufferSize, VkFormat format, uint32_t texWidth, uint32_t texHeight, vks::VulkanDevice *device, VkQueue copyQueue, VkFilter filter = VK_FILTER_LINEAR, VkImageUsageFlags imageUsageFlags = VK_IMAGE_USAGE_SAMPLED_BIT, VkImageLayout imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL); }; class Texture2DArray : public Texture { public: void loadFromFile( std::string filename, VkFormat format, vks::VulkanDevice *device, VkQueue copyQueue, VkImageUsageFlags imageUsageFlags = VK_IMAGE_USAGE_SAMPLED_BIT, VkImageLayout imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL); }; class TextureCubeMap : public Texture { public: void loadFromFile( std::string filename, VkFormat format, vks::VulkanDevice *device, VkQueue copyQueue, VkImageUsageFlags imageUsageFlags = VK_IMAGE_USAGE_SAMPLED_BIT, VkImageLayout imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL); }; } // namespace vks