[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

4.19.4.3 Blending

There are two parts of blending to consider. The first is the simplest, and involves alpha values in your color.

 
pen.SetColor(1,1,1,1);

This statement would set the color to a completely opaque white.

 
pen.SetColor(1,1,1,0.5);

Whereas this one would set the color to a shade that is 50% transparent. It is easy to see how this works, in that the transparency is a number from 0 to 1, where 0 is completely transparent, and 1 is completely opaque.

There is a more sophisticated sort of blending that Pen can also perform. This is referred to more generally as compositing.

SetMixMode(mixmode_constant)

Set the blending mode used for further drawing to one of the Pen.MIX_XXX constants.

SetMixMode(mixmode_object)

Set the blending mode used for further drawing by generating it from a Mixmode object that allows you to specify any of the source and destination blending operations CS supports.

The constants that can be used for blending are as follows:

MIX_ADD

The source color and destination colors are added together.

MIX_ALPHA

The source and destination colors are blended using the alpha value.

MIX_COPY

The destination color is overwritten by the source color. (No blending).

MIX_DST_ALPHA_ADD

The source color is multiplied by the alpha component of the destination color and the result is added together.

MIX_FLAT

No shading is implemented for vertex colors.

MIX_MULTIPLY

To do

MIX_MULTIPLY2

To do

MIX_PRE_MULT_ALPHA

To do

MIX_SRC_ALPHA_ADD

To do

MIX_TRANSPARENT

To do

MIX_TRANSPARENT_TEST

To do

MIX_DST_ALPHA

Like MIX_DST_ALPHA_ADD, but the results are blended not added.

MIX_DST_ALPHA_MASK

To do

In order to do masking, for example, you might set the pen state like this:

 
pen.SetMixMode(Pen.MIX_COPY);
pen.SetColor(1,1,1,1);
pen.DrawTriangle(5,0,10,10,0,10);

pen.SetMixMode(Pen.MIX_DST_ALPHA_ADD);
pen.SetFlag(Pen.FLAG_TEXTURE);
pen.SetTexture(my_tex);
pen.DrawRect(0,0,20,20);

The texture will only be drawn where the triangle was drawn. The area around the triangle will be left clean.

Blending allows you to do a number of interesting special effects, including highlighting and complex texturing. For an example of the use of blending see `data/aws/widgets/slider.js'


[ < ] [ > ]   [ << ] [ Up ] [ >> ]

This document was generated using texi2html 1.76.