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
00040 #ifndef BIGLYPHBUFFER_H
00041 #define BIGLYPHBUFFER_H
00042
00043 #include "FloatSize.h"
00044
00045 using WebCore::FloatSize;
00046
00047 namespace BAL {
00048
00052 typedef unsigned short Glyph;
00053 class BTFontData;
00054 typedef unsigned short GlyphBufferGlyph;
00055 typedef FloatSize GlyphBufferAdvance;
00056
00067 class BIGlyphBuffer {
00068 public:
00074 virtual bool isEmpty() const = 0;
00080 virtual int size() const = 0;
00081
00085 virtual void clear() = 0;
00086
00087 virtual GlyphBufferGlyph* glyphs(int from) = 0;
00088 virtual const GlyphBufferGlyph* glyphs(int from) const = 0;
00089
00090 virtual GlyphBufferAdvance* advances(int from) = 0;
00091 virtual const GlyphBufferAdvance* advances(int from) const = 0;
00092
00098 virtual const BTFontData* fontDataAt(int index) const = 0;
00099
00100 virtual FloatSize offsetAt(int index) const = 0;
00101
00109 virtual void swap(int index1, int index2) = 0;
00110
00117 virtual Glyph glyphAt(int index) const = 0;
00118
00125 virtual float advanceAt(int index) const = 0;
00126
00134 virtual void add(Glyph glyph, const BTFontData* font, float width, const FloatSize* offset = 0) = 0;
00135
00136 virtual ~BIGlyphBuffer() {};
00137 };
00138
00139 #define IMPLEMENT_BIGLYPHBUFFER \
00140 public: \
00141 virtual bool isEmpty() const;\
00142 virtual int size() const;\
00143 virtual void clear();\
00144 virtual GlyphBufferGlyph* glyphs(int from); \
00145 virtual const GlyphBufferGlyph* glyphs(int from) const; \
00146 virtual GlyphBufferAdvance* advances(int from); \
00147 virtual const GlyphBufferAdvance* advances(int from) const; \
00148 virtual const BTFontData* fontDataAt(int index) const;\
00149 virtual FloatSize offsetAt(int index) const; \
00150 virtual void swap(int index1, int index2);\
00151 virtual Glyph glyphAt(int index) const;\
00152 virtual float advanceAt(int index) const;\
00153 virtual void add(Glyph, const BTFontData*, float width);
00154
00155 }
00156 #endif // BIGLYPHBUFFER_H
00157
00158