Zebediah Figura : vkd3d-shader: Implement hlsl_note().
Alexandre Julliard
julliard at winehq.org
Tue Feb 23 15:51:18 CST 2021
Module: vkd3d
Branch: master
Commit: 87a371292d7cdb5b7eb2159b49c24d3fdfb4c2e6
URL: https://source.winehq.org/git/vkd3d.git/?a=commit;h=87a371292d7cdb5b7eb2159b49c24d3fdfb4c2e6
Author: Zebediah Figura <zfigura at codeweavers.com>
Date: Sun Feb 21 22:04:38 2021 -0600
vkd3d-shader: Implement hlsl_note().
Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
Signed-off-by: Matteo Bruni <mbruni at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
libs/vkd3d-shader/hlsl.c | 6 +++++-
libs/vkd3d-shader/vkd3d_shader_main.c | 20 ++++++++++++++++++++
libs/vkd3d-shader/vkd3d_shader_private.h | 2 ++
3 files changed, 27 insertions(+), 1 deletion(-)
diff --git a/libs/vkd3d-shader/hlsl.c b/libs/vkd3d-shader/hlsl.c
index dbc6954..52b3dd1 100644
--- a/libs/vkd3d-shader/hlsl.c
+++ b/libs/vkd3d-shader/hlsl.c
@@ -23,7 +23,11 @@
void hlsl_note(struct hlsl_ctx *ctx, const struct vkd3d_shader_location loc,
enum vkd3d_shader_log_level level, const char *fmt, ...)
{
- /* FIXME */
+ va_list args;
+
+ va_start(args, fmt);
+ vkd3d_shader_vnote(ctx->message_context, &loc, level, fmt, args);
+ va_end(args);
}
void hlsl_error(struct hlsl_ctx *ctx, const struct vkd3d_shader_location loc,
diff --git a/libs/vkd3d-shader/vkd3d_shader_main.c b/libs/vkd3d-shader/vkd3d_shader_main.c
index 6f1482a..bae2852 100644
--- a/libs/vkd3d-shader/vkd3d_shader_main.c
+++ b/libs/vkd3d-shader/vkd3d_shader_main.c
@@ -144,6 +144,26 @@ bool vkd3d_shader_message_context_copy_messages(struct vkd3d_shader_message_cont
return true;
}
+void vkd3d_shader_vnote(struct vkd3d_shader_message_context *context, const struct vkd3d_shader_location *location,
+ enum vkd3d_shader_log_level level, const char *format, va_list args)
+{
+ if (context->log_level < level)
+ return;
+
+ if (location)
+ {
+ const char *source_name = location->source_name ? location->source_name : "<anonymous>";
+
+ if (location->line)
+ vkd3d_string_buffer_printf(&context->messages, "%s:%u:%u: ",
+ source_name, location->line, location->column);
+ else
+ vkd3d_string_buffer_printf(&context->messages, "%s: ", source_name);
+ }
+ vkd3d_string_buffer_vprintf(&context->messages, format, args);
+ vkd3d_string_buffer_printf(&context->messages, "\n");
+}
+
void vkd3d_shader_vwarning(struct vkd3d_shader_message_context *context, const struct vkd3d_shader_location *location,
enum vkd3d_shader_error error, const char *format, va_list args)
{
diff --git a/libs/vkd3d-shader/vkd3d_shader_private.h b/libs/vkd3d-shader/vkd3d_shader_private.h
index 2d7eb05..e837dbc 100644
--- a/libs/vkd3d-shader/vkd3d_shader_private.h
+++ b/libs/vkd3d-shader/vkd3d_shader_private.h
@@ -906,6 +906,8 @@ void vkd3d_shader_error(struct vkd3d_shader_message_context *context, const stru
enum vkd3d_shader_error error, const char *format, ...) VKD3D_PRINTF_FUNC(4, 5) DECLSPEC_HIDDEN;
void vkd3d_shader_verror(struct vkd3d_shader_message_context *context, const struct vkd3d_shader_location *location,
enum vkd3d_shader_error error, const char *format, va_list args) DECLSPEC_HIDDEN;
+void vkd3d_shader_vnote(struct vkd3d_shader_message_context *context, const struct vkd3d_shader_location *location,
+ enum vkd3d_shader_log_level level, const char *format, va_list args) DECLSPEC_HIDDEN;
void vkd3d_shader_vwarning(struct vkd3d_shader_message_context *context, const struct vkd3d_shader_location *location,
enum vkd3d_shader_error error, const char *format, va_list args) DECLSPEC_HIDDEN;
More information about the wine-cvs
mailing list