Mercurial > mplayer.hg
comparison libvo/vo_directx.c @ 8495:a23489e72ef0
10l - my system is very tolerant it seems
author | faust3 |
---|---|
date | Thu, 19 Dec 2002 12:01:50 +0000 |
parents | ac40496c7d9e |
children | ebd7934c8f1f |
comparison
equal
deleted
inserted
replaced
8494:47cf94058137 | 8495:a23489e72ef0 |
---|---|
116 switch(image_format) { | 116 switch(image_format) { |
117 case IMGFMT_YV12 : | 117 case IMGFMT_YV12 : |
118 case IMGFMT_I420 : | 118 case IMGFMT_I420 : |
119 case IMGFMT_IYUV : | 119 case IMGFMT_IYUV : |
120 case IMGFMT_YVU9 : | 120 case IMGFMT_YVU9 : |
121 vo_draw_alpha_yv12(w,h,src,srca,stride,((uint8_t *) image) + image_width*y0 + x0,image_width); | 121 vo_draw_alpha_yv12(w,h,src,srca,stride,((uint8_t *) image) + dstride*y0 + x0,dstride); |
122 break; | 122 break; |
123 case IMGFMT_YUY2 : | 123 case IMGFMT_YUY2 : |
124 vo_draw_alpha_yuy2(w,h,src,srca,stride,((uint8_t *) image)+ 2*image_width*y0 + 2*x0 ,2*image_width); | 124 vo_draw_alpha_yuy2(w,h,src,srca,stride,((uint8_t *) image)+ dstride*y0 + 2*x0 ,dstride); |
125 break; | 125 break; |
126 case IMGFMT_UYVY : | 126 case IMGFMT_UYVY : |
127 vo_draw_alpha_yuy2(w,h,src,srca,stride,((uint8_t *) image) + 2*image_width*y0 + 2*x0 + 1,dstride); | 127 vo_draw_alpha_yuy2(w,h,src,srca,stride,((uint8_t *) image) + dstride*y0 + 2*x0 + 1,dstride); |
128 break; | 128 break; |
129 case IMGFMT_RGB15: | 129 case IMGFMT_RGB15: |
130 case IMGFMT_BGR15: | 130 case IMGFMT_BGR15: |
131 vo_draw_alpha_rgb15(w,h,src,srca,stride,((uint8_t *) image)+dstride*y0+2*x0,dstride); | 131 vo_draw_alpha_rgb15(w,h,src,srca,stride,((uint8_t *) image)+dstride*y0+2*x0,dstride); |
132 break; | 132 break; |
1045 g_lpddsBack->lpVtbl->Restore( g_lpddsBack ); | 1045 g_lpddsBack->lpVtbl->Restore( g_lpddsBack ); |
1046 dxresult = g_lpddsOverlay->lpVtbl->Flip( g_lpddsOverlay,NULL, DDFLIP_WAIT); | 1046 dxresult = g_lpddsOverlay->lpVtbl->Flip( g_lpddsOverlay,NULL, DDFLIP_WAIT); |
1047 } | 1047 } |
1048 if(dxresult != DD_OK)mp_msg(MSGT_VO, MSGL_ERR,"<vo_directx><ERROR>can't flip page\n"); | 1048 if(dxresult != DD_OK)mp_msg(MSGT_VO, MSGL_ERR,"<vo_directx><ERROR>can't flip page\n"); |
1049 } | 1049 } |
1050 g_lpddsBack->lpVtbl->Lock(g_lpddsBack,NULL,&ddsdsf, DDLOCK_NOSYSLOCK | DDLOCK_WAIT , NULL); | |
1051 g_lpddsBack->lpVtbl->Unlock (g_lpddsBack,NULL); | 1050 g_lpddsBack->lpVtbl->Unlock (g_lpddsBack,NULL); |
1052 dstride = ddsdsf.lPitch; | 1051 if(nooverlay) |
1053 image = ddsdsf.lpSurface; | |
1054 if(nooverlay == 1) | |
1055 { | 1052 { |
1056 DDBLTFX ddbltfx; | 1053 DDBLTFX ddbltfx; |
1057 // ask for the "NOTEARING" option | 1054 // ask for the "NOTEARING" option |
1058 memset( &ddbltfx, 0, sizeof(DDBLTFX) ); | 1055 memset( &ddbltfx, 0, sizeof(DDBLTFX) ); |
1059 ddbltfx.dwSize = sizeof(DDBLTFX); | 1056 ddbltfx.dwSize = sizeof(DDBLTFX); |
1060 ddbltfx.dwDDFX = DDBLTFX_NOTEARING; | 1057 ddbltfx.dwDDFX = DDBLTFX_NOTEARING; |
1061 g_lpddsPrimary->lpVtbl->Blt(g_lpddsPrimary, &rd, g_lpddsBack, NULL, DDBLT_WAIT, &ddbltfx); | 1058 g_lpddsPrimary->lpVtbl->Blt(g_lpddsPrimary, &rd, g_lpddsBack, NULL, DDBLT_WAIT, &ddbltfx); |
1062 } | 1059 } |
1060 g_lpddsBack->lpVtbl->Lock(g_lpddsBack,NULL,&ddsdsf, DDLOCK_NOSYSLOCK | DDLOCK_WAIT , NULL); | |
1061 dstride = ddsdsf.lPitch; | |
1062 image = ddsdsf.lpSurface; | |
1063 } | 1063 } |
1064 | 1064 |
1065 static uint32_t draw_frame(uint8_t *src[]) | 1065 static uint32_t draw_frame(uint8_t *src[]) |
1066 { | 1066 { |
1067 memcpy( image, *src, dstride * image_height ); | 1067 memcpy( image, *src, dstride * image_height ); |
1239 | 1239 |
1240 if(Directx_CreateClipper() != 0)return 1; | 1240 if(Directx_CreateClipper() != 0)return 1; |
1241 memset(&ddsdsf, 0,sizeof(DDSURFACEDESC)); | 1241 memset(&ddsdsf, 0,sizeof(DDSURFACEDESC)); |
1242 ddsdsf.dwSize = sizeof (DDSURFACEDESC); | 1242 ddsdsf.dwSize = sizeof (DDSURFACEDESC); |
1243 g_lpddsBack->lpVtbl->Lock(g_lpddsBack,NULL,&ddsdsf, DDLOCK_NOSYSLOCK | DDLOCK_WAIT, NULL); | 1243 g_lpddsBack->lpVtbl->Lock(g_lpddsBack,NULL,&ddsdsf, DDLOCK_NOSYSLOCK | DDLOCK_WAIT, NULL); |
1244 g_lpddsBack->lpVtbl->Unlock (g_lpddsBack,NULL); | |
1245 dstride = ddsdsf.lPitch; | 1244 dstride = ddsdsf.lPitch; |
1246 image = ddsdsf.lpSurface; | 1245 image = ddsdsf.lpSurface; |
1247 if(image_format==IMGFMT_I420||image_format==IMGFMT_IYUV) | 1246 if(image_format==IMGFMT_I420||image_format==IMGFMT_IYUV) |
1248 { | 1247 { |
1249 if(swap)swap=0; //swap uv | 1248 if(swap)swap=0; //swap uv |