Flutter Engine
Loading...
Searching...
No Matches
image.cc
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
#include "
flutter/lib/ui/painting/image.h
"
6
7
#include <algorithm>
8
#include <limits>
9
#include "
tonic/logging/dart_invoke.h
"
10
11
#if IMPELLER_SUPPORTS_RENDERING
12
#include "
flutter/lib/ui/painting/image_encoding_impeller.h
"
13
#endif
14
#include "
flutter/lib/ui/painting/image_encoding.h
"
15
#include "
third_party/tonic/converter/dart_converter.h
"
16
#include "
third_party/tonic/dart_args.h
"
17
#include "
third_party/tonic/dart_binding_macros.h
"
18
#include "
third_party/tonic/dart_library_natives.h
"
19
20
namespace
flutter
{
21
22
typedef
CanvasImage
Image
;
23
24
// Since _Image is a private class, we can't use IMPLEMENT_WRAPPERTYPEINFO
25
static
const
tonic::DartWrapperInfo
kDartWrapperInfoUIImage
(
"ui"
,
"_Image"
);
26
const
tonic::DartWrapperInfo
& Image::dart_wrapper_info_ =
27
kDartWrapperInfoUIImage
;
28
29
CanvasImage::CanvasImage() =
default
;
30
31
CanvasImage::~CanvasImage
() =
default
;
32
33
Dart_Handle
CanvasImage::CreateOuterWrapping
() {
34
Dart_Handle ui_lib = Dart_LookupLibrary(
tonic::ToDart
(
"dart:ui"
));
35
return
tonic::DartInvokeField
(ui_lib,
"_wrapImage"
, {ToDart(
this
)});
36
}
37
38
Dart_Handle
CanvasImage::toByteData
(
int
format, Dart_Handle
callback
) {
39
return
EncodeImage
(
this
,
format
,
callback
);
40
}
41
42
void
CanvasImage::dispose
() {
43
image_.reset();
44
ClearDartWrapper
();
45
}
46
47
int
CanvasImage::colorSpace
() {
48
if
(image_->skia_image()) {
49
return
ColorSpace::kSRGB
;
50
}
else
if
(image_->impeller_texture()) {
51
#if IMPELLER_SUPPORTS_RENDERING
52
return
ImageEncodingImpeller::GetColorSpace
(image_->impeller_texture());
53
#endif
// IMPELLER_SUPPORTS_RENDERING
54
}
55
return
ColorSpace::kSRGB
;
56
}
57
58
}
// namespace flutter
flutter::CanvasImage::toByteData
Dart_Handle toByteData(int format, Dart_Handle callback)
Definition
image.cc:38
flutter::CanvasImage::colorSpace
int colorSpace()
Definition
image.cc:47
flutter::CanvasImage::~CanvasImage
~CanvasImage() override
flutter::CanvasImage::dispose
void dispose()
Definition
image.cc:42
flutter::CanvasImage::CreateOuterWrapping
Dart_Handle CreateOuterWrapping()
Definition
image.cc:33
flutter::ImageEncodingImpeller::GetColorSpace
static int GetColorSpace(const std::shared_ptr< impeller::Texture > &texture)
Definition
image_encoding_impeller.cc:257
tonic::DartWrappable::ClearDartWrapper
void ClearDartWrapper()
Definition
dart_wrappable.cc:66
dart_args.h
dart_binding_macros.h
dart_converter.h
dart_invoke.h
dart_library_natives.h
format
uint32_t uint32_t * format
Definition
fl_texture_registrar_test.cc:42
callback
FlutterDesktopBinaryReply callback
Definition
flutter_windows_view_unittests.cc:52
image_encoding.h
image_encoding_impeller.h
image.h
flutter
Definition
asset_manager.cc:10
flutter::kSRGB
@ kSRGB
Definition
image.h:17
flutter::kDartWrapperInfoUIImage
static const tonic::DartWrapperInfo kDartWrapperInfoUIImage("ui", "_Image")
flutter::Image
CanvasImage Image
Definition
dart_ui.cc:51
flutter::EncodeImage
Dart_Handle EncodeImage(CanvasImage *canvas_image, int format, Dart_Handle callback_handle)
Definition
image_encoding.cc:165
tonic::ToDart
Dart_Handle ToDart(const T &object)
Definition
dart_converter.h:579
tonic::DartInvokeField
Dart_Handle DartInvokeField(Dart_Handle target, const char *name, std::initializer_list< Dart_Handle > args)
Definition
dart_invoke.cc:12
tonic::DartWrapperInfo
Definition
dart_wrapper_info.h:15
lib
ui
painting
image.cc
Generated on Wed Nov 5 2025 21:33:14 for Flutter Engine by
1.9.8