OnGetSurfacePickOrder method

Provides the base class with the necessary information to perform surface picking for the transform.


object.OnGetSurfacePickOrder(OutPoint, ulInToTest, aInIndex, aWeight);


  • OutPoint [in, ref]
    Type: const CDXDBnds

    Coordinates indicating the point in the transform output space to use for surface picking.

  • ulInToTest [out, ref]
    Type: unsigned long

    Number of inputs to be tested by the transform.

  • aInIndex [out]
    Type: unsigned long

    Array of input surface indices to test, in top-to-bottom order. The number of elements in the array is equal to m_ulMaxInputs. Any input whose bounds intersect OutPoint should be added to the list.

  • aWeight [out]
    Type: BYTE

    Overall weight that should be attributed to each input listed by aInIndex. The number of elements in the array is equal to m_ulMaxInputs. The weight of an input will be used in conjunction with the alpha weight of the corresponding hit pixel on the input. These weights are typically computed based on the progress of the current effect. For example, an alpha fade transition at 40 percent progress might attribute 60 percent of the result to input Image A, and 40 percent to input Image B. The weight values would be 153 and 102, respectively.

Return value

This method does not return a value.


This function is intended to simplify the picking implementation for the majority of surface transforms. The information passed back to the base class will be used to lock down the appropriate input surfaces in order, retrieve the correct sample, weight it based on the current effect progress, and return the correct pick information to the container. The base class will map the OutPoint to the input space coordinates by using the IDXTransform::MapBoundsOut2In method after this function returns. If the transform has multiple inputs whose coordinate spaces are not aligned at zero, the CDXBaseNTo1::OnSurfacePick function should be overridden instead.