12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- import BlendEquation from "./BlendEquation.js";
- import BlendFunction from "./BlendFunction.js";
- /**
- * The blending state combines {@link BlendEquation} and {@link BlendFunction} and the
- * <code>enabled</code> flag to define the full blending state for combining source and
- * destination fragments when rendering.
- * <p>
- * This is a helper when using custom render states with {@link Appearance#renderState}.
- * </p>
- *
- * @namespace
- */
- const BlendingState = {
- /**
- * Blending is disabled.
- *
- * @type {object}
- * @constant
- */
- DISABLED: Object.freeze({
- enabled: false,
- }),
- /**
- * Blending is enabled using alpha blending, <code>source(source.alpha) + destination(1 - source.alpha)</code>.
- *
- * @type {object}
- * @constant
- */
- ALPHA_BLEND: Object.freeze({
- enabled: true,
- equationRgb: BlendEquation.ADD,
- equationAlpha: BlendEquation.ADD,
- functionSourceRgb: BlendFunction.SOURCE_ALPHA,
- functionSourceAlpha: BlendFunction.ONE,
- functionDestinationRgb: BlendFunction.ONE_MINUS_SOURCE_ALPHA,
- functionDestinationAlpha: BlendFunction.ONE_MINUS_SOURCE_ALPHA,
- }),
- /**
- * Blending is enabled using alpha blending with premultiplied alpha, <code>source + destination(1 - source.alpha)</code>.
- *
- * @type {object}
- * @constant
- */
- PRE_MULTIPLIED_ALPHA_BLEND: Object.freeze({
- enabled: true,
- equationRgb: BlendEquation.ADD,
- equationAlpha: BlendEquation.ADD,
- functionSourceRgb: BlendFunction.ONE,
- functionSourceAlpha: BlendFunction.ONE,
- functionDestinationRgb: BlendFunction.ONE_MINUS_SOURCE_ALPHA,
- functionDestinationAlpha: BlendFunction.ONE_MINUS_SOURCE_ALPHA,
- }),
- /**
- * Blending is enabled using additive blending, <code>source(source.alpha) + destination</code>.
- *
- * @type {object}
- * @constant
- */
- ADDITIVE_BLEND: Object.freeze({
- enabled: true,
- equationRgb: BlendEquation.ADD,
- equationAlpha: BlendEquation.ADD,
- functionSourceRgb: BlendFunction.SOURCE_ALPHA,
- functionSourceAlpha: BlendFunction.ONE,
- functionDestinationRgb: BlendFunction.ONE,
- functionDestinationAlpha: BlendFunction.ONE,
- }),
- };
- export default Object.freeze(BlendingState);
|