From e44131af24f0da8cd5c656d52012dcf6d519ef03 Mon Sep 17 00:00:00 2001 From: Marco Rubin <20150305+Rubo3@users.noreply.github.com> Date: Fri, 4 Mar 2022 09:44:51 +0100 Subject: [PATCH] Add vkvg_status_to_string (#99) * Add vkvg_status_to_string definition * Remove unused status --- include/vkvg.h | 17 ++++++++------ src/vkvg_context.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+), 7 deletions(-) diff --git a/include/vkvg.h b/include/vkvg.h index c38b59f..a629fff 100644 --- a/include/vkvg.h +++ b/include/vkvg.h @@ -125,17 +125,10 @@ typedef enum { VKVG_STATUS_INVALID_STATUS, /*!< */ VKVG_STATUS_INVALID_INDEX, /*!< */ VKVG_STATUS_NULL_POINTER, /*!< NULL pointer*/ - VKVG_STATUS_INVALID_STRING, /*!< */ - VKVG_STATUS_INVALID_PATH_DATA, /*!< */ - VKVG_STATUS_READ_ERROR, /*!< */ VKVG_STATUS_WRITE_ERROR, /*!< */ - VKVG_STATUS_SURFACE_FINISHED, /*!< */ - VKVG_STATUS_SURFACE_TYPE_MISMATCH, /*!< */ VKVG_STATUS_PATTERN_TYPE_MISMATCH, /*!< */ VKVG_STATUS_PATTERN_INVALID_GRADIENT,/*!< occurs when stops count is zero */ - VKVG_STATUS_INVALID_CONTENT, /*!< */ VKVG_STATUS_INVALID_FORMAT, /*!< */ - VKVG_STATUS_INVALID_VISUAL, /*!< */ VKVG_STATUS_FILE_NOT_FOUND, /*!< */ VKVG_STATUS_INVALID_DASH, /*!< invalid value for a dash setting */ VKVG_STATUS_INVALID_RECT, /*!< rectangle with height or width equal to 0. */ @@ -893,6 +886,16 @@ void vkvg_destroy (VkvgContext ctx); */ vkvg_public vkvg_status_t vkvg_status (VkvgContext ctx); +/** + * vkvg_status_to_string: + * @status: a vkvg status + * + * Provides a human-readable description of a #vkvg_status_t. + * + * Returns: a string representation of the status + **/ +vkvg_public +const char *vkvg_status_to_string (vkvg_status_t status); /** * @brief Increment by one the reference count on this context. * @param ctx The context to increment the reference count for. diff --git a/src/vkvg_context.c b/src/vkvg_context.c index 6e5d125..d9bce6a 100644 --- a/src/vkvg_context.c +++ b/src/vkvg_context.c @@ -1610,3 +1610,59 @@ VkvgSurface vkvg_get_target (VkvgContext ctx) { return NULL; return ctx->pSurf; } + +/** + * vkvg_status_to_string: + * @status: a vkvg status + * + * Provides a human-readable description of a #vkvg_status_t. + * + * Returns: a string representation of the status + **/ +const char * +vkvg_status_to_string (vkvg_status_t status) { + switch (status) { + case VKVG_STATUS_SUCCESS: + return "no error has occurred"; + case VKVG_STATUS_NO_MEMORY: + return "out of memory"; + case VKVG_STATUS_INVALID_RESTORE: + return "vkvg_restore() without matching vkvg_save()"; + case VKVG_STATUS_NO_CURRENT_POINT: + return "no current point defined"; + case VKVG_STATUS_INVALID_MATRIX: + return "invalid matrix (not invertible)"; + case VKVG_STATUS_INVALID_STATUS: + return "invalid value for an input vkvg_status_t"; + case VKVG_STATUS_INVALID_INDEX: + return "invalid index passed to getter"; + case VKVG_STATUS_NULL_POINTER: + return "NULL pointer"; + case VKVG_STATUS_WRITE_ERROR: + return "error while writing to output stream"; + case VKVG_STATUS_PATTERN_TYPE_MISMATCH: + return "the pattern type is not appropriate for the operation"; + case VKVG_STATUS_PATTERN_INVALID_GRADIENT: + return "the stops count is zero"; + case VKVG_STATUS_INVALID_FORMAT: + return "invalid value for an input vkvg_format_t"; + case VKVG_STATUS_FILE_NOT_FOUND: + return "file not found"; + case VKVG_STATUS_INVALID_DASH: + return "invalid value for a dash setting"; + case VKVG_STATUS_INVALID_RECT: + return "a rectangle has the height or width equal to 0"; + case VKVG_STATUS_TIMEOUT: + return "waiting for a Vulkan operation to finish resulted in a fence timeout (5 seconds)"; + case VKVG_STATUS_DEVICE_ERROR: + return "the initialization of the device resulted in an error"; + case VKVG_STATUS_INVALID_IMAGE: + return "invalid image"; + case VKVG_STATUS_INVALID_SURFACE: + return "invalid surface"; + case VKVG_STATUS_INVALID_FONT: + return "unresolved font name"; + default: + return ""; + } +} -- 2.47.3