chromium/third_party/skia/src/gpu/ganesh/ops/TextureOp.h

/*
 * Copyright 2017 Google Inc.
 *
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */
#ifndef skgpu_ganesh_TextureOp_DEFINED
#define skgpu_ganesh_TextureOp_DEFINED

#include "include/core/SkCanvas.h"
#include "include/core/SkRefCnt.h"
#include "include/private/SkColorData.h"
#include "src/gpu/ganesh/GrSamplerState.h"
#include "src/gpu/ganesh/ops/GrOp.h"

#include <cstdint>
#include <tuple>

class GrClip;
class GrColorSpaceXform;
class GrQuad;
class GrRecordingContext;
class GrSurfaceProxyView;
class SkMatrix;
enum SkAlphaType : int;
enum class GrAAType : unsigned int;
enum class SkBlendMode;
struct DrawQuad;
struct GrTextureSetEntry;
struct SkRect;

namespace skgpu::ganesh {
class SurfaceDrawContext;

/**
 * Tests if filtering will have any effect in the drawing of the 'srcQuad' to the 'dstquad'.
 * We return false when filtering has no impact drawing operations as they are effectively blits.
 */
std::tuple<bool /* filter */, bool /* mipmap */> FilterAndMipmapHaveNoEffect(const GrQuad& srcQuad,
                                                                             const GrQuad& dstQuad);

class TextureOp {};

} // namespace skgpu::ganesh

#endif  // skgpu_ganesh_TextureOp_DEFINED