1.15.2009

Create Surface with Backbuffer

如果要create一個有一個 back surface (就是兩頁)的 surface:

memset((void *)&m_ddsd, 0, sizeof(m_ddsd));
m_ddsd.dwSize = sizeof(m_ddsd);
m_ddsd.dwFlags = DDSD_CAPS | DDSD_BACKBUFFERCOUNT;
m_ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE | DDSCAPS_FLIP | DDSCAPS_COMPLEX;
m_ddsd.dwBackBufferCount = 1;

hr=m_pdd->CreateSurface(&m_ddsd, &m_psurf, NULL);
在之前的 SetCooperativeLevel( )就不可以設 NORMAL。
要設

SetCooperativeLevel(m_hwnd, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
否則會 Create Fail.

沒有留言: