void vidix_draw_osd(void) { if( mp_msg_test(MSGT_VO,MSGL_DBG2) ) { mp_msg(MSGT_VO,MSGL_DBG2, "vosub_vidix: vidix_draw_osd() was called\n"); } /* TODO: hw support */ vo_draw_text(vidix_play.src.w,vidix_play.src.h,draw_alpha); }
static void draw_osd(struct vf_instance *vf_,int w,int h){ vf=vf_;orig_w=w;orig_h=h; // printf("======================================\n"); if(vf->priv->exp_w!=w || vf->priv->exp_h!=h || vf->priv->exp_x || vf->priv->exp_y){ // yep, we're expanding image, not just copy. if(vf->dmpi->planes[0]!=vf->priv->fb_ptr){ // double buffering, so we need full clear :( if (vf->priv->exp_y > 0) remove_func_2(0,0,vf->priv->exp_w,vf->priv->exp_y); if (vf->priv->exp_y+h < vf->priv->exp_h) remove_func_2(0,vf->priv->exp_y+h,vf->priv->exp_w,vf->priv->exp_h-h-vf->priv->exp_y); if (vf->priv->exp_x > 0) remove_func_2(0,vf->priv->exp_y,vf->priv->exp_x,h); if (vf->priv->exp_x+w < vf->priv->exp_w) remove_func_2(vf->priv->exp_x+w,vf->priv->exp_y,vf->priv->exp_w-w-vf->priv->exp_x,h); } else { // partial clear: vo_remove_text(vf->priv->exp_w,vf->priv->exp_h,remove_func); } } vo_draw_text(vf->priv->exp_w,vf->priv->exp_h,draw_func); // save buffer pointer for double buffering detection - yes, i know it's // ugly method, but note that codecs with DR support does the same... if(vf->dmpi) vf->priv->fb_ptr=vf->dmpi->planes[0]; }
/* Render onto the screen */ static void flip_page(void) { if(vo_doublebuffering) { vo_draw_text(in_width, in_height, draw_alpha); yuv_on(in_s3_format, in_width, in_height, vidx, vidy, vidwidth, vidheight, 0, screenwidth, screenheight, screenstride, page); page ^= offset; inpage = inpage0 + page; } }
void vlvo_draw_osd(void) { if( mp_msg_test(MSGT_VO,MSGL_DBG2) ) { mp_msg(MSGT_VO,MSGL_DBG2,"vesa_lvo: vlvo_draw_osd() was called\n"); } /* TODO: hw support */ #if 0 /* disable this stuff until new fbvid.h interface will be implemented because in different fourcc radeon_vid and rage128_vid have different width alignment */ vo_draw_text(mga_vid_config.src_width,mga_vid_config.src_height,draw_alpha); #endif }
static void draw_osd(void){ char * vo_osd_text_save; int vo_osd_progbar_type_save; printosdprogbar(); /* let vo_draw_text only write subtitle */ vo_osd_text_save=vo_osd_text; /* we have to save the osd_text */ vo_osd_text=NULL; vo_osd_progbar_type_save=vo_osd_progbar_type; vo_osd_progbar_type=-1; vo_remove_text(aa_scrwidth(c), aa_scrheight(c),clear_alpha); vo_draw_text(aa_scrwidth(c), aa_scrheight(c), draw_alpha); vo_osd_text=vo_osd_text_save; vo_osd_progbar_type=vo_osd_progbar_type_save; }
static void draw_osd(void) { vo_draw_text(image_width, image_height, draw_alpha_fnc); }
static void draw_osd(void) { mpgxWaitDrawDone(); vo_draw_text(image_width, image_height, mpgxBlitOSD); }
static void draw_osd(void) { vo_draw_text(vo_dga_src_width, vo_dga_src_height, draw_alpha); }
static void draw_osd(void) { vo_draw_text(in_width, in_height, draw_alpha); }
/* Render onto the screen */ static void flip_page(void) { voodoo_2d_reg regs = *reg_2d; /* Copy the regs */ int i = 0; if(vo_doublebuffering) { /* Flip to an offscreen buffer for rendering */ uint32_t t = vidpageoffset; void *j = vidpage; vidpage = hidpage; hidpage = j; vidpageoffset = hidpageoffset; hidpageoffset = t; } reg_2d->commandExtra = 0; reg_2d->clip0Min = 0; reg_2d->clip0Max = 0xffffffff; reg_2d->srcBaseAddr = inpageoffset; reg_2d->srcXY = 0; reg_2d->srcFormat = in_voodoo_format; reg_2d->srcSize = XYREG(in_width, in_height); reg_2d->dstBaseAddr = vidpageoffset; reg_2d->dstXY = XYREG(vidx, vidy); reg_2d->dstFormat = vid_voodoo_format; reg_2d->dstSize = XYREG(vidwidth, vidheight); reg_2d->command = S2S_STRECH_BLT | S2S_IMMED | S2S_ROP; /* Wait for the command to finish (If we don't do this, we get wierd * sound corruption... */ while((reg_IO->status & 0x1f) < 1) /* Wait */; *((volatile uint32_t *)((uint32_t *)reg_IO + COMMAND_3D)) = COMMAND_3D_NOP; while(i < 3) if(!(reg_IO->status & STATUS_BUSY)) i++; /* Restore the old regs now */ reg_2d->commandExtra = regs.commandExtra; reg_2d->clip0Min = regs.clip0Min; reg_2d->clip0Max = regs.clip0Max; reg_2d->srcBaseAddr = regs.srcBaseAddr; reg_2d->srcXY = regs.srcXY; reg_2d->srcFormat = regs.srcFormat; reg_2d->srcSize = regs.srcSize; reg_2d->dstBaseAddr = regs.dstBaseAddr; reg_2d->dstXY = regs.dstXY; reg_2d->dstFormat = regs.dstFormat; reg_2d->dstSize = regs.dstSize; reg_2d->command = 0; /* Render any text onto this buffer */ if(vo_doublebuffering) vo_draw_text(vidwidth, vidheight, draw_alpha_double); /* And flip to the new buffer! */ reg_IO->vidDesktopStartAddr = vidpageoffset; }
static void draw_osd(void) { if(!vo_doublebuffering) vo_draw_text(in_width, in_height, draw_alpha); }
static void draw_osd(void) { // vo_draw_text(mga_vid_config.src_width,mga_vid_config.src_height,draw_alpha); vo_draw_text(mga_vid_config.src_width-mga_vid_config.src_width*vo_panscan_x/(vo_dwidth+vo_panscan_x),mga_vid_config.src_height,draw_alpha); }
static void draw_osd(void) { if(image_data) vo_draw_text(image_width, image_height, draw_alpha); }
static void draw_osd(void) { vo_draw_text(sinfo.xres, sinfo.yres, draw_alpha); }