Mercurial > mplayer.hg
comparison libvo/vo_dga.c @ 2556:71934dc06490
Using new stuff of rgb15to16
author | nick |
---|---|
date | Tue, 30 Oct 2001 17:04:31 +0000 |
parents | d40f2b686846 |
children | 67202498298e |
comparison
equal
deleted
inserted
replaced
2555:66837325b929 | 2556:71934dc06490 |
---|---|
21 * BGR_32_24_888 | 21 * BGR_32_24_888 |
22 * | 22 * |
23 * - works only on x86 architectures | 23 * - works only on x86 architectures |
24 * | 24 * |
25 * $Log$ | 25 * $Log$ |
26 * Revision 1.30 2001/08/13 11:08:18 atlka | 26 * Revision 1.31 2001/10/30 17:04:31 nick |
27 * changes according to -utf8 option, draw_osd() function added | 27 * Using new stuff of rgb15to16 |
28 * | 28 * |
29 * Revision 1.29 2001/07/16 18:41:52 jkeil | 29 * Revision 1.29 2001/07/16 18:41:52 jkeil |
30 * vo_dga doesn't compile on non-x86 architecture due to x86 asm usage. | 30 * vo_dga doesn't compile on non-x86 architecture due to x86 asm usage. |
31 * | 31 * |
32 * Revision 1.28 2001/07/03 23:45:49 arpi | 32 * Revision 1.28 2001/07/03 23:45:49 arpi |
149 #include <X11/extensions/xf86vmode.h> | 149 #include <X11/extensions/xf86vmode.h> |
150 #endif | 150 #endif |
151 | 151 |
152 | 152 |
153 #include "x11_common.h" | 153 #include "x11_common.h" |
154 | 154 #include "../postproc/rgb2rgb.h" |
155 #include "fastmemcpy.h" | 155 #include "fastmemcpy.h" |
156 | |
157 extern void rgb15to16_mmx(char* s0,char* d0,int count); | |
158 | 156 |
159 static vo_info_t vo_info = | 157 static vo_info_t vo_info = |
160 { | 158 { |
161 #ifdef HAVE_DGA2 | 159 #ifdef HAVE_DGA2 |
162 "DGA ( Direct Graphic Access V2.0 )", | 160 "DGA ( Direct Graphic Access V2.0 )", |
477 case VDM_CONV_15TO16: | 475 case VDM_CONV_15TO16: |
478 { | 476 { |
479 int i; | 477 int i; |
480 char *e; | 478 char *e; |
481 for(i=0; i< vo_dga_lines; i++){ | 479 for(i=0; i< vo_dga_lines; i++){ |
482 #ifdef HAVE_MMX | 480 rgb15to16( s, d, vo_dga_bytes_per_line); |
483 rgb15to16_mmx( s, d, vo_dga_bytes_per_line); | |
484 d+=vo_dga_bytes_per_line; | 481 d+=vo_dga_bytes_per_line; |
485 s+=vo_dga_bytes_per_line; | 482 s+=vo_dga_bytes_per_line; |
486 #else | |
487 e = s+vo_dga_bytes_per_line; | |
488 while( s< e ){ | |
489 register uint16_t x = *(((uint16_t *)s)++); | |
490 *(((uint16_t *)d)++)=( x&0x001F )|( ( x&0x7FE0 )<<1 ); | |
491 } | |
492 | |
493 #endif | |
494 d+= vo_dga_vp_skip; | 483 d+= vo_dga_vp_skip; |
495 } | 484 } |
496 } | 485 } |
497 break; | 486 break; |
498 case VDM_CONV_24TO32: | 487 case VDM_CONV_24TO32: |