19,468
社区成员
发帖
与我相关
我的任务
分享
#if 1
BYTE * pTextureBuffer = NULL;
LONG lTexturePitch;
D3DLOCKED_RECT d3d_rect;
lRet=m_pDirect3DSurfaceRender->LockRect(&d3d_rect,NULL,D3DLOCK_DONOTWAIT);
if(FAILED(lRet))
return -1;
lTexturePitch = d3d_rect.Pitch;
BYTE *pDest = (BYTE*)d3d_rect.pBits ;
int i = 0;
for(i = 0;i < m_height;i ++){
memcpy(pDest + i * lTexturePitch,py, m_width);
}
for(i = 0;i < m_height/2;i ++){
memcpy(pDest + lTexturePitch * m_height + i * lTexturePitch / 2,pu, m_width / 2);
}
for(i = 0;i < m_height/2;i ++){
memcpy(pDest + lTexturePitch * m_height + lTexturePitch * m_height / 4 + i * lTexturePitch / 2,pv, m_width / 2);
}
// for(int i = 0;i < surfaceDesc.Height;i ++){
// memcpy(pTextureBuffer + i * lTexturePitch,py, surfaceDesc.Width);
// }
// for(int j = 0;j < (surfaceDesc.Height)/2;j ++){
// memcpy(pTextureBuffer + lTexturePitch * (surfaceDesc.Height) + j * lTexturePitch / 2,pu, (surfaceDesc.Width) / 2);
// }
// for(int k = 0;k < (surfaceDesc.Height)/2;k ++){
// memcpy(pTextureBuffer + lTexturePitch * (surfaceDesc.Height) + lTexturePitch * (surfaceDesc.Height) / 4 + k * lTexturePitch / 2,pv, (surfaceDesc.Width) / 2);
// }
#endif
lRet=m_pDirect3DSurfaceRender->UnlockRect();
我试过这样,显示不出来#if 1
BYTE * pTextureBuffer = NULL;
LONG lTexturePitch;
D3DLOCKED_RECT d3d_rect;
lRet=m_pDirect3DSurfaceRender->LockRect(&d3d_rect,NULL,D3DLOCK_DONOTWAIT);
if(FAILED(lRet))
return -1;
lTexturePitch = d3d_rect.Pitch;
BYTE *pDest = (BYTE*)d3d_rect.pBits ;
int i = 0;
for(i = 0;i < m_height;i ++){
memcpy(pDest + i * lTexturePitch,py, m_width);
}
for(i = 0;i < m_height/2;i ++){
memcpy(pDest + lTexturePitch * m_height + i * lTexturePitch / 2,pu, m_width / 2);
}
for(i = 0;i < m_height/2;i ++){
memcpy(pDest + lTexturePitch * m_height + lTexturePitch * m_height / 4 + i * lTexturePitch / 2,pv, m_width / 2);
}
#endif
#if 1
BYTE * pTextureBuffer = NULL;
LONG lTexturePitch;
D3DLOCKED_RECT d3d_rect;
lRet=m_pDirect3DSurfaceRender->LockRect(&d3d_rect,NULL,D3DLOCK_DONOTWAIT);
if(FAILED(lRet))
return -1;
lTexturePitch = d3d_rect.Pitch;
BYTE *pDest = (BYTE*)d3d_rect.pBits ;
int i = 0;
for(i = 0;i < m_height;i ++){
memcpy(pDest + i * lTexturePitch,py, m_width);
}
for(i = 0;i < m_height/2;i ++){
memcpy(pDest + lTexturePitch * m_height + i * lTexturePitch / 2,pu, m_width / 2);
}
for(i = 0;i < m_height/2;i ++){
memcpy(pDest + lTexturePitch * m_height + lTexturePitch * m_height / 4 + i * lTexturePitch / 2,pv, m_width / 2);
}
#endif