aboutsummaryrefslogtreecommitdiff
path: root/plugins/gpulib/vout_pl.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/gpulib/vout_pl.c')
-rw-r--r--plugins/gpulib/vout_pl.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/plugins/gpulib/vout_pl.c b/plugins/gpulib/vout_pl.c
index 79b6c3e..0bd1ecf 100644
--- a/plugins/gpulib/vout_pl.c
+++ b/plugins/gpulib/vout_pl.c
@@ -9,6 +9,7 @@
* See the COPYING file in the top-level directory.
*/
+#include <string.h>
#include "gpu.h"
#include "cspace.h"
#include "../../frontend/plugin_lib.h"
@@ -52,8 +53,11 @@ static void blit(void)
int fb_offs, doffs;
uint8_t *dest;
- fb_offs = y * 1024 + x;
dest = (uint8_t *)screen_buf;
+ if (dest == NULL)
+ return;
+
+ fb_offs = y * 1024 + x;
// only do centering, at least for now
doffs = (stride - w) / 2 & ~1;
@@ -99,6 +103,16 @@ void vout_update(void)
blit();
}
+void vout_blank(void)
+{
+ check_mode_change();
+ if (cbs->pl_vout_raw_flip == NULL) {
+ int bytespp = gpu.status.rgb24 ? 3 : 2;
+ memset(screen_buf, 0, gpu.screen.hres * gpu.screen.h * bytespp);
+ screen_buf = cbs->pl_vout_flip();
+ }
+}
+
long GPUopen(void **unused)
{
gpu.frameskip.active = 0;