blob: 03d3fd2fa1b6ea2f5e909c07eebdbe7eefafd8c1 [file] [log] [blame]
Hal Canary87515122019-03-15 14:22:51 -04001// 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
Mike Kleinc0bd9f92019-04-23 12:05:21 -05004#include "tools/fiddle/examples.h"
Hal Canary87515122019-03-15 14:22:51 -04005
6template sk_tools::Registry<fiddle::Example>* sk_tools::Registry<fiddle::Example>::gHead;
7
8// These globals are needed by fiddles:
9GrBackendTexture backEndTexture;
10GrBackendRenderTarget backEndRenderTarget;
11GrBackendTexture backEndTextureRenderTarget;
12SkBitmap source;
13sk_sp<SkImage> image;
14double duration = 1.0;
15double frame = 1.0;
16
17int main() {
18 constexpr int kImgCount = 7;
19 sk_sp<SkImage> images[kImgCount];
20 SkBitmap bitmaps[kImgCount];
21 for (int i = 1; i < kImgCount; ++i) {
22 SkString path = SkStringPrintf("resources/images/example_%d.png", i);
23 images[i] = SkImage::MakeFromEncoded(SkData::MakeFromFileName(path.c_str()));
24 SkAssertResult(images[i] && images[i]->asLegacyBitmap(&bitmaps[i]));
25 }
26 for (const fiddle::Example& example : sk_tools::Registry<fiddle::Example>::Range()) {
27 SkASSERT((unsigned)example.fImageIndex < (unsigned)kImgCount);
28 image = images[example.fImageIndex];
29 source = bitmaps[example.fImageIndex];
30 SkBitmap bmp;
31 bmp.allocN32Pixels(example.fWidth, example.fHeight);
32 bmp.eraseColor(SK_ColorWHITE);
33 SkCanvas canvas(bmp);
34 SkDebugf("==> %s\n", example.fName);
35 example.fFunc(&canvas);
36 }
37}