mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-09-12 18:50:22 -07:00
vkd3d-shader: Implement an initial pass-through HLSL preprocessor.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
committed by
Alexandre Julliard
parent
5065cb6c1f
commit
f544cb38e5
@@ -78,8 +78,7 @@ int vkd3d_string_buffer_vprintf(struct vkd3d_string_buffer *buffer, const char *
|
||||
}
|
||||
}
|
||||
|
||||
static int VKD3D_PRINTF_FUNC(2, 3) vkd3d_string_buffer_printf(struct vkd3d_string_buffer *buffer,
|
||||
const char *format, ...)
|
||||
int vkd3d_string_buffer_printf(struct vkd3d_string_buffer *buffer, const char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
int ret;
|
||||
@@ -91,7 +90,7 @@ static int VKD3D_PRINTF_FUNC(2, 3) vkd3d_string_buffer_printf(struct vkd3d_strin
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void vkd3d_string_buffer_trace_(const struct vkd3d_string_buffer *buffer, const char *function)
|
||||
void vkd3d_string_buffer_trace_(const struct vkd3d_string_buffer *buffer, const char *function)
|
||||
{
|
||||
const char *p, *q, *end = buffer->buffer + buffer->content_size;
|
||||
|
||||
@@ -1154,6 +1153,7 @@ const enum vkd3d_shader_target_type *vkd3d_shader_get_supported_target_types(
|
||||
int vkd3d_shader_preprocess(const struct vkd3d_shader_compile_info *compile_info,
|
||||
struct vkd3d_shader_code *out, char **messages)
|
||||
{
|
||||
struct vkd3d_shader_message_context message_context;
|
||||
int ret;
|
||||
|
||||
TRACE("compile_info %p, out %p, messages %p.\n", compile_info, out, messages);
|
||||
@@ -1164,5 +1164,13 @@ int vkd3d_shader_preprocess(const struct vkd3d_shader_compile_info *compile_info
|
||||
if ((ret = vkd3d_shader_validate_compile_info(compile_info, false)) < 0)
|
||||
return ret;
|
||||
|
||||
return VKD3D_ERROR_NOT_IMPLEMENTED;
|
||||
vkd3d_shader_message_context_init(&message_context, compile_info->log_level, compile_info->source_name);
|
||||
|
||||
ret = preproc_lexer_parse(compile_info, out, &message_context);
|
||||
|
||||
vkd3d_shader_message_context_trace_messages(&message_context);
|
||||
if (!vkd3d_shader_message_context_copy_messages(&message_context, messages))
|
||||
ret = VKD3D_ERROR_OUT_OF_MEMORY;
|
||||
vkd3d_shader_message_context_cleanup(&message_context);
|
||||
return ret;
|
||||
}
|
||||
|
Reference in New Issue
Block a user