public static void apply(final BlendState state) {
final RenderContext context = ContextManager.getCurrentContext();
final BlendStateRecord record = (BlendStateRecord) context.getStateRecord(StateType.Blend);
final ContextCapabilities caps = context.getCapabilities();
context.setCurrentState(StateType.Blend, state);
if (state.isEnabled()) {
applyBlendEquations(state.isBlendEnabled(), state, record, caps);
applyBlendColor(state.isBlendEnabled(), state, record, caps);
applyBlendFunctions(state.isBlendEnabled(), state, record, caps);
applyTest(state.isTestEnabled(), state, record);
applyAlphaCoverage(state.isSampleAlphaToCoverageEnabled(), state.isSampleAlphaToOneEnabled(), record, caps);
applySampleCoverage(state.isSampleCoverageEnabled(), state, record, caps);
} else {
applyBlendEquations(false, state, record, caps);
applyTest(false, state, record);
applyAlphaCoverage(false, false, record, caps);
applySampleCoverage(false, state, record, caps);
}
if (!record.isValid()) {
record.validate();
}
}