1234567891011121314151617181920212223242526272829303132333435363738 |
- // 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 CC_PAINT_PAINT_WORKLET_LAYER_PAINTER_H_
- #define CC_PAINT_PAINT_WORKLET_LAYER_PAINTER_H_
- #include "base/callback.h"
- #include "cc/paint/paint_export.h"
- #include "cc/paint/paint_record.h"
- #include "cc/paint/paint_worklet_job.h"
- namespace cc {
- // PaintWorkletLayerPainter bridges between the compositor and the PaintWorklet
- // thread, providing hooks for the compositor to paint PaintWorklet content that
- // Blink has deferred on.
- class CC_PAINT_EXPORT PaintWorkletLayerPainter {
- public:
- virtual ~PaintWorkletLayerPainter() {}
- // Asynchronously paints a set of PaintWorklet instances. The results are
- // returned via the provided callback, on the same thread that originally
- // called this method.
- //
- // Only one dispatch is allowed at a time; the calling code should not call
- // |DispatchWorklets| again until the passed |DoneCallback| has been called.
- using DoneCallback = base::OnceCallback<void(PaintWorkletJobMap)>;
- virtual void DispatchWorklets(PaintWorkletJobMap, DoneCallback) = 0;
- // Returns whether or not a dispatched set of PaintWorklet instances is
- // currently being painted.
- virtual bool HasOngoingDispatch() const = 0;
- };
- } // namespace cc
- #endif // CC_PAINT_PAINT_WORKLET_LAYER_PAINTER_H_
|