mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-02-25 05:01:24 +00:00
While every possible subsystem needs an initialization call, all that does is add the actual initialization task to the render graph system. This allows the render graph to be fully configurable, initializing only those subsystems that the graph needs. Scripted initialization is still separated from startup as render graph creation needs various resources (eg, attachments) defined before creating render and compute passes, but all those need to be created before the subsystems can actually start up.
49 lines
1.2 KiB
C
49 lines
1.2 KiB
C
#ifndef __QF_Vulkan_qf_translucent_h
|
|
#define __QF_Vulkan_qf_translucent_h
|
|
|
|
#include "QF/darray.h"
|
|
|
|
#include "QF/simd/types.h"
|
|
|
|
#include "QF/Vulkan/command.h"
|
|
|
|
typedef struct qfv_transfrag_s {
|
|
vec4f_t color;
|
|
float depth;
|
|
int32_t next;
|
|
} qfv_transfrag_t;
|
|
|
|
typedef struct qfv_transtate_s {
|
|
int32_t numFragments;
|
|
int32_t maxFragments;
|
|
} qfv_transtate_t;
|
|
|
|
typedef struct translucentframe_s {
|
|
VkDescriptorSet flat;
|
|
VkDescriptorSet cube;
|
|
struct qfv_resobj_s *heads;
|
|
struct qfv_resobj_s *cube_heads;
|
|
struct qfv_resobj_s *heads_view;
|
|
struct qfv_resobj_s *cube_heads_view;
|
|
struct qfv_resobj_s *state;
|
|
struct qfv_resobj_s *frags;
|
|
} translucentframe_t;
|
|
|
|
typedef struct translucentframeset_s
|
|
DARRAY_TYPE (translucentframe_t) translucentframeset_t;
|
|
|
|
typedef struct translucentctx_s {
|
|
translucentframeset_t frames;
|
|
struct qfv_resource_s *resources;
|
|
VkExtent2D extent;
|
|
|
|
int maxFragments;
|
|
} translucentctx_t;
|
|
|
|
struct vulkan_ctx_s;
|
|
|
|
void Vulkan_Translucent_Init (struct vulkan_ctx_s *ctx);
|
|
VkDescriptorSet Vulkan_Translucent_Descriptors (struct vulkan_ctx_s *ctx,
|
|
int frame)__attribute__((pure));
|
|
|
|
#endif//__QF_Vulkan_qf_translucent_h
|