/*
 * Copyright 2021 Google LLC
 *
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */

#ifndef GrOpsTypes_DEFINED
#define GrOpsTypes_DEFINED

#include "include/core/SkMatrix.h"
#include "include/core/SkRect.h"
#include "include/private/GrTypesPriv.h"
#include "include/private/SkColorData.h"
#include "src/gpu/GrSurfaceProxyView.h"

/** Used by SDC::drawQuadSet and FillRectOp */
struct GrQuadSetEntry {
    SkRect fRect;
    SkPMColor4f fColor; // Overrides any color on the GrPaint
    SkMatrix fLocalMatrix;
    GrQuadAAFlags fAAFlags;
};

/** Used by SDC::drawTextureSet and TextureOp */
struct GrTextureSetEntry {
    GrSurfaceProxyView fProxyView;
    SkAlphaType fSrcAlphaType;
    SkRect fSrcRect;
    SkRect fDstRect;
    const SkPoint* fDstClipQuad; // Must be null, or point to an array of 4 points
    const SkMatrix* fPreViewMatrix; // If not null, entry's CTM is 'viewMatrix' * fPreViewMatrix
    SkPMColor4f   fColor; // {a,a,a,a} for rgb textures, {r,g,b,a} for alpha-only textures
    GrQuadAAFlags fAAFlags;
};

#endif
