You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
2.1 KiB
JavaScript
74 lines
2.1 KiB
JavaScript
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
|
|
*/
|
|
var 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);
|