diff options
author | Jun Mukai <mukai@google.com> | 2015-10-28 16:46:44 -0700 |
---|---|---|
committer | Jun Mukai <mukai@google.com> | 2015-11-17 17:36:08 -0800 |
commit | 808196f139e93395f1f331f6c7e92ddd66c05979 (patch) | |
tree | d49536f01f2148eb381101f7883abaffedf9fff7 /libs/input/PointerController.h | |
parent | ff814adfdda376ceeeff5765cd50195b88e567ad (diff) |
Introduce animated pointer icon for STYLE_WAIT.
Change-Id: I893f8276e09351db6187c553f349008794b95690
Diffstat (limited to 'libs/input/PointerController.h')
-rw-r--r-- | libs/input/PointerController.h | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/libs/input/PointerController.h b/libs/input/PointerController.h index 6d840db0ec5c..b6c01d2903a9 100644 --- a/libs/input/PointerController.h +++ b/libs/input/PointerController.h @@ -20,6 +20,7 @@ #include "SpriteController.h" #include <map> +#include <vector> #include <ui/DisplayInfo.h> #include <input/Input.h> @@ -30,8 +31,6 @@ #include <utils/String8.h> #include <gui/DisplayEventReceiver.h> -#include <SkBitmap.h> - namespace android { /* @@ -43,6 +42,11 @@ struct PointerResources { SpriteIcon spotAnchor; }; +struct PointerAnimation { + std::vector<SpriteIcon> animationFrames; + nsecs_t durationPerFrame; +}; + /* * Pointer controller policy interface. * @@ -59,7 +63,8 @@ protected: public: virtual void loadPointerResources(PointerResources* outResources) = 0; - virtual void loadAdditionalMouseResources(std::map<int32_t, SpriteIcon>* outResources) = 0; + virtual void loadAdditionalMouseResources(std::map<int32_t, SpriteIcon>* outResources, + std::map<int32_t, PointerAnimation>* outAnimationResources) = 0; virtual int32_t getDefaultPointerIconId() = 0; }; @@ -98,7 +103,7 @@ public: const uint32_t* spotIdToIndex, BitSet32 spotIdBits); virtual void clearSpots(); - void updatePointerShape(int iconId); + void updatePointerShape(int32_t iconId); void setDisplayViewport(int32_t width, int32_t height, int32_t orientation); void setPointerIcon(const SpriteIcon& icon); void setInactivityTimeout(InactivityTimeout inactivityTimeout); @@ -145,6 +150,9 @@ private: bool animationPending; nsecs_t animationTime; + size_t animationFrameIndex; + nsecs_t lastFrameUpdatedTime; + int32_t displayWidth; int32_t displayHeight; int32_t displayOrientation; @@ -162,7 +170,8 @@ private: SpriteIcon pointerIcon; bool pointerIconChanged; - std::map<int, SpriteIcon> additionalMouseResources; + std::map<int32_t, SpriteIcon> additionalMouseResources; + std::map<int32_t, PointerAnimation> animationResources; int32_t requestedPointerShape; @@ -178,6 +187,8 @@ private: void handleMessage(const Message& message); int handleEvent(int fd, int events, void* data); void doAnimate(nsecs_t timestamp); + bool doFadingAnimationLocked(nsecs_t timestamp); + bool doBitmapAnimationLocked(nsecs_t timestamp); void doInactivityTimeout(); void startAnimationLocked(); |