diff options
author | Niklas Haas <git@haasn.xyz> | 2020-05-18 02:07:50 +0300 |
---|---|---|
committer | Niklas Haas <git@haasn.xyz> | 2020-05-18 03:10:38 +0300 |
commit | 3bb0aed103a6b3791dda3f2539be7d4c59476292 (patch) | |
tree | ecf9f28b9e7f77b62e008eff97790ddbbb279eb5 /examples | |
parent | 239b87f071cd016376b196617a896683591b7626 (diff) |
dav1dplay: don't write directly to iparams.extensions
This is turned into a const array in upstream libplacebo, which
generates warnings due to the implicit cast. Rewrite the code to have
the mutable array live inside a separate variable `extensions` and only
set `iparams.extensions` to this, rather than directly manipulating it.
Diffstat (limited to 'examples')
-rw-r--r-- | examples/dp_renderer_placebo.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/examples/dp_renderer_placebo.c b/examples/dp_renderer_placebo.c index 685c1e7..12bfe86 100644 --- a/examples/dp_renderer_placebo.c +++ b/examples/dp_renderer_placebo.c @@ -206,19 +206,16 @@ static void *placebo_renderer_create_vk() sdlwin = rd_priv_ctx->win; // Init Vulkan - struct pl_vk_inst_params iparams = pl_vk_inst_default_params; - unsigned num = 0; if (!SDL_Vulkan_GetInstanceExtensions(sdlwin, &num, NULL)) { fprintf(stderr, "Failed enumerating Vulkan extensions: %s\n", SDL_GetError()); exit(1); } - iparams.extensions = malloc(num * sizeof(const char *)); - iparams.num_extensions = num; - assert(iparams.extensions); + const char **extensions = malloc(num * sizeof(const char *)); + assert(extensions); - SDL_bool ok = SDL_Vulkan_GetInstanceExtensions(sdlwin, &num, iparams.extensions); + SDL_bool ok = SDL_Vulkan_GetInstanceExtensions(sdlwin, &num, extensions); if (!ok) { fprintf(stderr, "Failed getting Vk instance extensions\n"); exit(1); @@ -227,15 +224,19 @@ static void *placebo_renderer_create_vk() if (num > 0) { printf("Requesting %d additional Vulkan extensions:\n", num); for (unsigned i = 0; i < num; i++) - printf(" %s\n", iparams.extensions[i]); + printf(" %s\n", extensions[i]); } + struct pl_vk_inst_params iparams = pl_vk_inst_default_params; + iparams.extensions = extensions; + iparams.num_extensions = num; + rd_priv_ctx->vk_inst = pl_vk_inst_create(rd_priv_ctx->ctx, &iparams); if (!rd_priv_ctx->vk_inst) { fprintf(stderr, "Failed creating Vulkan instance!\n"); exit(1); } - free(iparams.extensions); + free(extensions); if (!SDL_Vulkan_CreateSurface(sdlwin, rd_priv_ctx->vk_inst->instance, &rd_priv_ctx->surf)) { fprintf(stderr, "Failed creating vulkan surface: %s\n", SDL_GetError()); |