// 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 UI_GFX_CANVAS_H_ #define UI_GFX_CANVAS_H_ #include <stdint.h> #include <memory> #include <optional> #include <string> #include <vector> #include "base/memory/raw_ptr.h" #include "cc/paint/paint_canvas.h" #include "cc/paint/paint_flags.h" #include "cc/paint/skia_paint_canvas.h" #include "cc/paint/skottie_color_map.h" #include "cc/paint/skottie_frame_data.h" #include "cc/paint/skottie_text_property_value.h" #include "ui/gfx/image/image_skia.h" #include "ui/gfx/native_widget_types.h" #include "ui/gfx/text_constants.h" namespace cc { class SkottieWrapper; } // namespace cc namespace gfx { class Rect; class RectF; class FontList; class Point; class PointF; class Size; class Transform; class Vector2d; // Canvas is a PaintCanvas wrapper that provides a number of methods for // common operations used throughout an application built using ui/gfx. // // All methods that take integer arguments (as is used throughout views) // end with Int. If you need to use methods provided by PaintCanvas, you'll // need to do a conversion. In particular you'll need to use |SkIntToScalar()|, // or if converting from a scalar to an integer |SkScalarRound()|. // // A handful of methods in this class are overloaded providing an additional // argument of type SkBlendMode. SkBlendMode specifies how the // source and destination colors are combined. Unless otherwise specified, // the variant that does not take a SkBlendMode uses a transfer mode // of kSrcOver_Mode. class GFX_EXPORT Canvas { … }; } // namespace gfx #endif // UI_GFX_CANVAS_H_