Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
0
static void
render_video_2f(const glw_video_t *gv, 
		glw_video_surface_t *sa, glw_video_surface_t *sb,
		glw_rctx_t *rc)
{
  glw_backend_root_t *be = &gv->w.glw_root->gr_be;
  gcmContextData *ctx = be->be_ctx;
  rsx_fp_t *rfp = be->be_fp_yuv2rgb_2f;
  int i;

  for(i = 0; i < 3; i++)
    if(rfp->rfp_texunit[i] != -1)
      realitySetTexture(ctx, rfp->rfp_texunit[i], &sa->gvs_tex[i]);

  for(i = 0; i < 3; i++)
    if(rfp->rfp_texunit[i+3] != -1)
      realitySetTexture(ctx, rfp->rfp_texunit[i+3], &sb->gvs_tex[i]);

  const glw_video_config_t *gvc = &gv->gv_cfg_cur;
  
  render_video_quad(!!(gvc->gvc_flags & GVC_CUTBORDER), 
		    gvc->gvc_width[0], gvc->gvc_height[0],
		    sa->gvs_yshift, sb->gvs_yshift,
		    gv->w.glw_root, rfp, gv, rc);
}
Ejemplo n.º 3
0
static void
render_video_1f(const glw_video_t *gv, glw_video_surface_t *s,
		glw_rctx_t *rc)
{
  glw_backend_root_t *be = &gv->w.glw_root->gr_be;
  gcmContextData *ctx = be->be_ctx;
  rsx_fp_t *rfp = be->be_fp_yuv2rgb_1f;
  int i;

  for(i = 0; i < 3; i++)
    if(rfp->rfp_texunit[i] != -1)
      realitySetTexture(ctx, rfp->rfp_texunit[i], &s->gvs_tex[i]);

  render_video_quad(s->gvs_interlaced,
		    s->gvs_width[0], s->gvs_height[0],
		    s->gvs_yshift, 0, gv->w.glw_root, rfp, gv, rc);
}