Flutter Engine
The Flutter Engine
single_frame_codec.h
Go to the documentation of this file.
1// Copyright 2013 The Flutter Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef FLUTTER_LIB_UI_PAINTING_SINGLE_FRAME_CODEC_H_
6#define FLUTTER_LIB_UI_PAINTING_SINGLE_FRAME_CODEC_H_
7
8#include "flutter/fml/macros.h"
9#include "flutter/lib/ui/painting/codec.h"
10#include "flutter/lib/ui/painting/image.h"
11#include "flutter/lib/ui/painting/image_decoder.h"
12#include "flutter/lib/ui/painting/image_descriptor.h"
13
14namespace flutter {
15
16class SingleFrameCodec : public Codec {
17 public:
19 uint32_t target_width,
20 uint32_t target_height);
21
23
24 // |Codec|
25 int frameCount() const override;
26
27 // |Codec|
28 int repetitionCount() const override;
29
30 // |Codec|
32
33 private:
34 enum class Status { kNew, kInProgress, kComplete };
35 Status status_ = Status::kNew;
37 uint32_t target_width_;
38 uint32_t target_height_;
39 fml::RefPtr<CanvasImage> cached_image_;
40 std::vector<tonic::DartPersistentValue> pending_callbacks_;
41
42 FML_FRIEND_MAKE_REF_COUNTED(SingleFrameCodec);
43 FML_FRIEND_REF_COUNTED_THREAD_SAFE(SingleFrameCodec);
44};
45
46} // namespace flutter
47
48#endif // FLUTTER_LIB_UI_PAINTING_SINGLE_FRAME_CODEC_H_
SingleFrameCodec(const fml::RefPtr< ImageDescriptor > &descriptor, uint32_t target_width, uint32_t target_height)
int frameCount() const override
int repetitionCount() const override
Dart_Handle getNextFrame(Dart_Handle args) override
struct _Dart_Handle * Dart_Handle
Definition: dart_api.h:258
G_BEGIN_DECLS G_MODULE_EXPORT FlValue * args