FontEffect.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef ROCKETCOREFONTEFFECT_H
00029 #define ROCKETCOREFONTEFFECT_H
00030
00031 #include <Rocket/Core/FontGlyph.h>
00032
00033 namespace Rocket {
00034 namespace Core {
00035
00036 class FontEffectInstancer;
00037
00042 class FontEffect : public ReferenceCountable
00043 {
00044 public:
00045 FontEffect();
00046 virtual ~FontEffect();
00047
00050 const String& GetName() const;
00051
00055 virtual bool HasUniqueTexture() const;
00056
00062 virtual bool GetGlyphMetrics(Vector2i& origin, Vector2i& dimensions, const FontGlyph& glyph) const;
00063
00070 virtual void GenerateGlyphTexture(byte* destination_data, const Vector2i& destination_dimensions, int destination_stride, const FontGlyph& glyph) const;
00071
00074 void SetColour(const Colourb& colour);
00077 const Colourb& GetColour() const;
00078
00082 void SetZIndex(float z_index);
00085 float GetZIndex() const;
00086
00089 void SetSpecificity(int specificity);
00093 int GetSpecificity() const;
00094
00097 const String& GetGenerationKey() const;
00098
00099 protected:
00101 virtual void OnReferenceDeactivate();
00102
00103 private:
00104 FontEffectInstancer* instancer;
00105
00106
00107 String name;
00108
00109
00110 Colourb colour;
00111
00112
00113 float z_index;
00114
00115 int specificity;
00116
00117
00118 String generation_key;
00119
00120 friend class Factory;
00121 };
00122
00123 typedef std::vector< FontEffect* > FontEffectList;
00124 typedef std::map< String, FontEffect* > FontEffectMap;
00125
00126 }
00127 }
00128
00129 #endif