diff options
Diffstat (limited to 'samplecode/Nima.h')
-rw-r--r-- | samplecode/Nima.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/samplecode/Nima.h b/samplecode/Nima.h new file mode 100644 index 0000000000..0017fcf59c --- /dev/null +++ b/samplecode/Nima.h @@ -0,0 +1,54 @@ +/* + * Copyright 2018 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef Nima_DEFINED +#define Nima_DEFINED + +#include <nima/Actor.hpp> +#include <nima/ActorImage.hpp> +#include <nima/Vec2D.hpp> + +#include "SkCanvas.h" +#include "SkImage.h" + +class SampleActor; +class SampleActorImage; + +class SampleActor : public nima::Actor { +public: + SampleActor(std::string baseName); + ~SampleActor(); + + void render(SkCanvas* canvas) const; + +private: + sk_sp<SkImage> fTexture; + std::vector<SampleActorImage> fActorImages; + std::unique_ptr<SkPaint> fPaint; + + typedef nima::Actor INHERITED; +}; + +class SampleActorImage { +public: + SampleActorImage(nima::ActorImage* actorImage, sk_sp<SkImage> texture, SkPaint* paint); + ~SampleActorImage(); + + void render(const SampleActor* actor, SkCanvas* canvas) const; + + int drawOrder() const { return fActorImage->drawOrder(); } + +private: + nima::Vec2D deform(const nima::Vec2D& position, float* boneIdx, float* boneWgt) const; + +private: + nima::ActorImage* fActorImage; + sk_sp<SkImage> fTexture; + SkPaint* fPaint; +}; + +#endif |