48 lines
1.2 KiB
C
48 lines
1.2 KiB
C
#pragma once
|
|
|
|
#include "r_textures.h"
|
|
#include "vk_core.h"
|
|
#include "vk_image.h"
|
|
#include "vk_const.h"
|
|
|
|
#include "unordered_roadmap.h"
|
|
|
|
typedef struct vk_texture_s
|
|
{
|
|
urmom_header_t hdr_;
|
|
|
|
int width, height, depth;
|
|
uint32_t flags;
|
|
int total_size;
|
|
|
|
struct {
|
|
r_vk_image_t image;
|
|
|
|
// TODO external table
|
|
VkDescriptorSet descriptor_unorm;
|
|
} vk;
|
|
|
|
int refcount;
|
|
qboolean ref_interface_visible;
|
|
|
|
// TODO "cache" eviction
|
|
// int used_maps_ago;
|
|
} vk_texture_t;
|
|
|
|
#define TEX_NAME(tex) ((tex)->hdr_.key)
|
|
|
|
qboolean R_VkTexturesInit( void );
|
|
void R_VkTexturesShutdown( void );
|
|
|
|
qboolean R_VkTexturesSkyboxUpload( const char *name, const rgbdata_t *pic, colorspace_hint_e colorspace_hint, skybox_slot_e skybox_slot );
|
|
void R_VkTexturesSkyboxUnload(void);
|
|
|
|
qboolean R_VkTextureUpload(int index, vk_texture_t *tex, const rgbdata_t *pic, colorspace_hint_e colorspace_hint);
|
|
void R_VkTextureDestroy(int index, vk_texture_t *tex);
|
|
|
|
VkDescriptorImageInfo R_VkTexturesGetSkyboxDescriptorImageInfo( skybox_slot_e slot );
|
|
const VkDescriptorImageInfo* R_VkTexturesGetAllDescriptorsArray( void );
|
|
VkDescriptorSet R_VkTextureGetDescriptorUnorm( uint index );
|
|
|
|
VkDescriptorImageInfo R_VkTexturesGetBlueNoiseImageInfo( void );
|