| sun.java2d.d3d.D3DMaskFill
D3DMaskFill | public class D3DMaskFill extends MaskFill (Code) | | The MaskFill operation is expressed as:
dst = ((src dst) * pathA) + (dst * (1 - pathA))
The D3D implementation of the MaskFill operation differs from the above
equation because it is not possible to perform such a complex operation in
D3d (without the use of advanced techniques like fragment shaders and
multitexturing). Therefore, the D3DMaskFill operation is expressed as:
dst = (src * pathA) dst
This simplified formula is only equivalent to the "true" MaskFill equation
in the following situations:
- is SrcOver
- is Src, extra alpha == 1.0, and the source color is opaque
Therefore, we register D3DMaskFill primitives for only the SurfaceType and
CompositeType restrictions mentioned above. In addition for the Src
case, we must override the composite with a SrcOver (no extra alpha)
instance, so that we set up the D3d blending mode to match the
D3DMaskFill equation.
|
Constructor Summary | |
| D3DMaskFill(SurfaceType srcType, CompositeType compType, SurfaceType dstType) |
Method Summary | |
public void | MaskFill(SunGraphics2D sg2d, SurfaceData sData, Composite comp, int x, int y, int w, int h, byte[] mask, int maskoff, int maskscan) | public static void | register() |
D3DMaskFill | D3DMaskFill(SurfaceType srcType, CompositeType compType, SurfaceType dstType)(Code) | | |
MaskFill | public void MaskFill(SunGraphics2D sg2d, SurfaceData sData, Composite comp, int x, int y, int w, int h, byte[] mask, int maskoff, int maskscan)(Code) | | |
register | public static void register()(Code) | | |
|
|