| /* |
| * 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 SampleNimaActor_DEFINED |
| #define SampleNimaActor_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 |