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