diff options
author | Marvin Scholz <epirat07@gmail.com> | 2020-05-15 12:57:02 +0300 |
---|---|---|
committer | Marvin Scholz <epirat07@gmail.com> | 2020-05-15 12:57:02 +0300 |
commit | e4a4c8c60b21d226f24cc315af30cb7f1591b29b (patch) | |
tree | 7c3d47e2690e34733a146cef4ed1531cc69646a6 /examples/dp_renderer.h | |
parent | 7f50fc37199b4581d606ffbdf665b8141939b1f9 (diff) |
Dav1dPlay: Split placebo renderer into two
This allows selecting at runtime if placebo should use OpenGL
or Vulkan for rendering.
Diffstat (limited to 'examples/dp_renderer.h')
-rw-r--r-- | examples/dp_renderer.h | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/examples/dp_renderer.h b/examples/dp_renderer.h index 639ccc7..c3b2378 100644 --- a/examples/dp_renderer.h +++ b/examples/dp_renderer.h @@ -29,7 +29,7 @@ #include "dav1d/dav1d.h" -#include <SDL_config.h> +#include <SDL.h> #ifdef HAVE_PLACEBO # include <libplacebo/config.h> #endif @@ -78,7 +78,7 @@ typedef struct rdr_info // Cookie passed to the renderer implementation callbacks void *cookie; // Callback to create the renderer - void* (*create_renderer)(void *data); + void* (*create_renderer)(); // Callback to destroy the renderer void (*destroy_renderer)(void *cookie); // Callback to the render function that renders a prevously sent frame @@ -91,12 +91,14 @@ typedef struct rdr_info void (*release_pic)(Dav1dPicture *pic, void *cookie); } Dav1dPlayRenderInfo; -extern const Dav1dPlayRenderInfo rdr_placebo; +extern const Dav1dPlayRenderInfo rdr_placebo_vk; +extern const Dav1dPlayRenderInfo rdr_placebo_gl; extern const Dav1dPlayRenderInfo rdr_sdl; // Available renderes ordered by priority static const Dav1dPlayRenderInfo* const dp_renderers[] = { - &rdr_placebo, + &rdr_placebo_vk, + &rdr_placebo_gl, &rdr_sdl, }; @@ -113,3 +115,15 @@ static inline const Dav1dPlayRenderInfo *dp_get_renderer(const char *name) } return NULL; } + +static inline SDL_Window *dp_create_sdl_window(int window_flags) +{ + SDL_Window *win; + window_flags |= SDL_WINDOW_SHOWN | SDL_WINDOW_ALLOW_HIGHDPI; + + win = SDL_CreateWindow("Dav1dPlay", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, + WINDOW_WIDTH, WINDOW_HEIGHT, window_flags); + SDL_SetWindowResizable(win, SDL_TRUE); + + return win; +} |