Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/videolan/dav1d.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNiklas Haas <git@haasn.xyz>2020-05-18 02:07:50 +0300
committerNiklas Haas <git@haasn.xyz>2020-05-18 03:10:38 +0300
commit3bb0aed103a6b3791dda3f2539be7d4c59476292 (patch)
treeecf9f28b9e7f77b62e008eff97790ddbbb279eb5 /examples
parent239b87f071cd016376b196617a896683591b7626 (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.c17
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());