am df03550a: Fix Layout initialization in the skipCache path
* commit 'df03550a40706a55ca1bfcb67da62765194cf98f': Fix Layout initialization in the skipCache path
This commit is contained in:
commit
55f6f0cd86
@ -64,6 +64,14 @@ class LayoutContext;
|
||||
// extend through the lifetime of the Layout object.
|
||||
class Layout {
|
||||
public:
|
||||
|
||||
Layout() : mGlyphs(), mAdvances(), mCollection(0), mFaces(), mAdvance(0), mBounds() {
|
||||
mBounds.setEmpty();
|
||||
}
|
||||
|
||||
// Clears layout, ready to be used again
|
||||
void reset();
|
||||
|
||||
void dump() const;
|
||||
void setFontCollection(const FontCollection* collection);
|
||||
|
||||
@ -72,8 +80,7 @@ public:
|
||||
|
||||
void draw(Bitmap*, int x0, int y0, float size) const;
|
||||
|
||||
// This must be called before any invocations.
|
||||
// TODO: probably have a factory instead
|
||||
// Deprecated. Nont needed. Remove when callers are removed.
|
||||
static void init();
|
||||
|
||||
// public accessors
|
||||
|
@ -267,10 +267,18 @@ void MinikinRect::join(const MinikinRect& r) {
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: the actual initialization is deferred, maybe make this explicit
|
||||
// Deprecated. Remove when callers are removed.
|
||||
void Layout::init() {
|
||||
}
|
||||
|
||||
void Layout::reset() {
|
||||
mGlyphs.clear();
|
||||
mFaces.clear();
|
||||
mBounds.setEmpty();
|
||||
mAdvances.clear();
|
||||
mAdvance = 0;
|
||||
}
|
||||
|
||||
void Layout::setFontCollection(const FontCollection* collection) {
|
||||
mCollection = collection;
|
||||
}
|
||||
@ -513,12 +521,9 @@ void Layout::doLayout(const uint16_t* buf, size_t start, size_t count, size_t bu
|
||||
bool isRtl = (bidiFlags & kDirection_Mask) != 0;
|
||||
bool doSingleRun = true;
|
||||
|
||||
mGlyphs.clear();
|
||||
mFaces.clear();
|
||||
mBounds.setEmpty();
|
||||
mAdvances.clear();
|
||||
reset();
|
||||
mAdvances.resize(count, 0);
|
||||
mAdvance = 0;
|
||||
|
||||
if (!(bidiFlags == kBidi_Force_LTR || bidiFlags == kBidi_Force_RTL)) {
|
||||
UBiDi* bidi = ubidi_open();
|
||||
if (bidi) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user