IDirect3DDevice::Pick

The IDirect3DDevice::Pick method executes a buffer without performing any rendering, but returns a z-ordered list of offsets to the primitives that intersect the upper-left corner of the rectangle specified by lpRect.

This call fails if the Direct3DExecuteBuffer object is locked.

HRESULT Pick(
  LPDIRECT3DEXECUTEBUFFER lpDirect3DExecuteBuffer,  
  LPDIRECT3DVIEWPORT lpDirect3DViewport,            
  DWORD dwFlags,                                    
  LPD3DRECT lpRect                                  
);
 

Parameters

lpDirect3DExecuteBuffer
Address of an execute buffer from which the z-ordered list is retrieved.
lpDirect3DViewport
Address of a viewport in the list of viewports associated with this Direct3DDevice object.
dwFlags
No flags are currently defined for this method.
lpRect
Address of a D3DRECT structure specifying the device coordinates to be picked. Currently, only primitives that intersect the x1, y1 coordinates of this rectangle are returned. The x2, y2 coordinates are ignored.

Return Values

If the method succeeds, the return value is D3D_OK.

If the method fails, the return value may be one of the following values:

D3DERR_EXECUTE_LOCKED
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS

Remarks

The coordinates are specified in device-pixel space.

All Direct3DExecuteBuffer objects must be attached to a Direct3DDevice object in order for this method to succeed.

QuickInfo

  Windows NT/2000: Requires Windows NT 4.0 SP3 or later.
  Windows 95/98: Requires Windows 95 or later. Available as a redistributable for Windows 95.
  Header: Declared in d3d.h.
  Import Library: Use ddraw.lib.

See Also

IDirect3DDevice::GetPickRecords