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:
authorMarvin Scholz <epirat07@gmail.com>2020-05-15 12:57:02 +0300
committerMarvin Scholz <epirat07@gmail.com>2020-05-15 12:57:02 +0300
commite4a4c8c60b21d226f24cc315af30cb7f1591b29b (patch)
tree7c3d47e2690e34733a146cef4ed1531cc69646a6 /examples/dp_renderer.h
parent7f50fc37199b4581d606ffbdf665b8141939b1f9 (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.h22
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;
+}