DirectX 一点也不快 : (
Un1 2002-02-16 11:26:04 DirectX:
//Init
//Primary
...
ddsdScreen.lFlags = DDSD_CAPS;
ddsdScreen.ddsCaps.lCaps = DDSCAPS_PRIMARYSURFACE;
...
//Back buffer
...
ddsdBackBuffer.lFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH;
ddsdBackBuffer.ddsCaps.lCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY;
...
...
//Draw
...
objDDBackBuffer->GetDC(lhDC);
l = DrawDibDraw(mhdd, lhDC, 0, 0, mbi.bV5Width, mbi.bV5Height, lpbi, mDeComp.lpOutput, 0, 0, -1, -1, 0);
objDDBackBuffer->ReleaseDC(lhDC);
RECT rd;
objDX->GetWindowRect(mhWnd, rd);
RECT rs;
rs.Right = ddsdBackBuffer.lWidth
rs.Bottom = ddsdBackBuffer.lHeight
objDDScreen->Blt(rd, objDDBackBuffer, rs, DDBLT_WAIT);
普通:
lhDC = GetDC(mhWnd);
l = DrawDibDraw(mhdd, lhDC, 0, 0, mbi.bV5Width, mbi.bV5Height, lpbi, mDeComp.lpOutput, 0, 0, -1, -1, 0);
ReleaseDC(mhWnd, lhDC);
在函数开始和结束时加上计时并写入文件,发现两种方法差异不大.
不知有没有问题?