mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2024-11-26 06:10:56 +00:00
[vulkan] Be more consistent with parse context naming
This commit is contained in:
parent
8842db082f
commit
f9e45aec4c
1 changed files with 38 additions and 34 deletions
|
@ -152,8 +152,9 @@ parse_basic (const plfield_t *field, const plitem_t *item,
|
||||||
void *data, plitem_t *messages, void *context)
|
void *data, plitem_t *messages, void *context)
|
||||||
{
|
{
|
||||||
int ret = 1;
|
int ret = 1;
|
||||||
|
parsectx_t *pctx = context;
|
||||||
__auto_type etype = (exprtype_t *) field->data;
|
__auto_type etype = (exprtype_t *) field->data;
|
||||||
exprctx_t ectx = *((parsectx_t *) context)->ectx;
|
exprctx_t ectx = *pctx->ectx;
|
||||||
exprval_t result = { etype, data };
|
exprval_t result = { etype, data };
|
||||||
ectx.result = &result;
|
ectx.result = &result;
|
||||||
ectx.item = item;
|
ectx.item = item;
|
||||||
|
@ -184,8 +185,9 @@ parse_int32_t (const plfield_t *field, const plitem_t *item,
|
||||||
// use size_t (and cexpr_size_t) for val so references to array sizes
|
// use size_t (and cexpr_size_t) for val so references to array sizes
|
||||||
// can be used
|
// can be used
|
||||||
size_t val = 0;
|
size_t val = 0;
|
||||||
|
parsectx_t *pctx = context;
|
||||||
exprval_t result = { &cexpr_size_t, &val };
|
exprval_t result = { &cexpr_size_t, &val };
|
||||||
exprctx_t ectx = *((parsectx_t *) context)->ectx;
|
exprctx_t ectx = *pctx->ectx;
|
||||||
ectx.result = &result;
|
ectx.result = &result;
|
||||||
ectx.item = item;
|
ectx.item = item;
|
||||||
const char *valstr = PL_String (item);
|
const char *valstr = PL_String (item);
|
||||||
|
@ -212,8 +214,9 @@ parse_uint32_t (const plfield_t *field, const plitem_t *item,
|
||||||
// use size_t (and cexpr_size_t) for val so references to array sizes
|
// use size_t (and cexpr_size_t) for val so references to array sizes
|
||||||
// can be used
|
// can be used
|
||||||
size_t val = 0;
|
size_t val = 0;
|
||||||
|
parsectx_t *pctx = context;
|
||||||
exprval_t result = { &cexpr_size_t, &val };
|
exprval_t result = { &cexpr_size_t, &val };
|
||||||
exprctx_t ectx = *((parsectx_t *) context)->ectx;
|
exprctx_t ectx = *pctx->ectx;
|
||||||
ectx.result = &result;
|
ectx.result = &result;
|
||||||
ectx.item = item;
|
ectx.item = item;
|
||||||
const char *valstr = PL_String (item);
|
const char *valstr = PL_String (item);
|
||||||
|
@ -246,9 +249,10 @@ parse_enum (const plfield_t *field, const plitem_t *item,
|
||||||
{
|
{
|
||||||
int ret = 1;
|
int ret = 1;
|
||||||
__auto_type enm = (exprenum_t *) field->data;
|
__auto_type enm = (exprenum_t *) field->data;
|
||||||
exprctx_t ectx = *((parsectx_t *)context)->ectx;
|
parsectx_t *pctx = context;
|
||||||
|
exprctx_t ectx = *pctx->ectx;
|
||||||
exprval_t result = { enm->type, data };
|
exprval_t result = { enm->type, data };
|
||||||
ectx.parent = ((parsectx_t *)context)->ectx;
|
ectx.parent = pctx->ectx;
|
||||||
ectx.symtab = enm->symtab;
|
ectx.symtab = enm->symtab;
|
||||||
ectx.result = &result;
|
ectx.result = &result;
|
||||||
const char *valstr = PL_String (item);
|
const char *valstr = PL_String (item);
|
||||||
|
@ -416,7 +420,8 @@ static int
|
||||||
parse_inherit (const plfield_t *field, const plitem_t *item,
|
parse_inherit (const plfield_t *field, const plitem_t *item,
|
||||||
void *data, plitem_t *messages, void *context)
|
void *data, plitem_t *messages, void *context)
|
||||||
{
|
{
|
||||||
exprctx_t ectx = *((parsectx_t *)context)->ectx;
|
parsectx_t *pctx = context;
|
||||||
|
exprctx_t ectx = *pctx->ectx;
|
||||||
plitem_t *inheritItem = 0;
|
plitem_t *inheritItem = 0;
|
||||||
exprval_t result = { &cexpr_plitem, &inheritItem };
|
exprval_t result = { &cexpr_plitem, &inheritItem };
|
||||||
ectx.result = &result;
|
ectx.result = &result;
|
||||||
|
@ -509,11 +514,10 @@ resource_path (vulkan_ctx_t *ctx, const char *prefix, const char *name)
|
||||||
|
|
||||||
static int
|
static int
|
||||||
parse_VkRenderPass (const plitem_t *item, void **data,
|
parse_VkRenderPass (const plitem_t *item, void **data,
|
||||||
plitem_t *messages, parsectx_t *context)
|
plitem_t *messages, parsectx_t *pctx)
|
||||||
{
|
{
|
||||||
__auto_type handle = (VkRenderPass *) data[0];
|
__auto_type handle = (VkRenderPass *) data[0];
|
||||||
int ret = 1;
|
int ret = 1;
|
||||||
parsectx_t *pctx = context;
|
|
||||||
exprctx_t ectx = *pctx->ectx;
|
exprctx_t ectx = *pctx->ectx;
|
||||||
vulkan_ctx_t *ctx = pctx->vctx;
|
vulkan_ctx_t *ctx = pctx->vctx;
|
||||||
|
|
||||||
|
@ -545,10 +549,10 @@ parse_VkRenderPass (const plitem_t *item, void **data,
|
||||||
|
|
||||||
static int
|
static int
|
||||||
parse_VkShaderModule (const plitem_t *item, void **data,
|
parse_VkShaderModule (const plitem_t *item, void **data,
|
||||||
plitem_t *messages, parsectx_t *context)
|
plitem_t *messages, parsectx_t *pctx)
|
||||||
{
|
{
|
||||||
__auto_type handle = (VkShaderModule *) data[0];
|
__auto_type handle = (VkShaderModule *) data[0];
|
||||||
vulkan_ctx_t *ctx = context->vctx;
|
vulkan_ctx_t *ctx = pctx->vctx;
|
||||||
qfv_device_t *device = ctx->device;
|
qfv_device_t *device = ctx->device;
|
||||||
|
|
||||||
const char *name = PL_String (item);
|
const char *name = PL_String (item);
|
||||||
|
@ -607,12 +611,12 @@ parse_VkDescriptorSetLayout (const plfield_t *field, const plitem_t *item,
|
||||||
|
|
||||||
static int
|
static int
|
||||||
parse_VkPipelineLayout (const plitem_t *item, void **data,
|
parse_VkPipelineLayout (const plitem_t *item, void **data,
|
||||||
plitem_t *messages, parsectx_t *context)
|
plitem_t *messages, parsectx_t *pctx)
|
||||||
{
|
{
|
||||||
__auto_type handle = (VkPipelineLayout *) data[0];
|
__auto_type handle = (VkPipelineLayout *) data[0];
|
||||||
int ret = 1;
|
int ret = 1;
|
||||||
exprctx_t ectx = *context->ectx;
|
exprctx_t ectx = *pctx->ectx;
|
||||||
vulkan_ctx_t *ctx = context->vctx;
|
vulkan_ctx_t *ctx = pctx->vctx;
|
||||||
|
|
||||||
const char *name = PL_String (item);
|
const char *name = PL_String (item);
|
||||||
const char *path = resource_path (ctx, "pipelineLayouts", name);
|
const char *path = resource_path (ctx, "pipelineLayouts", name);
|
||||||
|
@ -630,7 +634,7 @@ parse_VkPipelineLayout (const plitem_t *item, void **data,
|
||||||
ret = !cexpr_eval_string (path, &ectx);
|
ret = !cexpr_eval_string (path, &ectx);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
VkPipelineLayout layout;
|
VkPipelineLayout layout;
|
||||||
layout = QFV_ParsePipelineLayout (ctx, setItem, context->properties);
|
layout = QFV_ParsePipelineLayout (ctx, setItem, pctx->properties);
|
||||||
*handle = (VkPipelineLayout) layout;
|
*handle = (VkPipelineLayout) layout;
|
||||||
|
|
||||||
// path not guaranteed to survive cexpr_eval_string due to va
|
// path not guaranteed to survive cexpr_eval_string due to va
|
||||||
|
@ -642,12 +646,12 @@ parse_VkPipelineLayout (const plitem_t *item, void **data,
|
||||||
|
|
||||||
static int
|
static int
|
||||||
parse_VkImage (const plitem_t *item, void **data, plitem_t *messages,
|
parse_VkImage (const plitem_t *item, void **data, plitem_t *messages,
|
||||||
parsectx_t *context)
|
parsectx_t *pctx)
|
||||||
{
|
{
|
||||||
__auto_type handle = (VkImage *) data[0];
|
__auto_type handle = (VkImage *) data[0];
|
||||||
int ret = 1;
|
int ret = 1;
|
||||||
exprctx_t ectx = *context->ectx;
|
exprctx_t ectx = *pctx->ectx;
|
||||||
vulkan_ctx_t *ctx = context->vctx;
|
vulkan_ctx_t *ctx = pctx->vctx;
|
||||||
|
|
||||||
const char *name = PL_String (item);
|
const char *name = PL_String (item);
|
||||||
const char *path = resource_path (ctx, "images", name);
|
const char *path = resource_path (ctx, "images", name);
|
||||||
|
@ -665,7 +669,7 @@ parse_VkImage (const plitem_t *item, void **data, plitem_t *messages,
|
||||||
ret = !cexpr_eval_string (path, &ectx);
|
ret = !cexpr_eval_string (path, &ectx);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
VkImage image;
|
VkImage image;
|
||||||
image = QFV_ParseImage (ctx, imageItem, context->properties);
|
image = QFV_ParseImage (ctx, imageItem, pctx->properties);
|
||||||
*handle = (VkImage) image;
|
*handle = (VkImage) image;
|
||||||
|
|
||||||
// path not guaranteed to survive cexpr_eval_string due to va
|
// path not guaranteed to survive cexpr_eval_string due to va
|
||||||
|
@ -685,13 +689,13 @@ exprtype_t VkImageView_type = {
|
||||||
|
|
||||||
static int
|
static int
|
||||||
parse_VkImageView (const plfield_t *field, const plitem_t *item, void *data,
|
parse_VkImageView (const plfield_t *field, const plitem_t *item, void *data,
|
||||||
plitem_t *messages, void *_context)
|
plitem_t *messages, void *context)
|
||||||
{
|
{
|
||||||
parsectx_t *context = _context;
|
parsectx_t *pctx = context;
|
||||||
__auto_type handle = (VkImageView *) data;
|
__auto_type handle = (VkImageView *) data;
|
||||||
int ret = 1;
|
int ret = 1;
|
||||||
exprctx_t ectx = *context->ectx;
|
exprctx_t ectx = *pctx->ectx;
|
||||||
vulkan_ctx_t *ctx = context->vctx;
|
vulkan_ctx_t *ctx = pctx->vctx;
|
||||||
|
|
||||||
const char *name = PL_String (item);
|
const char *name = PL_String (item);
|
||||||
const char *path = resource_path (ctx, "imageViews", name);
|
const char *path = resource_path (ctx, "imageViews", name);
|
||||||
|
@ -715,7 +719,7 @@ parse_VkImageView (const plfield_t *field, const plitem_t *item, void *data,
|
||||||
imageView = *(VkImageView *) value->value;
|
imageView = *(VkImageView *) value->value;
|
||||||
} else if (value->type == &cexpr_plitem) {
|
} else if (value->type == &cexpr_plitem) {
|
||||||
imageView = QFV_ParseImageView (ctx, imageViewItem,
|
imageView = QFV_ParseImageView (ctx, imageViewItem,
|
||||||
context->properties);
|
pctx->properties);
|
||||||
// path not guaranteed to survive cexpr_eval_string due to va
|
// path not guaranteed to survive cexpr_eval_string due to va
|
||||||
path = resource_path (ctx, "imageViews", name);
|
path = resource_path (ctx, "imageViews", name);
|
||||||
QFV_AddHandle (ctx->imageViews, path, (uint64_t) imageView);
|
QFV_AddHandle (ctx->imageViews, path, (uint64_t) imageView);
|
||||||
|
@ -866,7 +870,7 @@ static hashtab_t *enum_symtab;
|
||||||
|
|
||||||
static int
|
static int
|
||||||
parse_BasePipeline (const plitem_t *item, void **data,
|
parse_BasePipeline (const plitem_t *item, void **data,
|
||||||
plitem_t *messages, parsectx_t *context)
|
plitem_t *messages, parsectx_t *pctx)
|
||||||
{
|
{
|
||||||
*(VkPipeline *) data = 0;
|
*(VkPipeline *) data = 0;
|
||||||
PL_Message (messages, item, "not implemented");
|
PL_Message (messages, item, "not implemented");
|
||||||
|
@ -914,7 +918,7 @@ static exprtab_t data_array_symtab = {
|
||||||
|
|
||||||
static int
|
static int
|
||||||
parse_specialization_data (const plitem_t *item, void **data,
|
parse_specialization_data (const plitem_t *item, void **data,
|
||||||
plitem_t *messages, parsectx_t *context)
|
plitem_t *messages, parsectx_t *pctx)
|
||||||
{
|
{
|
||||||
size_t *size_ptr = (size_t *) data[0];
|
size_t *size_ptr = (size_t *) data[0];
|
||||||
void **data_ptr = (void **) data[1];
|
void **data_ptr = (void **) data[1];
|
||||||
|
@ -923,16 +927,16 @@ parse_specialization_data (const plitem_t *item, void **data,
|
||||||
const void *bindata = PL_BinaryData (item);
|
const void *bindata = PL_BinaryData (item);
|
||||||
size_t binsize = PL_BinarySize (item);
|
size_t binsize = PL_BinarySize (item);
|
||||||
|
|
||||||
*data_ptr = vkparse_alloc (context, binsize);
|
*data_ptr = vkparse_alloc (pctx, binsize);
|
||||||
memcpy (*data_ptr, bindata, binsize);
|
memcpy (*data_ptr, bindata, binsize);
|
||||||
*size_ptr = binsize;
|
*size_ptr = binsize;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
data_array_t *da= 0;
|
data_array_t *da= 0;
|
||||||
exprctx_t ectx = *((parsectx_t *)context)->ectx;
|
exprctx_t ectx = *pctx->ectx;
|
||||||
exprval_t result = { &data_array_type, &da };
|
exprval_t result = { &data_array_type, &da };
|
||||||
ectx.parent = ((parsectx_t *)context)->ectx;
|
ectx.parent = pctx->ectx;
|
||||||
ectx.symtab = &data_array_symtab;
|
ectx.symtab = &data_array_symtab;
|
||||||
ectx.result = &result;
|
ectx.result = &result;
|
||||||
ectx.item = item;
|
ectx.item = item;
|
||||||
|
@ -1025,14 +1029,14 @@ root_symtab_init (void)
|
||||||
void
|
void
|
||||||
QFV_InitParse (vulkan_ctx_t *ctx)
|
QFV_InitParse (vulkan_ctx_t *ctx)
|
||||||
{
|
{
|
||||||
exprctx_t context = {};
|
exprctx_t ectx = {};
|
||||||
enum_symtab = Hash_NewTable (61, enum_symtab_getkey, 0, 0, &ctx->hashctx);
|
enum_symtab = Hash_NewTable (61, enum_symtab_getkey, 0, 0, &ctx->hashctx);
|
||||||
parser_table = Hash_NewTable (61, parser_getkey, 0, 0, &ctx->hashctx);
|
parser_table = Hash_NewTable (61, parser_getkey, 0, 0, &ctx->hashctx);
|
||||||
context.hashctx = &ctx->hashctx;
|
ectx.hashctx = &ctx->hashctx;
|
||||||
vkgen_init_symtabs (&context);
|
vkgen_init_symtabs (&ectx);
|
||||||
cexpr_init_symtab (&qfv_output_t_symtab, &context);
|
cexpr_init_symtab (&qfv_output_t_symtab, &ectx);
|
||||||
cexpr_init_symtab (&vulkan_frameset_t_symtab, &context);
|
cexpr_init_symtab (&vulkan_frameset_t_symtab, &ectx);
|
||||||
cexpr_init_symtab (&data_array_symtab, &context);
|
cexpr_init_symtab (&data_array_symtab, &ectx);
|
||||||
|
|
||||||
if (!ctx->setLayouts) {
|
if (!ctx->setLayouts) {
|
||||||
ctx->shaderModules = handlref_symtab (shaderModule_free, ctx);
|
ctx->shaderModules = handlref_symtab (shaderModule_free, ctx);
|
||||||
|
|
Loading…
Reference in a new issue