#include "third_party/blink/renderer/core/paint/inline_box_fragment_painter.h"
#include "third_party/blink/renderer/core/css/properties/longhands.h"
#include "third_party/blink/renderer/core/layout/background_bleed_avoidance.h"
#include "third_party/blink/renderer/core/layout/inline/inline_cursor.h"
#include "third_party/blink/renderer/core/layout/layout_object.h"
#include "third_party/blink/renderer/core/layout/logical_fragment.h"
#include "third_party/blink/renderer/core/paint/box_background_paint_context.h"
#include "third_party/blink/renderer/core/paint/nine_piece_image_painter.h"
#include "third_party/blink/renderer/core/paint/object_painter.h"
#include "third_party/blink/renderer/core/paint/paint_info.h"
#include "third_party/blink/renderer/core/paint/paint_layer.h"
#include "third_party/blink/renderer/core/paint/paint_phase.h"
#include "third_party/blink/renderer/core/paint/scoped_paint_state.h"
#include "third_party/blink/renderer/core/paint/scoped_svg_paint_state.h"
#include "third_party/blink/renderer/core/paint/timing/paint_timing_detector.h"
#include "third_party/blink/renderer/core/paint/url_metadata_utils.h"
#include "third_party/blink/renderer/core/style/nine_piece_image.h"
#include "third_party/blink/renderer/platform/graphics/graphics_context_state_saver.h"
#include "third_party/blink/renderer/platform/graphics/paint/drawing_recorder.h"
#include "third_party/blink/renderer/platform/graphics/paint/scoped_display_item_fragment.h"
namespace blink {
namespace {
template <class Items>
bool HasMultipleItems(const Items items) { … }
inline bool MayHaveMultipleFragmentItems(const FragmentItem& item,
const LayoutObject& layout_object) { … }
}
PhysicalBoxSides InlineBoxFragmentPainter::SidesToInclude() const { … }
void InlineBoxFragmentPainter::Paint(const PaintInfo& paint_info,
const PhysicalOffset& paint_offset) { … }
void InlineBoxFragmentPainter::PaintMask(const PaintInfo& paint_info,
const PhysicalOffset& paint_offset) { … }
void InlineBoxFragmentPainterBase::PaintBackgroundBorderShadow(
const PaintInfo& paint_info,
const PhysicalOffset& paint_offset) { … }
gfx::Rect InlineBoxFragmentPainterBase::VisualRect(
const PhysicalOffset& paint_offset) { … }
void LineBoxFragmentPainter::PaintBackgroundBorderShadow(
const PaintInfo& paint_info,
const PhysicalOffset& paint_offset) { … }
void InlineBoxFragmentPainterBase::ComputeFragmentOffsetOnLine(
TextDirection direction,
LayoutUnit* offset_on_line,
LayoutUnit* total_width) const { … }
PhysicalRect InlineBoxFragmentPainterBase::PaintRectForImageStrip(
const PhysicalRect& paint_rect,
TextDirection direction) const { … }
PhysicalRect InlineBoxFragmentPainterBase::ClipRectForNinePieceImageStrip(
const ComputedStyle& style,
PhysicalBoxSides sides_to_include,
const NinePieceImage& image,
const PhysicalRect& paint_rect) { … }
InlineBoxFragmentPainterBase::SlicePaintingType
InlineBoxFragmentPainterBase::GetBorderPaintType(
const PhysicalRect& adjusted_frame_rect,
gfx::Rect& adjusted_clip_rect,
bool object_has_multiple_boxes) const { … }
InlineBoxFragmentPainterBase::SlicePaintingType
InlineBoxFragmentPainterBase::GetSlicePaintType(
const NinePieceImage& nine_piece_image,
const PhysicalRect& adjusted_frame_rect,
gfx::Rect& adjusted_clip_rect,
bool object_has_multiple_boxes) const { … }
void InlineBoxFragmentPainterBase::PaintNormalBoxShadow(
const PaintInfo& info,
const ComputedStyle& s,
const PhysicalRect& paint_rect) { … }
void InlineBoxFragmentPainterBase::PaintInsetBoxShadow(
const PaintInfo& info,
const ComputedStyle& s,
const PhysicalRect& paint_rect) { … }
void InlineBoxFragmentPainterBase::PaintBoxDecorationBackground(
BoxPainterBase& box_painter,
const PaintInfo& paint_info,
const PhysicalOffset& paint_offset,
const PhysicalRect& adjusted_frame_rect,
const BoxBackgroundPaintContext& bg_paint_context,
bool object_has_multiple_boxes,
PhysicalBoxSides sides_to_include) { … }
void InlineBoxFragmentPainterBase::PaintFillLayers(
BoxPainterBase& box_painter,
const PaintInfo& info,
const Color& c,
const FillLayer& layer,
const PhysicalRect& rect,
const BoxBackgroundPaintContext& bg_paint_context,
bool object_has_multiple_boxes) { … }
void InlineBoxFragmentPainterBase::PaintFillLayer(
BoxPainterBase& box_painter,
const PaintInfo& paint_info,
const Color& c,
const FillLayer& fill_layer,
const PhysicalRect& paint_rect,
const BoxBackgroundPaintContext& bg_paint_context,
bool object_has_multiple_boxes) { … }
void InlineBoxFragmentPainter::PaintAllFragments(
const LayoutInline& layout_inline,
const FragmentData& fragment_data,
wtf_size_t fragment_data_idx,
const PaintInfo& paint_info) { … }
#if DCHECK_IS_ON()
void InlineBoxFragmentPainter::CheckValid() const { … }
#endif
}