OpenMW
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
screenfader.hpp
Go to the documentation of this file.
1 #ifndef OPENMW_MWGUI_SCREENFADER_H
2 #define OPENMW_MWGUI_SCREENFADER_H
3 
4 #include <deque>
5 
6 #include "windowbase.hpp"
7 
8 namespace MWGui
9 {
10  class ScreenFader;
11 
12  class FadeOp
13  {
14  public:
15  typedef std::shared_ptr<FadeOp> Ptr;
16 
17  FadeOp(ScreenFader * fader, float time, float targetAlpha, float delay);
18 
19  bool isRunning();
20 
21  void start();
22  void update(float dt);
23  void finish();
24 
25  private:
28  float mTargetTime;
29  float mTargetAlpha;
30  float mStartAlpha;
31  float mDelay;
32  bool mRunning;
33  };
34 
35  class ScreenFader : public WindowBase
36  {
37  public:
38  ScreenFader(const std::string & texturePath, const std::string& layout = "openmw_screen_fader.layout", const MyGUI::FloatCoord& texCoordOverride = MyGUI::FloatCoord(0,0,1,1));
39  ~ScreenFader();
40 
41  void onFrameStart(float dt);
42 
43  void fadeIn(const float time, float delay=0);
44  void fadeOut(const float time, float delay=0);
45  void fadeTo(const int percent, const float time, float delay=0);
46 
47  void clear();
48 
49  void setFactor (float factor);
50  void setRepeat(bool repeat);
51 
52  void queue(float time, float targetAlpha, float delay);
53  bool isEmpty();
54  void clearQueue();
55 
56  void notifyAlphaChanged(float alpha);
58  float getCurrentAlpha();
59 
60  private:
61  void applyAlpha();
62 
64  float mFactor;
65 
66  bool mRepeat; // repeat queued operations without removing them
67  std::deque<FadeOp::Ptr> mQueue;
68  };
69 }
70 
71 #endif
float mDelay
Definition: screenfader.hpp:31
~ScreenFader()
Definition: screenfader.cpp:100
ScreenFader(const std::string &texturePath, const std::string &layout="openmw_screen_fader.layout", const MyGUI::FloatCoord &texCoordOverride=MyGUI::FloatCoord(0, 0, 1, 1))
Definition: screenfader.cpp:78
Definition: screenfader.hpp:12
void notifyOperationFinished()
Definition: screenfader.cpp:198
float mStartAlpha
Definition: screenfader.hpp:30
FadeOp(ScreenFader *fader, float time, float targetAlpha, float delay)
Definition: screenfader.cpp:10
float getCurrentAlpha()
Definition: screenfader.cpp:207
void setRepeat(bool repeat)
Definition: screenfader.cpp:155
float mRemainingTime
Definition: screenfader.hpp:27
void clear()
Clear any state specific to the running game.
Definition: screenfader.cpp:143
void start()
Definition: screenfader.cpp:26
void notifyAlphaChanged(float alpha)
Definition: screenfader.cpp:185
float mTargetAlpha
Definition: screenfader.hpp:29
std::shared_ptr< FadeOp > Ptr
Definition: screenfader.hpp:15
void queue(float time, float targetAlpha, float delay)
Definition: screenfader.cpp:160
void finish()
Definition: screenfader.cpp:72
void clearQueue()
Definition: screenfader.cpp:180
bool mRepeat
Definition: screenfader.hpp:66
void fadeIn(const float time, float delay=0)
Definition: screenfader.cpp:128
void onFrameStart(float dt)
Definition: screenfader.cpp:112
void fadeOut(const float time, float delay=0)
Definition: screenfader.cpp:133
void update(float dt)
Definition: screenfader.cpp:36
float mTargetTime
Definition: screenfader.hpp:28
Definition: windowbase.hpp:21
float mFactor
Definition: screenfader.hpp:64
bool mRunning
Definition: screenfader.hpp:32
ScreenFader * mFader
Definition: screenfader.hpp:26
void setFactor(float factor)
Definition: screenfader.cpp:149
Definition: screenfader.hpp:35
float mCurrentAlpha
Definition: screenfader.hpp:63
void applyAlpha()
Definition: screenfader.cpp:122
bool isRunning()
Definition: screenfader.cpp:21
void fadeTo(const int percent, const float time, float delay=0)
Definition: screenfader.cpp:138
bool isEmpty()
Definition: screenfader.cpp:175
std::deque< FadeOp::Ptr > mQueue
Definition: screenfader.hpp:67