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];
}
Beispiel #3
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;
  }
}
Beispiel #4
0
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;
}
Beispiel #6
0
static void draw_osd(void)
{
    vo_draw_text(image_width, image_height, draw_alpha_fnc);
}
Beispiel #7
0
static void draw_osd(void)
{
	mpgxWaitDrawDone();
	vo_draw_text(image_width, image_height, mpgxBlitOSD);
}
Beispiel #8
0
static void draw_osd(void)
{
    vo_draw_text(vo_dga_src_width, vo_dga_src_height, draw_alpha);
}
Beispiel #9
0
static void draw_osd(void)
{
    vo_draw_text(in_width, in_height, draw_alpha);
}
Beispiel #10
0
/* 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;
}
Beispiel #11
0
static void draw_osd(void)
{
    if(!vo_doublebuffering)
        vo_draw_text(in_width, in_height, draw_alpha);
}
Beispiel #12
0
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);
}
Beispiel #13
0
static void draw_osd(void)
{
	if(image_data)
		vo_draw_text(image_width, image_height, draw_alpha);
}
Beispiel #14
0
static void draw_osd(void)
{
    vo_draw_text(sinfo.xres, sinfo.yres, draw_alpha);
}