0

[PDF Ink Signatures] Update InkBrushFamily to use move semantics

Change InkBrushFamily::Create() to take its InkBrushPaint and
InkBrushTip arguments instead of copying them. Update the two structs
and the Create() caller to support move semantics.

Change-Id: I112cf42bb51d5e7792db5c7cd7812f1cc02c034b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5565281
Code-Coverage: findit-for-me@appspot.gserviceaccount.com <findit-for-me@appspot.gserviceaccount.com>
Reviewed-by: Andy Phan <andyphan@chromium.org>
Reviewed-by: Alan Screen <awscreen@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1305442}
This commit is contained in:
Lei Zhang
2024-05-24 00:05:23 +00:00
committed by Chromium LUCI CQ
parent 38b05884e8
commit ce5829a893
7 changed files with 24 additions and 5 deletions

@ -15,8 +15,8 @@ struct InkBrushTip;
class InkBrushFamily {
public:
static std::unique_ptr<InkBrushFamily> Create(const InkBrushTip& tip,
const InkBrushPaint& paint,
static std::unique_ptr<InkBrushFamily> Create(InkBrushTip tip,
InkBrushPaint paint,
std::string_view uri_string);
~InkBrushFamily();

@ -8,6 +8,10 @@ namespace chrome_pdf {
InkBrushPaint::InkBrushPaint() = default;
InkBrushPaint::InkBrushPaint(InkBrushPaint&&) noexcept = default;
InkBrushPaint& InkBrushPaint::operator=(InkBrushPaint&&) noexcept = default;
InkBrushPaint::~InkBrushPaint() = default;
InkBrushPaint::TextureLayer::TextureLayer() = default;

@ -13,6 +13,10 @@ namespace chrome_pdf {
struct InkBrushPaint {
InkBrushPaint();
InkBrushPaint(const InkBrushPaint&) = delete;
InkBrushPaint& operator=(const InkBrushPaint&) = delete;
InkBrushPaint(InkBrushPaint&&) noexcept;
InkBrushPaint& operator=(InkBrushPaint&&) noexcept;
~InkBrushPaint();
enum class TextureMapping {

@ -8,6 +8,10 @@ namespace chrome_pdf {
InkBrushTip::InkBrushTip() = default;
InkBrushTip::InkBrushTip(InkBrushTip&&) noexcept = default;
InkBrushTip& InkBrushTip::operator=(InkBrushTip&&) noexcept = default;
InkBrushTip::~InkBrushTip() = default;
} // namespace chrome_pdf

@ -13,6 +13,10 @@ namespace chrome_pdf {
struct InkBrushTip {
InkBrushTip();
InkBrushTip(const InkBrushTip&) = delete;
InkBrushTip& operator=(const InkBrushTip&) = delete;
InkBrushTip(InkBrushTip&&) noexcept;
InkBrushTip& operator=(InkBrushTip&&) noexcept;
~InkBrushTip();
float scale_x = 1;

@ -7,13 +7,15 @@
#include <memory>
#include "base/memory/ptr_util.h"
#include "pdf/ink/ink_brush_paint.h"
#include "pdf/ink/ink_brush_tip.h"
namespace chrome_pdf {
// static
std::unique_ptr<InkBrushFamily> InkBrushFamily::Create(
const InkBrushTip& tip,
const InkBrushPaint& paint,
InkBrushTip tip,
InkBrushPaint paint,
std::string_view uri_string) {
// Protected ctor.
return base::WrapUnique(new InkBrushFamily());

@ -6,6 +6,7 @@
#include <numbers>
#include <optional>
#include <utility>
#include "base/check_op.h"
#include "pdf/ink/ink_brush.h"
@ -68,7 +69,7 @@ std::unique_ptr<InkBrush> PdfInkBrush::CreateInkBrush() {
InkBrushPaint paint;
paint.texture_layers.push_back(layer);
auto family = InkBrushFamily::Create(tip, paint, "");
auto family = InkBrushFamily::Create(std::move(tip), std::move(paint), "");
CHECK(family);
return InkBrush::Create(std::move(family),