From c17af93683295755f0010ac451ae77334453ce7d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jean-Philippe=20Bruy=C3=A8re?= Date: Fri, 22 Mar 2019 14:33:08 +0100 Subject: [PATCH] save restore debug and test --- src/vkvg_context.c | 5 ++++- tests/save_restore.c | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 tests/save_restore.c diff --git a/src/vkvg_context.c b/src/vkvg_context.c index 2bec98f..4245307 100644 --- a/src/vkvg_context.c +++ b/src/vkvg_context.c @@ -735,6 +735,7 @@ void vkvg_save (VkvgContext ctx){ VK_IMAGE_USAGE_TRANSFER_SRC_BIT|VK_IMAGE_USAGE_TRANSFER_DST_BIT); vkh_cmd_begin (ctx->cmd, VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT); + ctx->cmdStarted = true; vkh_image_set_layout (ctx->cmd, ctx->pSurf->stencilMS, VK_IMAGE_ASPECT_STENCIL_BIT, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, @@ -806,11 +807,13 @@ void vkvg_restore (VkvgContext ctx){ ctx->pushConsts = sav->pushConsts; - _update_cur_pattern(ctx, sav->pattern); + if (sav->pattern) + _update_cur_pattern(ctx, sav->pattern); _flush_cmd_buff(ctx); vkh_cmd_begin (ctx->cmd, VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT); + ctx->cmdStarted = true; vkh_image_set_layout (ctx->cmd, ctx->pSurf->stencilMS, VK_IMAGE_ASPECT_STENCIL_BIT, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, diff --git a/tests/save_restore.c b/tests/save_restore.c new file mode 100644 index 0000000..aac9ae1 --- /dev/null +++ b/tests/save_restore.c @@ -0,0 +1,32 @@ +#include "test.h" + +void test(){ + VkvgContext ctx = vkvg_create(surf); + + vkvg_set_source_rgba(ctx,1,0,0,1); + vkvg_set_line_width(ctx,10); + vkvg_rectangle(ctx,100,100,200,200); + vkvg_stroke(ctx); + vkvg_set_source_rgba(ctx,0,1,0,1); + + vkvg_save(ctx); + + vkvg_set_source_rgba(ctx,0,1,1,1); + vkvg_set_line_width(ctx,1); + vkvg_rectangle(ctx,200,200,200,200); + vkvg_fill(ctx); + + vkvg_restore(ctx); + + vkvg_rectangle(ctx,100,100,200,200); + vkvg_stroke(ctx); + + vkvg_destroy(ctx); +} + +int main(int argc, char *argv[]) { + + perform_test (test, 600, 800); + + return 0; +} -- 2.47.3