skia2/resources/images
Brian Osman 7c979f52c3 Experimental Particle System
This adds a new "Particles" slide to viewer, that allows
editing, loading, and saving particle effects. All of the
particle system code is in modules/particles.

There are many rough edges and some not-yet-finished changes
to generalize the model[1]. A rough overview:

- SkReflected.h implements a lightweight reflection system
  for classes derived from SkReflected. Adding a new class
  involves deriving from SkReflected, adding a macro to the
  class declaration, and implementing visitFields(), which
  simply calls a virtual on an SkFieldVisitor for each field.
  Currently, emitters and affectors use this mechanism.

- SkParticleSerialization.h demonstrates two useful field
  visitors - for serializing to and from JSON. The driver
  code that uses those is directly in ParticlesSlide.

- SkParticleData.h and SkCurve.h define a variety of helper
  types for talking about particles, both for parameterizing
  individual values, and communicating about the state of a
  particle among the effect, affectors, and emitters.

- SkParticleEffect.h defines the static data definition of
  an effect (SkParticleEffectParams), as well as a running
  instance of an effect (SkParticleEffect). The effect has
  simple update() and draw() methods.

- ParticlesSlide.cpp adds a third field visitor to generate
  GUIs for interactively editing the running effect.

---

1: The critical change I'd like to make is to remove all
special case behavior over time and at spawn (setting sprite
frames, size over time, color over time, etc...). Integration
is the only fixed function behavior. Everything else is driven
by two lists of affectors. One is applied at spawn time, using
the effect's lifetime to evaluate curves. This allows spawning
particles with different colors as the effect ages out, for
example. The second list is applied every frame to update
existing particles, and is driven by the particle's lifetime.
This allows particles to change color after being spawned, for
example.

With a small set of affectors using a single expressive curve
primitive (keyframed list of cubic curve segments), we can
have affectors that update color, size, velocity, position,
sprite frame, etc., and implement many complex behaviors.

Bug: skia:
Change-Id: Id9402bef22825d55d021c5a2f9e5e41791aabaf4
Reviewed-on: https://skia-review.googlesource.com/c/181404
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2019-02-12 18:53:41 +00:00
..
orientation Make SkAndroidCodec (optionally) respect origin 2018-01-26 22:13:34 +00:00
1x1.png
1x3.png
1x16.png
2x2.png
3x1.png
3x3.png
16x1.png
alphabetAnim.gif
arrow.png
b78329453.jpeg Update libjpeg-turbo to pre-2.0.0 (from 1.5.3) 2018-06-26 15:22:12 +00:00
baby_tux.png
baby_tux.webp
blendBG.webp
box.gif
brickwork_normal-map.jpg
brickwork-texture.jpg
CMYK.jpg
color_wheel_with_profile.png
color_wheel.gif
color_wheel.ico
color_wheel.jpg
color_wheel.png
color_wheel.webp
colorTables.gif
crbug807324.png Support pngs with incorrect CMF bytes 2018-02-28 21:46:03 +00:00
cropped_mandrill.jpg
dng_with_preview.dng
dog.jpg
exif-orientation-2-ur.jpg
explosion_sprites.png Experimental Particle System 2019-02-12 18:53:41 +00:00
flightAnim.gif [skottie] Multi-frame image support 2018-10-03 19:02:35 +00:00
flutter_logo.jpg
gamut.png
google_chrome.ico
grayscale.jpg
half-transparent-white-pixel.png
half-transparent-white-pixel.webp
icc-v2-gbr.jpg
iconstrip.png
index8.png
mandrill_16.png Add sRGB profile to mandrill images 2018-07-09 23:02:39 +00:00
mandrill_32.png Add sRGB profile to mandrill images 2018-07-09 23:02:39 +00:00
mandrill_64.png Add sRGB profile to mandrill images 2018-07-09 23:02:39 +00:00
mandrill_128.png Add sRGB profile to mandrill images 2018-07-09 23:02:39 +00:00
mandrill_256.png Add sRGB profile to mandrill images 2018-07-09 23:02:39 +00:00
mandrill_512_q075.jpg
mandrill_512.png
mandrill_cmyk.jpg Reland "Switch SkCodec to use skcms plus fixes"" 2018-08-27 16:16:14 +00:00
mandrill_h1v1.jpg
mandrill_h2v1.jpg
mandrill.wbmp
out-of-palette.gif Test a GIF with an out of range transparent index 2018-10-12 14:20:02 +00:00
plane_interlaced.png
plane.png
purple-displayprofile.png Reland "Switch SkCodec to use skcms plus fixes"" 2018-08-27 16:16:14 +00:00
rainbow-gradient.png
randPixels.bmp
randPixels.gif
randPixels.jpg
randPixels.png
randPixels.webp
randPixelsAnim2.gif
randPixelsAnim.gif
randPixelsOffset.gif
required.gif
required.webp
rle.bmp
sample_1mp_rotated.dng
sample_1mp.dng
shadowreference.png
ship.png
test640x479.gif
webp-animated.webp
webp-color-profile-crash.webp
webp-color-profile-lossless.webp
webp-color-profile-lossy-alpha.webp
webp-color-profile-lossy.webp
wide-gamut.png Reland "Switch SkCodec to use skcms plus fixes"" 2018-08-27 16:16:14 +00:00
yellow_rose.png
yellow_rose.webp