/usr/include/OpenLayer/Effects.hpp is in libopenlayer-dev 2.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 | #ifndef OL_EFFECTS_HPP
#define OL_EFFECTS_HPP
#include <list>
#include "Bitmap.hpp"
#include "Declspec.hpp"
namespace ol {
class Effect;
class OL_LIB_DECLSPEC EffectSystem {
public:
// Enables the specified effect //
static void Enable( Effect *effect );
// Disables the specified effect //
static void Disable( Effect *effect );
// Disables all effects //
static void DisableAll();
// Applies all enabled effects to the active canvas //
static void Apply();
private:
static std::list< Effect *> enabledEffects;
};
// The parent class of all effects //
class OL_LIB_DECLSPEC Effect {
public:
Effect( float duration ) :
duration( duration ) {}
virtual ~Effect(){}
// Applies the effect to the active canvas //
virtual void Apply() = 0;
// Stores the contents of the screen to a Bitmap buffer //
static void TakeScreenDump();
// Returns the Bitmap holding the dump of the screen //
static Bitmap &GetScreenDump();
// Sets the Bitmap to be used to store the screen dump //
// This function will disable the TakeScreenDump function //
static void SetScreenDump( Bitmap &bmp );
// Initializes the screen dump //
// You don't have to call this function in order to use the effects, //
// however it's recommended to call this function during the loading time //
// so that initializing the effects won't suddenly slow down the program //
// when it runs in realtime //
static void InitScreenDump();
private:
static Bitmap *screenDump;
float duration;
};
class OL_LIB_DECLSPEC MotionBlur : public Effect {
public:
// Create a new motion blur with the given strength //
MotionBlur( float duration, float strength )
: Effect( duration ), strength( strength ) {}
virtual ~MotionBlur(){}
virtual void Apply();
private:
float strength;
};
class OL_LIB_DECLSPEC RadialBlur : public Effect {
public:
// Create a new radial blur with the given strength //
RadialBlur( float duration, float strength )
: Effect( duration ), strength( strength ) {}
virtual ~RadialBlur(){}
virtual void Apply();
private:
float strength;
};
class OL_LIB_DECLSPEC SwirlBlur : public Effect {
public:
// Create a new swirl blur with the given strength, accuracy and angle spread //
SwirlBlur( float duration, float strength, float accuracy, float spread )
: Effect( duration ), strength( strength ), accuracy( accuracy ), spread( spread ) {}
virtual ~SwirlBlur(){}
virtual void Apply();
private:
float strength, accuracy, spread;
};
};
#endif // OL_EFFECTS_HPP
|