| // Copyright 2019 Google LLC. |
| // Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. |
| #ifndef examples_DEFINED |
| #define examples_DEFINED |
| |
| #include "tools/Registry.h" |
| #include "skia.h" |
| |
| #include <cmath> |
| #include <string> |
| |
| namespace fiddle { |
| struct Example { |
| void (*fFunc)(SkCanvas*); |
| const char* fName; |
| int fImageIndex; |
| int fWidth; |
| int fHeight; |
| bool fText; |
| bool fSRGB; |
| bool fF16; |
| bool fAnimation; |
| bool fOffscreen; |
| }; |
| } |
| |
| extern GrBackendTexture backEndTexture; |
| extern GrBackendRenderTarget backEndRenderTarget; |
| extern GrBackendTexture backEndTextureRenderTarget; |
| extern SkBitmap source; |
| extern sk_sp<SkImage> image; |
| extern double duration; // The total duration of the animation in seconds. |
| extern double frame; // A value in [0, 1] of where we are in the animation. |
| |
| #define REG_FIDDLE(NAME, W, H, TEXT, I) \ |
| namespace example_##NAME { void draw(SkCanvas*); } \ |
| sk_tools::Registry<fiddle::Example> reg_##NAME( \ |
| fiddle::Example{&example_##NAME::draw, #NAME, I, W, H, TEXT, false, false, false, false}); \ |
| namespace example_##NAME |
| |
| #endif // examples_DEFINED |