124ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org
224ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org/*
324ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org * Copyright 2013 Google Inc.
424ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org *
524ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org * Use of this source code is governed by a BSD-style license that can be
624ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org * found in the LICENSE file.
724ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org */
824ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org
924ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org#include "GrTypes.h"
1024ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org#include "GrColor.h"
1124ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org
1224ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org#ifndef GrBlend_DEFINED
1324ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org#define GrBlend_DEFINED
1424ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org
1524ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.orgstatic inline bool GrBlendCoeffRefsSrc(GrBlendCoeff coeff) {
1624ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org    switch (coeff) {
1724ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org        case kSC_GrBlendCoeff:
1824ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org        case kISC_GrBlendCoeff:
1924ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org        case kSA_GrBlendCoeff:
2024ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org        case kISA_GrBlendCoeff:
2124ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org            return true;
2224ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org        default:
2324ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org            return false;
2424ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org    }
2524ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org}
2624ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org
2724ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.orgstatic inline bool GrBlendCoeffRefsDst(GrBlendCoeff coeff) {
2824ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org    switch (coeff) {
2924ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org        case kDC_GrBlendCoeff:
3024ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org        case kIDC_GrBlendCoeff:
3124ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org        case kDA_GrBlendCoeff:
3224ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org        case kIDA_GrBlendCoeff:
3324ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org            return true;
3424ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org        default:
3524ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org            return false;
3624ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org    }
3724ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org}
3824ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org
3924ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.orgGrColor GrSimplifyBlend(GrBlendCoeff* srcCoeff,
4024ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org                        GrBlendCoeff* dstCoeff,
4124ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org                        GrColor srcColor, uint32_t srcCompFlags,
4224ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org                        GrColor dstColor, uint32_t dstCompFlags,
4324ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org                        GrColor constantColor);
4424ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org
4524ab3b0ce50b3428f063849b6160e468f047487ccommit-bot@chromium.org#endif
46