123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- // Copyright 2019 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 COMPONENTS_PAINT_PREVIEW_RENDERER_PAINT_PREVIEW_RECORDER_UTILS_H_
- #define COMPONENTS_PAINT_PREVIEW_RENDERER_PAINT_PREVIEW_RECORDER_UTILS_H_
- #include "base/files/file.h"
- #include "cc/paint/paint_record.h"
- #include "components/paint_preview/common/mojom/paint_preview_recorder.mojom-forward.h"
- #include "mojo/public/cpp/base/big_buffer.h"
- #include "third_party/skia/include/core/SkRefCnt.h"
- #include "third_party/skia/include/core/SkStream.h"
- #include "ui/gfx/geometry/rect.h"
- // These utilities are used by the PaintPreviewRecorderImpl. They are separate
- // for testing purposes and to enforce restrictions caused by the lifetime of
- // PaintPreviewServiceImpl being tied to it's associated RenderFrame.
- namespace paint_preview {
- class PaintPreviewTracker;
- // Pre processes the PaintOpBuffer prior to conversion to SkPicture.
- // 1. Walks |buffer| to extract all the glyphs from its text blobs and links.
- // The extracted data is written to `tracker`.
- // 2. Tracks geometry changes for frames and saves them to `tracker`.
- // 3. Unaccelerates GPU accelerated PaintImages.
- void PreProcessPaintOpBuffer(const cc::PaintOpBuffer* buffer,
- PaintPreviewTracker* tracker);
- // Convert |recording| into an SkPicture, tracking embedded content. Will return
- // |nullptr| if the resulting picture failed or zero sized.
- sk_sp<const SkPicture> PaintRecordToSkPicture(
- sk_sp<const cc::PaintRecord> recording,
- PaintPreviewTracker* tracker,
- const gfx::Rect& bounds);
- // NOTE: |tracker| is effectively const here despite being passed by pointer.
- void BuildResponse(PaintPreviewTracker* tracker,
- mojom::PaintPreviewCaptureResponse* response);
- } // namespace paint_preview
- #endif // COMPONENTS_PAINT_PREVIEW_RENDERER_PAINT_PREVIEW_RECORDER_UTILS_H_
|