| Index: third_party/WebKit/Source/platform/fonts/shaping/ShapeResult.h
|
| diff --git a/third_party/WebKit/Source/platform/fonts/shaping/ShapeResult.h b/third_party/WebKit/Source/platform/fonts/shaping/ShapeResult.h
|
| index 5146cd18d820f67925fcb643553aff003518f5e4..ffd7cf3b9fce773555a37f0d65a8bd1d56196ec2 100644
|
| --- a/third_party/WebKit/Source/platform/fonts/shaping/ShapeResult.h
|
| +++ b/third_party/WebKit/Source/platform/fonts/shaping/ShapeResult.h
|
| @@ -31,21 +31,20 @@
|
| #ifndef ShapeResult_h
|
| #define ShapeResult_h
|
|
|
| -#include "platform/geometry/FloatPoint.h"
|
| +#include "platform/PlatformExport.h"
|
| #include "platform/geometry/FloatRect.h"
|
| -#include "platform/text/TextRun.h"
|
| +#include "platform/text/TextDirection.h"
|
| #include "wtf/HashSet.h"
|
| #include "wtf/Noncopyable.h"
|
| #include "wtf/OwnPtr.h"
|
| +#include "wtf/RefCounted.h"
|
| #include "wtf/Vector.h"
|
|
|
| namespace blink {
|
|
|
| class Font;
|
| -class GlyphBuffer;
|
| -class ShapeResultBuffer;
|
| class SimpleFontData;
|
| -class HarfBuzzShaper;
|
| +class TextRun;
|
| struct GlyphData;
|
|
|
| class PLATFORM_EXPORT ShapeResult : public RefCounted<ShapeResult> {
|
| @@ -60,27 +59,17 @@ public:
|
| const TextRun&, float positionOffset, unsigned count);
|
| ~ShapeResult();
|
|
|
| - float width() { return m_width; }
|
| - FloatRect bounds() { return m_glyphBoundingBox; }
|
| + float width() const { return m_width; }
|
| + const FloatRect& bounds() const { return m_glyphBoundingBox; }
|
| unsigned numCharacters() const { return m_numCharacters; }
|
| void fallbackFonts(HashSet<const SimpleFontData*>*) const;
|
| bool hasVerticalOffsets() const { return m_hasVerticalOffsets; }
|
|
|
| - // TODO(fmalita): relocate these to ShapeResultBuffer
|
| - static int offsetForPosition(const ShapeResultBuffer&,
|
| - const TextRun&, float targetX);
|
| - static float fillGlyphBuffer(const ShapeResultBuffer&,
|
| - GlyphBuffer*, const TextRun&, unsigned from, unsigned to);
|
| - static float fillGlyphBufferForTextEmphasis(const ShapeResultBuffer&,
|
| - GlyphBuffer*, const TextRun&, const GlyphData* emphasisData,
|
| - unsigned from, unsigned to);
|
| - static FloatRect selectionRect(const ShapeResultBuffer&,
|
| - TextDirection, float totalWidth, const FloatPoint&, int height,
|
| - unsigned from, unsigned to);
|
| -
|
| // For memory reporting.
|
| size_t byteSize();
|
|
|
| + int offsetForPosition(float targetX) const;
|
| +
|
| protected:
|
| struct RunInfo;
|
| #if COMPILER(MSVC)
|
| @@ -89,19 +78,6 @@ protected:
|
|
|
| ShapeResult(const Font*, unsigned numCharacters, TextDirection);
|
|
|
| - // TODO(fmalita): relocate these to ShapeResultBuffer
|
| - int offsetForPosition(float targetX);
|
| - template<TextDirection>
|
| - static float fillGlyphBufferForRun(GlyphBuffer*, const RunInfo*,
|
| - float initialAdvance, unsigned from, unsigned to, unsigned runOffset);
|
| -
|
| - static float fillGlyphBufferForTextEmphasisRun(GlyphBuffer*, const RunInfo*,
|
| - const TextRun&, const GlyphData*, float initialAdvance,
|
| - unsigned from, unsigned to, unsigned runOffset);
|
| -
|
| - static float fillFastHorizontalGlyphBuffer(const ShapeResultBuffer&,
|
| - GlyphBuffer*, TextDirection);
|
| -
|
| float m_width;
|
| FloatRect m_glyphBoundingBox;
|
| Vector<OwnPtr<RunInfo>> m_runs;
|
| @@ -119,30 +95,7 @@ protected:
|
| unsigned m_hasVerticalOffsets : 1;
|
|
|
| friend class HarfBuzzShaper;
|
| -};
|
| -
|
| -class ShapeResultBuffer {
|
| - WTF_MAKE_NONCOPYABLE(ShapeResultBuffer);
|
| - STACK_ALLOCATED();
|
| -public:
|
| - ShapeResultBuffer()
|
| - : m_hasVerticalOffsets(false) { }
|
| -
|
| - void appendResult(PassRefPtr<ShapeResult> result)
|
| - {
|
| - m_hasVerticalOffsets |= result->hasVerticalOffsets();
|
| - m_results.append(result);
|
| - }
|
| -
|
| - bool hasVerticalOffsets() const { return m_hasVerticalOffsets; }
|
| -
|
| - // Empirically, cases where we get more than 50 ShapeResults are extremely rare.
|
| - typedef Vector<RefPtr<ShapeResult>, 64> ShapeResultVector;
|
| - const ShapeResultVector& results() const { return m_results; }
|
| -
|
| -private:
|
| - ShapeResultVector m_results;
|
| - bool m_hasVerticalOffsets;
|
| + friend class ShapeResultBuffer;
|
| };
|
|
|
| } // namespace blink
|
|
|