static void render_video_2f(const glw_video_t *gv, glw_video_surface_t *sa, glw_video_surface_t *sb, int textype, int rectmode, glw_rctx_t *rc) { const glw_video_config_t *gvc = &gv->gv_cfg_cur; glw_backend_root_t *gbr = &gv->w.glw_root->gr_be; gv_surface_pixmap_upload(sa, &gv->gv_cfg_cur, textype); gv_surface_pixmap_upload(sb, &gv->gv_cfg_cur, textype); glActiveTexture(GL_TEXTURE5); glBindTexture(textype, gv_tex_get(sb, GVF_TEX_Cb)); glActiveTexture(GL_TEXTURE4); glBindTexture(textype, gv_tex_get(sb, GVF_TEX_Cr)); glActiveTexture(GL_TEXTURE3); glBindTexture(textype, gv_tex_get(sb, GVF_TEX_L)); glActiveTexture(GL_TEXTURE2); glBindTexture(textype, gv_tex_get(sa, GVF_TEX_Cb)); glActiveTexture(GL_TEXTURE1); glBindTexture(textype, gv_tex_get(sa, GVF_TEX_Cr)); glActiveTexture(GL_TEXTURE0); glBindTexture(textype, gv_tex_get(sa, GVF_TEX_L)); render_video_quad(!!(gvc->gvc_flags & GVC_CUTBORDER), rectmode, gvc->gvc_width[0], gvc->gvc_height[0], sa->gvs_yshift, sb->gvs_yshift, gbr, gbr->gbr_yuv2rgb_2f, gv, rc); }
static void render_video_2f(const glw_video_t *gv, glw_video_surface_t *sa, glw_video_surface_t *sb, int textype, int rectmode, glw_rctx_t *rc) { glw_backend_root_t *gbr = &gv->w.glw_root->gr_be; glw_program_t *gp; gv_surface_pixmap_upload(sa, textype, gv); gv_surface_pixmap_upload(sb, textype, gv); switch(gv->gv_planes) { case 3: glActiveTexture(GL_TEXTURE5); glBindTexture(textype, gv_tex_get(sb, GVF_TEX_Cb)); glActiveTexture(GL_TEXTURE4); glBindTexture(textype, gv_tex_get(sb, GVF_TEX_Cr)); glActiveTexture(GL_TEXTURE3); glBindTexture(textype, gv_tex_get(sb, GVF_TEX_L)); glActiveTexture(GL_TEXTURE2); glBindTexture(textype, gv_tex_get(sa, GVF_TEX_Cb)); glActiveTexture(GL_TEXTURE1); glBindTexture(textype, gv_tex_get(sa, GVF_TEX_Cr)); glActiveTexture(GL_TEXTURE0); glBindTexture(textype, gv_tex_get(sa, GVF_TEX_L)); gp = gbr->gbr_yuv2rgb_2f; break; case 1: glActiveTexture(GL_TEXTURE1); glBindTexture(textype, gv_tex_get(sb, 0)); glActiveTexture(GL_TEXTURE0); glBindTexture(textype, gv_tex_get(sa, 0)); gp = gbr->gbr_rgb2rgb_2f; break; default: return; } glw_render_video_quad(sa->gvs_interlaced || sb->gvs_interlaced, rectmode, sa->gvs_width[0], sa->gvs_height[0], sa->gvs_yshift, sb->gvs_yshift, gbr, gp, gv, rc); }