diff -r 000000000000 -r 6474c204b198 gfx/skia/trunk/src/text/SkTextLayout.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gfx/skia/trunk/src/text/SkTextLayout.cpp Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,78 @@ + +/* + * Copyright 2011 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ +#include "SkTextLayout.h" + +SkTextStyle::SkTextStyle() { + fPaint.setAntiAlias(true); +} + +SkTextStyle::SkTextStyle(const SkTextStyle& src) : fPaint(src.fPaint) {} + +SkTextStyle::SkTextStyle(const SkPaint& paint) : fPaint(paint) {} + +SkTextStyle::~SkTextStyle() {} + +/////////////////////////////////////////////////////////////////////////////// + +SkTextLayout::SkTextLayout() { + fBounds.setEmpty(); + fDefaultStyle = new SkTextStyle; +} + +SkTextLayout::~SkTextLayout() { + fDefaultStyle->unref(); + fLines.deleteAll(); +} + +void SkTextLayout::setText(const char text[], size_t length) { + fText.setCount(length); + memcpy(fText.begin(), text, length); +} + +void SkTextLayout::setBounds(const SkRect& bounds) { + fBounds = bounds; + // if width changed, inval cache +} + +SkTextStyle* SkTextLayout::setDefaultStyle(SkTextStyle* style) { + SkRefCnt_SafeAssign(fDefaultStyle, style); + return style; +} + +/////////////////////////////////////////////////////////////////////////////// + +struct SkTextLayout::GlyphRun { + GlyphRun(); + ~GlyphRun(); + + SkPoint* fLocs; + uint16_t* fGlyphIDs; + int fCount; +}; + +SkTextLayout::GlyphRun::GlyphRun() : fLocs(NULL), fGlyphIDs(NULL), fCount(0) {} + +SkTextLayout::GlyphRun::~GlyphRun() { + delete[] fLocs; + delete[] fGlyphIDs; +} + +struct SkTextLayout::Line { + Line() {} + ~Line(); + + SkScalar fBaselineY; + SkTDArray fRuns; +}; + +SkTextLayout::Line::~Line() { + fRuns.deleteAll(); +} + +void SkTextLayout::draw(SkCanvas* canvas) { +}