Update of /cvsroot/mplayer/main/libvo In directory usw-pr-cvs1:/tmp/cvs-serv25395 Modified Files: vo_dga.c Log Message: - query_format() now uses new return value concept - now support for OSD :-))) for RGB modes YV12 is flickering in quite an ugly fashion; have to fix this, but will cost an extra copying of image data ... :-((( Index: vo_dga.c =================================================================== RCS file: /cvsroot/mplayer/main/libvo/vo_dga.c,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -r1.12 -r1.13 *** vo_dga.c 2001/04/13 22:11:08 1.12 --- vo_dga.c 2001/04/17 20:51:58 1.13 *************** *** 24,27 **** --- 24,33 ---- * * $Log$ + * Revision 1.13 2001/04/17 20:51:58 acki2 + * - query_format() now uses new return value concept + * - now support for OSD :-))) for RGB modes + * YV12 is flickering in quite an ugly fashion; have to fix this, but + * will cost an extra copying of image data ... :-((( + * * Revision 1.12 2001/04/13 22:11:08 acki2 * - fixed bug with depth and mpg when current bpp of XServer was != 32 *************** *** 102,105 **** --- 108,114 ---- #define BYTESPP (vo_dga_modes[vo_dga_active_mode].vdm_bytespp) + #define HW_MODE (vo_dga_modes[vo_dga_active_mode]) + + struct vd_modes { int vdm_mplayer_depth; *************** *** 241,255 **** #define VD_RES 1 - void vd_printf( int level, const char *str, ...){ - // show resolution and DBG-messages only in verbose mode ... - #ifndef VO_DGA_DBG if( !verbose && level)return; #endif - vprintf( str, (&str)+1 ); - } --- 250,260 ---- #define VD_RES 1 void vd_printf( int level, const char *str, ...){ #ifndef VO_DGA_DBG + // show resolution and DBG-messages only in verbose mode ... if( !verbose && level)return; #endif vprintf( str, (&str)+1 ); } *************** *** 257,260 **** --- 262,293 ---- + static void draw_alpha( int x0,int y0, int w,int h, unsigned char* src, unsigned char *srca, int stride ){ + + char *d; + unsigned int offset = (y0*vo_dga_width+x0); + + d = (&((char *)vo_dga_base)[vo_dga_vp_offset + vo_dga_dbf_current * vo_dga_dbf_mem_offset]); + + + switch( HW_MODE.vdm_mplayer_depth ){ + case 24: + vo_draw_alpha_rgb24(w,h,src,srca,stride, d+3*offset , 3*vo_dga_width); + break; + case 32: + vo_draw_alpha_rgb32(w,h,src,srca,stride, d+4*offset , 4*vo_dga_width); + break; + case 15: + vo_draw_alpha_rgb15(w,h,src,srca,stride, d+2*offset , 2*vo_dga_width); + break; + case 16: + vo_draw_alpha_rgb16(w,h,src,srca,stride, d+2*offset , 2*vo_dga_width); + break; + } + } + + + //--------------------------------------------------------- + + // I had tried to work with mmx/3dnow copy code but *************** *** 312,315 **** --- 345,349 ---- static void flip_page( void ){ + vo_draw_text(vo_dga_src_width,vo_dga_src_height,draw_alpha); if(vo_dga_dbf_mem_offset != 0){ *************** *** 431,435 **** if( (format&IMGFMT_BGR_MASK) == IMGFMT_BGR && ! vd_ModeValid(format&0xff)) return 1; return 0; --- 465,469 ---- if( (format&IMGFMT_BGR_MASK) == IMGFMT_BGR && ! vd_ModeValid(format&0xff)) return 7; return 0; _______________________________________________ Mplayer-cvslog mailing list Mplayer-cvslog@lists.sourceforge.net http://lists.sourceforge.net/lists/listinfo/mplayer-cvslog