// Copyright 2015 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_NINE_PIECE_IMAGE_GRID_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_NINE_PIECE_IMAGE_GRID_H_ #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/layout/geometry/box_sides.h" #include "third_party/blink/renderer/core/style/nine_piece_image.h" #include "ui/gfx/geometry/rect.h" #include "ui/gfx/geometry/rect_f.h" #include "ui/gfx/geometry/size.h" #include "ui/gfx/geometry/size_f.h" namespace gfx { class Outsets; } namespace blink { enum NinePiece { … }; inline NinePiece& operator++(NinePiece& piece) { … } // The NinePieceImageGrid class is responsible for computing drawing information // for the nine piece image. // // https://drafts.csswg.org/css-backgrounds/#border-image-process // // Given an image, a set of slices and a border area: // // | | // +---+---------+---+ +------------------+ // | 1 | 7 | 4 | | border | // --+---+---------+---+--- | +------------+ | // | | | | | | | | // | 3 | 9 | 6 | | | css | | // | | image | | | | box | | // | | | | | | | | // --+---+---------+---+--- | | | | // | 2 | 8 | 5 | | +------------+ | // +---+---------+---+ | | // | | +------------------+ // // it generates drawing information for the nine border pieces. class CORE_EXPORT NinePieceImageGrid { … }; } // namespace blink #endif // THIRD_PARTY_BLINK_RENDERER_CORE_PAINT_NINE_PIECE_IMAGE_GRID_H_