• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 #ifndef examples_DEFINED
4 #define examples_DEFINED
5 
6 #include "tools/Registry.h"
7 #include "skia.h"
8 
9 #include <cmath>
10 #include <string>
11 
12 namespace fiddle {
13 struct Example {
14     void (*fFunc)(SkCanvas*);
15     const char* fName;
16     int fImageIndex;
17     int fWidth;
18     int fHeight;
19     bool fText;
20     bool fSRGB;
21     bool fF16;
22     bool fAnimation;
23     bool fOffscreen;
24 };
25 }
26 
27 extern GrBackendTexture backEndTexture;
28 extern GrBackendRenderTarget backEndRenderTarget;
29 extern GrBackendTexture backEndTextureRenderTarget;
30 extern SkBitmap source;
31 extern sk_sp<SkImage> image;
32 extern double duration; // The total duration of the animation in seconds.
33 extern double frame;    // A value in [0, 1] of where we are in the animation.
34 
35 #define REG_FIDDLE(NAME, W, H, TEXT, I)                                            \
36     namespace example_##NAME { void draw(SkCanvas*);  }                            \
37     sk_tools::Registry<fiddle::Example> reg_##NAME(                                \
38         fiddle::Example{&example_##NAME::draw, #NAME, I, W, H, TEXT, false, false, false, false}); \
39     namespace example_##NAME
40 
41 #endif  // examples_DEFINED
42