1
0
mirror of https://github.com/jojo61/vdr-plugin-softhdcuvid.git synced 2023-10-10 13:37:41 +02:00

Optimize for hbbtv plugin

This commit is contained in:
jojo61 2020-06-22 16:35:37 +02:00
parent a424a57036
commit 6a31404aa0
2 changed files with 16 additions and 5 deletions

View File

@ -84,6 +84,8 @@ uniform sampler2D screenTexture; \
void main() \ void main() \
{ \ { \
color = texture(screenTexture, TexCoords) * alphaValue; \ color = texture(screenTexture, TexCoords) * alphaValue; \
if (color == vec4(0.0,0.0,0.0,1.0))\
color.a = 0.0;\
} \ } \
"; ";
@ -747,6 +749,9 @@ void cOglVb::SetShaderColor(GLint color)
void cOglVb::SetShaderAlpha(GLint alpha) void cOglVb::SetShaderAlpha(GLint alpha)
{ {
GLfloat a = (GLfloat) (alpha) / 255.0f;
if (a > 0.98)
a = 1.0;
Shaders[shader]->SetVector4f("alpha", 1.0f, 1.0f, 1.0f, (GLfloat) (alpha) / 255.0f); Shaders[shader]->SetVector4f("alpha", 1.0f, 1.0f, 1.0f, (GLfloat) (alpha) / 255.0f);
} }
@ -1272,7 +1277,7 @@ cOglCmdDrawText::cOglCmdDrawText(cOglFb * fb, GLint x, GLint y, unsigned int *sy
this->x = x; this->x = x;
this->y = y; this->y = y;
this->limitX = limitX; this->limitX = limitX;
this->colorText = colorText; this->colorText = colorText & 0xfeffffff;
this->fontSize = fontSize; this->fontSize = fontSize;
this->symbols = symbols; this->symbols = symbols;
this->fontName = name; this->fontName = name;

12
video.c
View File

@ -1557,8 +1557,11 @@ static void CuvidDestroySurfaces(CuvidDecoder * decoder)
#endif #endif
#endif #endif
#if defined PLACEBO && API_VER >= 58 #ifdef PLACEBO
pl_gpu_finish(p->gpu);
#if API_VER >= 58
p->num_shaders = 0; p->num_shaders = 0;
#endif
#endif #endif
for (i = 0; i < decoder->SurfacesNeeded; i++) { for (i = 0; i < decoder->SurfacesNeeded; i++) {
@ -3875,7 +3878,10 @@ static void CuvidMixVideo(CuvidDecoder * decoder, __attribute__((unused))
} }
} }
render_params.hooks = &p->hook; render_params.hooks = &p->hook;
render_params.num_hooks = p->num_shaders; if (ovl)
render_params.num_hooks = 0; // no shaders when OSD activ
else
render_params.num_hooks = p->num_shaders;
#endif #endif
if (decoder->newchannel && current == 0) { if (decoder->newchannel && current == 0) {
@ -5465,7 +5471,7 @@ void exit_display()
if (osdoverlay.plane.texture) if (osdoverlay.plane.texture)
pl_tex_destroy(p->gpu, &osdoverlay.plane.texture); pl_tex_destroy(p->gpu, &osdoverlay.plane.texture);
pl_renderer_destroy(&p->renderer); // pl_renderer_destroy(&p->renderer);
if (p->renderertest) { if (p->renderertest) {
pl_renderer_destroy(&p->renderertest); pl_renderer_destroy(&p->renderertest);
p->renderertest = NULL; p->renderertest = NULL;