Platform SDK: DirectX |
Like any other complex surface, you navigate between faces of a cubic environment map by using the IDirectDrawSurface7::GetAttachedSurface method. The GetAttachedSurface method accepts a pointer to a DDSCAPS2 structure that describes the attached surface the method should retrieve. Set the dwCaps2 member to any of the flag values beginning with "DDSCAPS2_CUBEMAP_", combined with the DDSCAPS2_CUBEMAP flag, to retrieve the corresponding face.
The following code retrieves the cube-map surface used for the positive-y face (face 2).
// For this example, the pddsMainFace variable contains a valid // pointer to the face returned by CreateSurface when the cube map // was originally created. LPDIRECTDRAWSURFACE7 pddsFace2; DDSCAPS2 ddsCaps; ddsCaps.dwCaps2 = DDSCAPS2_CUBEMAP_POSITIVEY | DDSCAPS2_CUBEMAP; HRESULT hr; hr = pddsMainFace->GetAttachedSurface( &ddsCaps, &pddsFace2); if( FAILED(hr) ) { // code to handle error goes here. }
Like any other complex surface, you navigate between faces of a cubic environment map by using the DirectDrawSurface7.GetAttachedSurface method. The GetAttachedSurface method accepts a DDSCAPS2 type that describes the attached surface the method should retrieve. Set the lCaps2 member to any of the flag values from the CONST_DDSURFACECAPS2FLAGS enumeration that begin with "DDSCAPS2_CUBEMAP_", combined with the DDSCAPS2_CUBEMAP flag, to retrieve the corresponding face.
The following code retrieves the cube-map surface used for the positive-y face (face 2).
' For this example, the ddsMainFace variable contains a valid ' reference to the face returned by CreateSurface when the cube map ' was originally created. Dim ddsFace2 As DirectDrawSurface7 Dim ddsCaps As DDSCAPS2 ddsCaps.lCaps2 = DDSCAPS2_CUBEMAP_POSITIVEY Or DDSCAPS2_CUBEMAP Set ddsFace2 = ddsMainFace.GetAttachedSurface(ddsCaps) If Err.Number <> DD_OK Then ' code to handle error goes here. End If