[vulkan] Use the previously existing tex_t formats

I'd forgotten we had these (though direct GL_* was used).
This commit is contained in:
Bill Currie 2021-01-16 15:39:36 +09:00
parent fa6ff04c5a
commit f3695ec3dd
3 changed files with 11 additions and 13 deletions

View file

@ -1,17 +1,12 @@
#ifndef __QF_Vulkan_texture_h
#define __QF_Vulkan_texture_h
typedef enum {
QFV_LUMINANCE,
QFV_LUMINANCE_ALPHA,
QFV_RGB,
QFV_RGBA,
} QFVFormat;
#include "QF/image.h"
typedef struct scrap_s scrap_t;
scrap_t *QFV_CreateScrap (struct qfv_device_s *device, int size,
QFVFormat format);
QFFormat format);
void QFV_ScrapClear (scrap_t *scrap);
void QFV_DestroyScrap (scrap_t *scrap);
VkImageView QFV_ScrapImageView (scrap_t *scrap) __attribute__((pure));

View file

@ -42,6 +42,7 @@
#include "QF/cvar.h"
#include "QF/dstring.h"
#include "QF/hash.h"
#include "QF/image.h"
#include "QF/qfplist.h"
#include "QF/quakefs.h"
#include "QF/render.h"
@ -75,25 +76,27 @@ struct scrap_s {
};
scrap_t *
QFV_CreateScrap (qfv_device_t *device, int size, QFVFormat format)
QFV_CreateScrap (qfv_device_t *device, int size, QFFormat format)
{
int bpp = 0;
VkFormat fmt = VK_FORMAT_UNDEFINED;
switch (format) {
case QFV_LUMINANCE:
case tex_l:
case tex_a:
case tex_palette:
bpp = 1;
fmt = VK_FORMAT_R8_UNORM;
break;
case QFV_LUMINANCE_ALPHA:
case tex_la:
bpp = 2;
fmt = VK_FORMAT_R8G8_UNORM;
break;
case QFV_RGB:
case tex_rgb:
bpp = 3;
fmt = VK_FORMAT_R8G8B8_UNORM;
break;
case QFV_RGBA:
case tex_rgba:
bpp = 4;
fmt = VK_FORMAT_R8G8B8A8_UNORM;
break;

View file

@ -367,7 +367,7 @@ Vulkan_Draw_Init (vulkan_ctx_t *ctx)
0, 0);
create_quad_buffers (ctx);
dctx->scrap = QFV_CreateScrap (device, 2048, QFV_RGBA);
dctx->scrap = QFV_CreateScrap (device, 2048, tex_rgba);
dctx->stage = QFV_CreateStagingBuffer (device, 4 * 1024 * 1024, 4,
ctx->cmdpool);
dctx->sampler = QFV_GetSampler (ctx, "quakepic");