vkd3d-shader/hlsl: Add DepthStencilView object type.

This commit is contained in:
Nikolay Sivov 2024-02-11 19:11:57 +01:00 committed by Alexandre Julliard
parent 9632adaaec
commit 371be3b60a
Notes: Alexandre Julliard 2024-02-22 23:03:49 +01:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Zebediah Figura (@zfigura)
Approved-by: Henri Verbeet (@hverbeet)
Approved-by: Alexandre Julliard (@julliard)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/660
3 changed files with 8 additions and 4 deletions

View File

@ -3380,7 +3380,7 @@ static void declare_predefined_types(struct hlsl_ctx *ctx)
static const struct
{
char name[13];
char name[20];
enum hlsl_type_class class;
enum hlsl_base_type base_type;
unsigned int dimx, dimy;
@ -3396,6 +3396,8 @@ static void declare_predefined_types(struct hlsl_ctx *ctx)
{"TEXTURE", HLSL_CLASS_OBJECT, HLSL_TYPE_TEXTURE, 1, 1},
{"PIXELSHADER", HLSL_CLASS_OBJECT, HLSL_TYPE_PIXELSHADER, 1, 1},
{"VERTEXSHADER", HLSL_CLASS_OBJECT, HLSL_TYPE_VERTEXSHADER, 1, 1},
{"RenderTargetView",HLSL_CLASS_OBJECT, HLSL_TYPE_RENDERTARGETVIEW, 1, 1},
{"DepthStencilView",HLSL_CLASS_OBJECT, HLSL_TYPE_DEPTHSTENCILVIEW, 1, 1},
};
static const struct
@ -3521,9 +3523,6 @@ static void declare_predefined_types(struct hlsl_ctx *ctx)
type->e.version = technique_types[i].version;
hlsl_scope_add_type(ctx->globals, type);
}
type = hlsl_new_type(ctx, "RenderTargetView", HLSL_CLASS_OBJECT, HLSL_TYPE_RENDERTARGETVIEW, 1, 1);
hlsl_scope_add_type(ctx->globals, type);
}
static bool hlsl_ctx_init(struct hlsl_ctx *ctx, const struct vkd3d_shader_compile_info *compile_info,

View File

@ -97,6 +97,7 @@ enum hlsl_base_type
HLSL_TYPE_VERTEXSHADER,
HLSL_TYPE_PASS,
HLSL_TYPE_RENDERTARGETVIEW,
HLSL_TYPE_DEPTHSTENCILVIEW,
HLSL_TYPE_TECHNIQUE,
HLSL_TYPE_EFFECT_GROUP,
HLSL_TYPE_STRING,

View File

@ -6450,6 +6450,10 @@ type_no_void:
{
$$ = hlsl_get_type(ctx->cur_scope, "RenderTargetView", true, true);
}
| KW_DEPTHSTENCILVIEW
{
$$ = hlsl_get_type(ctx->cur_scope, "DepthStencilView", true, true);
}
type:
type_no_void