blob: 92be18ce3099cb5a0f686dd3cc373e0c90ae851f [file] [log] [blame]
// Copyright 2020 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CC_PAINT_CLEAR_FOR_OPAQUE_RASTER_H_
#define CC_PAINT_CLEAR_FOR_OPAQUE_RASTER_H_
#include "cc/paint/paint_export.h"
namespace gfx {
class Rect;
class Size;
class SizeF;
class Vector2dF;
} // namespace gfx
namespace cc {
// Called when we are drawing opaque content with |translation| and |scale|.
// Calculates |outer_rect| and |inner_rect| between which the drawn content
// would not be opaque due to |translation| and/or |scale| and should be cleared
// with an opaque color before drawing the original contents, to ensure all
// texels are fully opaque. The output rects are in the device space.
// Returns false if no clearing for opaque is needed.
bool CC_PAINT_EXPORT
CalculateClearForOpaqueRasterRects(const gfx::Vector2dF& translation,
const gfx::SizeF& scale,
const gfx::Size& content_size,
const gfx::Rect& canvas_bitmap_rect,
const gfx::Rect& canvas_playback_rect,
gfx::Rect& outer_rect,
gfx::Rect& inner_rect);
} // namespace cc
#endif // CC_PAINT_CLEAR_FOR_OPAQUE_RASTER_H_