chromium/cc/base/region.h

// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CC_BASE_REGION_H_
#define CC_BASE_REGION_H_

#include <iosfwd>
#include <memory>
#include <string>

#include "cc/base/base_export.h"
#include "third_party/skia/include/core/SkRegion.h"
#include "ui/gfx/geometry/rect.h"
#include "ui/gfx/geometry/skia_conversions.h"

class SkPath;

namespace base {
namespace trace_event {
class TracedValue;
}
}  // namespace base

namespace gfx {
class Vector2d;
}

namespace cc {
class SimpleEnclosedRegion;

class CC_BASE_EXPORT Region {};

inline bool operator==(const Region& a, const Region& b) {}

inline bool operator!=(const Region& a, const Region& b) {}

inline Region operator+(const Region& a, const gfx::Vector2d& b) {}

inline Region SubtractRegions(const Region& a, const Region& b) {}

inline Region SubtractRegions(const Region& a, const gfx::Rect& b) {}

inline Region IntersectRegions(const Region& a, const Region& b) {}

inline Region IntersectRegions(const Region& a, const gfx::Rect& b) {}

inline Region UnionRegions(const Region& a, const Region& b) {}

inline Region UnionRegions(const Region& a, const gfx::Rect& b) {}

// This is declared here for use in gtest-based unit tests but is defined in
// the //cc:test_support target. Depend on that to use this in your unit test.
// This should not be used in production code - call ToString() instead.
void PrintTo(const Region& region, std::ostream* os);

}  // namespace cc

#endif  // CC_BASE_REGION_H_