summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Reufer <thomas@reufer.ch>2015-04-01 21:18:08 +0200
committerThomas Reufer <thomas@reufer.ch>2015-04-01 21:18:08 +0200
commit658b45ee218ab1ea143632f0f00a494b85590af1 (patch)
tree825968ab304830881e8413a966efc948a72da6a7
parent8c471e11a241ce2e05a9bf7caae338bd4c7a77a8 (diff)
downloadvdr-plugin-rpihddevice-658b45ee218ab1ea143632f0f00a494b85590af1.tar.gz
vdr-plugin-rpihddevice-658b45ee218ab1ea143632f0f00a494b85590af1.tar.bz2
activate default surface before deleting pixel buffer
-rw-r--r--ovgosd.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/ovgosd.c b/ovgosd.c
index c3e6825..8a56bcd 100644
--- a/ovgosd.c
+++ b/ovgosd.c
@@ -655,6 +655,19 @@ public:
virtual ~cOvgRenderTarget() { }
+ static bool MakeDefault(cEgl *egl)
+ {
+ if (eglMakeCurrent(egl->display, egl->surface, egl->surface,
+ egl->context) == EGL_FALSE)
+ {
+ ELOG("[EGL] failed to connect context to surface: %s!",
+ cEgl::errStr(eglGetError()));
+ return false;
+ }
+ egl->currentSurface = egl->surface;
+ return true;
+ }
+
virtual bool MakeCurrent(cEgl *egl)
{
// if this is a window surface, check for an update after OSD reset
@@ -812,6 +825,9 @@ public:
virtual bool Execute(cEgl *egl)
{
+ if (!cOvgRenderTarget::MakeDefault(egl))
+ return false;
+
// only destroy pixel buffer surfaces
if (m_target->image != VG_INVALID_HANDLE)
{