chromium/third_party/skia/src/gpu/ganesh/StencilMaskHelper.h

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

#ifndef StencilMaskHelper_DEFINED
#define StencilMaskHelper_DEFINED

#include "include/core/SkRegion.h"
#include "include/private/base/SkNoncopyable.h"
#include "src/gpu/ganesh/StencilClip.h"

#include <cstdint>

class GrRecordingContext;
class GrShape;
class GrWindowRectangles;
class SkMatrix;
class SkPath;
enum class GrAA : bool;
struct SkIRect;
struct SkRect;

namespace skgpu::ganesh {

class SurfaceDrawContext;

/**
 * The StencilMaskHelper helps generate clip masks using the stencil buffer.
 * It is intended to be used as:
 *
 *   StencilMaskHelper helper;
 *   helper.init(...);
 *
 *      draw one or more paths/rects specifying the required boolean ops
 *
 *   helper.finish();
 *
 * The result of this process will be the mask stored in the clip bits of the stencil buffer.
 */
class StencilMaskHelper : SkNoncopyable {};

}  // namespace skgpu::ganesh

#endif // StencilMaskHelper_DEFINED