|
用MFC构造DirectX应用框架(8) { Msg("CreateSurface failed err=%d",ddrval); return FALSE; } else Msg("显示内存允许建立的缓冲区数=%d(最多需要3)",nBufferCount); DDSCAPS ddscaps; ddscaps.dwCaps=DDSCAPS_BACKBUFFER; ddrval=lpFrontBuffer->GetAttachedSurface(&ddscaps,&lpBackBuffer); if(ddrval!=DD_OK) { Msg("GetAttachedsurface failed err=%d",ddrval); return FALSE; } return TRUE; } void CDirectXWnd::Msg(LPSTR fmt,...) { char buff[256]; va_list va; lstrcpy(buff,"DirectxWnd:"); va_start(va,fmt); wvsprintf(&buff[lstrlen(buff)],fmt,va); va_end(va); lstrcat(buff,"\r\n"); AfxMessageBox(buff); } ////////////////////////Virtual Function BOOL CDirectXWnd::RestoreSurfaces() { HRESULT ddrval; ddrval=lpFrontBuffer->Restore(); if(ddrval!=DD_OK) return FALSE; return TRUE; } BOOL CDirectXWnd::CleanSurface() { if(lpBackBuffer) { lpBackBuffer->Release(); lpBackBuffer=NULL; } if(lpFrontBuffer) { lpFrontBuffer->Release(); lpFrontBuffer=NULL; }
|