Flutter Engine
The Flutter Engine
examples.cpp
Go to the documentation of this file.
1// Copyright 2019 Google LLC.
2// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
3
5
6#if defined(SK_FONTMGR_FONTCONFIG_AVAILABLE)
8#endif
9
10#if defined(SK_FONTMGR_CORETEXT_AVAILABLE)
12#endif
13
14#if defined(SK_FONTMGR_DIRECTWRITE_AVAILABLE)
16#endif
17
18#if defined(SK_FONTMGR_FREETYPE_DIRECTORY_AVAILABLE)
20#endif
21
23
24// These globals are needed by fiddles:
30double duration = 1.0;
31double frame = 1.0;
33
34int main() {
35 constexpr int kImgCount = 7;
36 sk_sp<SkImage> images[kImgCount];
37 SkBitmap bitmaps[kImgCount];
38 for (int i = 1; i < kImgCount; ++i) {
39 SkString path = SkStringPrintf("resources/images/example_%d.png", i);
41 SkAssertResult(images[i] && images[i]->asLegacyBitmap(&bitmaps[i]));
42 }
43#if defined(SK_FONTMGR_FONTCONFIG_AVAILABLE)
45#elif defined(SK_FONTMGR_CORETEXT_AVAILABLE)
47#elif defined(SK_FONTMGR_DIRECTWRITE_AVAILABLE)
48 fontMgr = SkFontMgr_New_DirectWrite();
49#elif defined(SK_FONTMGR_FREETYPE_DIRECTORY_AVAILABLE)
50 fontMgr = SkFontMgr_New_Custom_Directory("/usr/share/fonts/");
51#else
52 #error "Unsupported OS"
53#endif
55 SkASSERT((unsigned)example.fImageIndex < (unsigned)kImgCount);
56 image = images[example.fImageIndex];
57 source = bitmaps[example.fImageIndex];
58 SkBitmap bmp;
59 bmp.allocN32Pixels(example.fWidth, example.fHeight);
61 SkCanvas canvas(bmp);
62 SkDebugf("==> %s\n", example.fName);
63 example.fFunc(&canvas);
64 }
65}
SkAssertResult(font.textToGlyphs("Hello", 5, SkTextEncoding::kUTF8, glyphs, std::size(glyphs))==count)
#define SkASSERT(cond)
Definition: SkAssert.h:116
constexpr SkColor SK_ColorWHITE
Definition: SkColor.h:122
void SK_SPI SkDebugf(const char format[],...) SK_PRINTF_LIKE(1
SK_API sk_sp< SkFontMgr > SkFontMgr_New_Custom_Directory(const char *dir)
SK_API sk_sp< SkFontMgr > SkFontMgr_New_FontConfig(FcConfig *fc)
SK_API sk_sp< SkFontMgr > SkFontMgr_New_CoreText(CTFontCollectionRef)
SK_API SkString SkStringPrintf(const char *format,...) SK_PRINTF_LIKE(1
Creates a new string and writes into it using a printf()-style format.
void allocN32Pixels(int width, int height, bool isOpaque=false)
Definition: SkBitmap.cpp:232
void eraseColor(SkColor4f) const
Definition: SkBitmap.cpp:442
static sk_sp< SkData > MakeFromFileName(const char path[])
Definition: SkData.cpp:148
sk_sp< SkFontMgr > fontMgr
Definition: examples.cpp:32
GrBackendTexture backEndTextureRenderTarget
Definition: examples.cpp:27
sk_sp< SkImage > image
Definition: examples.cpp:29
SkBitmap source
Definition: examples.cpp:28
GrBackendRenderTarget backEndRenderTarget
Definition: examples.cpp:26
GrBackendTexture backEndTexture
Definition: examples.cpp:25
double duration
Definition: examples.cpp:30
int main()
Definition: examples.cpp:34
double frame
Definition: examples.cpp:31
std::array< MockImage, 3 > images
Definition: mock_vulkan.cc:41
SK_API sk_sp< SkImage > DeferredFromEncodedData(sk_sp< SkData > encoded, std::optional< SkAlphaType > alphaType=std::nullopt)
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot The VM snapshot data that will be memory mapped as read only SnapshotAssetPath must be present isolate snapshot The isolate snapshot data that will be memory mapped as read only SnapshotAssetPath must be present cache dir Path to the cache directory This is different from the persistent_cache_path in embedder which is used for Skia shader cache icu native lib Path to the library file that exports the ICU data vm service The hostname IP address on which the Dart VM Service should be served If not defaults to or::depending on whether ipv6 is specified vm service A custom Dart VM Service port The default is to pick a randomly available open port disable vm Disable the Dart VM Service The Dart VM Service is never available in release mode disable vm service Disable mDNS Dart VM Service publication Bind to the IPv6 localhost address for the Dart VM Service Ignored if vm service host is set endless trace Enable an endless trace buffer The default is a ring buffer This is useful when very old events need to viewed For example
Definition: switches.h:128
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot The VM snapshot data that will be memory mapped as read only SnapshotAssetPath must be present isolate snapshot The isolate snapshot data that will be memory mapped as read only SnapshotAssetPath must be present cache dir path
Definition: switches.h:57