|
楼主 |
发表于 2003-8-19 14:35:00
|
显示全部楼层
Re: tmd,我就不信, directdraw为啥什么也画不出来!
初始化都通过了。
我的数据是yv12的,我不会用directdraw显示yv12,所以在下面的显示部分代码我这么处理的:
DDSURFACEDESC2 ddsd;
ZeroMemory(&ddsd,sizeof(ddsd));
ddsd.dwSize=sizeof(ddsd);
RECT g_rect;
g_rect.bottom=m_height;
g_rect.left=px;
g_rect.right=m_width;
g_rect.top=py;
if (lpDDSPrimary->IsLost() == DDERR_SURFACELOST)
lpDDSPrimary->Restore();
if FAILED(lpDDSBack->Lock(NULL, &ddsd,0,NULL))// DDLOCK_WAIT , NULL))
return ;
yuy2_out(m_y_buffer[cur_index],m_width,m_u_buffer[cur_index],m_v_buffer[cur_index],m_width>>1,
(uint8_t *)ddsd.lpSurface,m_width,-m_height,m_width);
if FAILED(lpDDSBack->Unlock(NULL))
return;
// if(FAILED(lpDDSPrimary->Blt(&g_rect,lpDDSBack,NULL,0,NULL)))//显示
// return;
if(FAILED(lpDDSPrimary->BltFast( 0, 0, lpDDSBack, &g_rect, DDBLTFAST_SRCCOLORKEY)))
return; [em7] |
|