remove unused TextBufferDirection enum
BUG=skia:
Review URL: https://codereview.chromium.org/621403002
diff --git a/include/core/SkPaint.h b/include/core/SkPaint.h
index ef37577..66e217a 100644
--- a/include/core/SkPaint.h
+++ b/include/core/SkPaint.h
@@ -1,5 +1,3 @@
-
-
/*
* Copyright 2006 The Android Open Source Project
*
@@ -7,7 +5,6 @@
* found in the LICENSE file.
*/
-
#ifndef SkPaint_DEFINED
#define SkPaint_DEFINED
@@ -878,19 +875,6 @@
return this->measureText(text, length, NULL);
}
- /** Specify the direction the text buffer should be processed in breakText()
- */
- enum TextBufferDirection {
- /** When measuring text for breakText(), begin at the start of the text
- buffer and proceed forward through the data. This is the default.
- */
- kForward_TextBufferDirection,
- /** When measuring text for breakText(), begin at the end of the text
- buffer and proceed backwards through the data.
- */
- kBackward_TextBufferDirection
- };
-
/** Return the number of bytes of text that were measured. If
* isVerticalText() is true, then the vertical advances are used for
* the measurement.
@@ -901,15 +885,11 @@
* widths are <= maxWidth are measured.
* @param measuredWidth Optional. If non-null, this returns the actual
* width of the measured text.
- * @param tbd Optional. The direction the text buffer should be
- * traversed during measuring.
* @return The number of bytes of text that were measured. Will be
* <= length.
*/
size_t breakText(const void* text, size_t length, SkScalar maxWidth,
- SkScalar* measuredWidth = NULL,
- TextBufferDirection tbd = kForward_TextBufferDirection)
- const;
+ SkScalar* measuredWidth = NULL) const;
/** Return the advances for the text. These will be vertical advances if
* isVerticalText() returns true.
@@ -1059,8 +1039,7 @@
};
SkDrawCacheProc getDrawCacheProc() const;
- SkMeasureCacheProc getMeasureCacheProc(TextBufferDirection dir,
- bool needFullMetrics) const;
+ SkMeasureCacheProc getMeasureCacheProc(bool needFullMetrics) const;
SkScalar measure_text(SkGlyphCache*, const char* text, size_t length,
int* count, SkRect* bounds) const;
diff --git a/samplecode/SampleText.cpp b/samplecode/SampleText.cpp
index 17456b2..7f872a9 100644
--- a/samplecode/SampleText.cpp
+++ b/samplecode/SampleText.cpp
@@ -37,8 +37,7 @@
SkScalar nn = 0;
for (SkScalar w = 0; w <= width; w += SK_Scalar1) {
SkScalar m;
- size_t n = paint.breakText(text, length, w, &m,
- SkPaint::kBackward_TextBufferDirection);
+ size_t n = paint.breakText(text, length, w, &m);
SkASSERT(n <= length);
SkASSERT(m <= width);
diff --git a/src/core/SkPaint.cpp b/src/core/SkPaint.cpp
index 67b630e..7ce7fc9 100644
--- a/src/core/SkPaint.cpp
+++ b/src/core/SkPaint.cpp
@@ -608,14 +608,6 @@
return cache->getUnicharMetrics(SkUTF8_NextUnichar(text));
}
-static const SkGlyph& sk_getMetrics_utf8_prev(SkGlyphCache* cache,
- const char** text) {
- SkASSERT(cache != NULL);
- SkASSERT(text != NULL);
-
- return cache->getUnicharMetrics(SkUTF8_PrevUnichar(text));
-}
-
static const SkGlyph& sk_getMetrics_utf16_next(SkGlyphCache* cache,
const char** text) {
SkASSERT(cache != NULL);
@@ -624,14 +616,6 @@
return cache->getUnicharMetrics(SkUTF16_NextUnichar((const uint16_t**)text));
}
-static const SkGlyph& sk_getMetrics_utf16_prev(SkGlyphCache* cache,
- const char** text) {
- SkASSERT(cache != NULL);
- SkASSERT(text != NULL);
-
- return cache->getUnicharMetrics(SkUTF16_PrevUnichar((const uint16_t**)text));
-}
-
static const SkGlyph& sk_getMetrics_utf32_next(SkGlyphCache* cache,
const char** text) {
SkASSERT(cache != NULL);
@@ -643,17 +627,6 @@
return cache->getUnicharMetrics(uni);
}
-static const SkGlyph& sk_getMetrics_utf32_prev(SkGlyphCache* cache,
- const char** text) {
- SkASSERT(cache != NULL);
- SkASSERT(text != NULL);
-
- const int32_t* ptr = *(const int32_t**)text;
- SkUnichar uni = *--ptr;
- *text = (const char*)ptr;
- return cache->getUnicharMetrics(uni);
-}
-
static const SkGlyph& sk_getMetrics_glyph_next(SkGlyphCache* cache,
const char** text) {
SkASSERT(cache != NULL);
@@ -666,18 +639,6 @@
return cache->getGlyphIDMetrics(glyphID);
}
-static const SkGlyph& sk_getMetrics_glyph_prev(SkGlyphCache* cache,
- const char** text) {
- SkASSERT(cache != NULL);
- SkASSERT(text != NULL);
-
- const uint16_t* ptr = *(const uint16_t**)text;
- ptr -= 1;
- unsigned glyphID = *ptr;
- *text = (const char*)ptr;
- return cache->getGlyphIDMetrics(glyphID);
-}
-
static const SkGlyph& sk_getAdvance_utf8_next(SkGlyphCache* cache,
const char** text) {
SkASSERT(cache != NULL);
@@ -686,14 +647,6 @@
return cache->getUnicharAdvance(SkUTF8_NextUnichar(text));
}
-static const SkGlyph& sk_getAdvance_utf8_prev(SkGlyphCache* cache,
- const char** text) {
- SkASSERT(cache != NULL);
- SkASSERT(text != NULL);
-
- return cache->getUnicharAdvance(SkUTF8_PrevUnichar(text));
-}
-
static const SkGlyph& sk_getAdvance_utf16_next(SkGlyphCache* cache,
const char** text) {
SkASSERT(cache != NULL);
@@ -702,14 +655,6 @@
return cache->getUnicharAdvance(SkUTF16_NextUnichar((const uint16_t**)text));
}
-static const SkGlyph& sk_getAdvance_utf16_prev(SkGlyphCache* cache,
- const char** text) {
- SkASSERT(cache != NULL);
- SkASSERT(text != NULL);
-
- return cache->getUnicharAdvance(SkUTF16_PrevUnichar((const uint16_t**)text));
-}
-
static const SkGlyph& sk_getAdvance_utf32_next(SkGlyphCache* cache,
const char** text) {
SkASSERT(cache != NULL);
@@ -721,17 +666,6 @@
return cache->getUnicharAdvance(uni);
}
-static const SkGlyph& sk_getAdvance_utf32_prev(SkGlyphCache* cache,
- const char** text) {
- SkASSERT(cache != NULL);
- SkASSERT(text != NULL);
-
- const int32_t* ptr = *(const int32_t**)text;
- SkUnichar uni = *--ptr;
- *text = (const char*)ptr;
- return cache->getUnicharAdvance(uni);
-}
-
static const SkGlyph& sk_getAdvance_glyph_next(SkGlyphCache* cache,
const char** text) {
SkASSERT(cache != NULL);
@@ -744,49 +678,23 @@
return cache->getGlyphIDAdvance(glyphID);
}
-static const SkGlyph& sk_getAdvance_glyph_prev(SkGlyphCache* cache,
- const char** text) {
- SkASSERT(cache != NULL);
- SkASSERT(text != NULL);
-
- const uint16_t* ptr = *(const uint16_t**)text;
- ptr -= 1;
- unsigned glyphID = *ptr;
- *text = (const char*)ptr;
- return cache->getGlyphIDAdvance(glyphID);
-}
-
-SkMeasureCacheProc SkPaint::getMeasureCacheProc(TextBufferDirection tbd,
- bool needFullMetrics) const {
+SkMeasureCacheProc SkPaint::getMeasureCacheProc(bool needFullMetrics) const {
static const SkMeasureCacheProc gMeasureCacheProcs[] = {
sk_getMetrics_utf8_next,
sk_getMetrics_utf16_next,
sk_getMetrics_utf32_next,
sk_getMetrics_glyph_next,
- sk_getMetrics_utf8_prev,
- sk_getMetrics_utf16_prev,
- sk_getMetrics_utf32_prev,
- sk_getMetrics_glyph_prev,
-
sk_getAdvance_utf8_next,
sk_getAdvance_utf16_next,
sk_getAdvance_utf32_next,
sk_getAdvance_glyph_next,
-
- sk_getAdvance_utf8_prev,
- sk_getAdvance_utf16_prev,
- sk_getAdvance_utf32_prev,
- sk_getAdvance_glyph_prev
};
unsigned index = this->getTextEncoding();
- if (kBackward_TextBufferDirection == tbd) {
- index += 4;
- }
if (!needFullMetrics && !this->isDevKernText()) {
- index += 8;
+ index += 4;
}
SkASSERT(index < SK_ARRAY_COUNT(gMeasureCacheProcs));
@@ -996,9 +904,7 @@
return 0;
}
- SkMeasureCacheProc glyphCacheProc;
- glyphCacheProc = this->getMeasureCacheProc(kForward_TextBufferDirection,
- bounds);
+ SkMeasureCacheProc glyphCacheProc = this->getMeasureCacheProc(NULL != bounds);
int xyIndex;
JoinBoundsProc joinBoundsProc;
@@ -1091,33 +997,8 @@
return width;
}
-typedef bool (*SkTextBufferPred)(const char* text, const char* stop);
-
-static bool forward_textBufferPred(const char* text, const char* stop) {
- return text < stop;
-}
-
-static bool backward_textBufferPred(const char* text, const char* stop) {
- return text > stop;
-}
-
-static SkTextBufferPred chooseTextBufferPred(SkPaint::TextBufferDirection tbd,
- const char** text, size_t length,
- const char** stop) {
- if (SkPaint::kForward_TextBufferDirection == tbd) {
- *stop = *text + length;
- return forward_textBufferPred;
- } else {
- // text should point to the end of the buffer, and stop to the beginning
- *stop = *text;
- *text += length;
- return backward_textBufferPred;
- }
-}
-
size_t SkPaint::breakText(const void* textD, size_t length, SkScalar maxWidth,
- SkScalar* measuredWidth,
- TextBufferDirection tbd) const {
+ SkScalar* measuredWidth) const {
if (0 == length || 0 >= maxWidth) {
if (measuredWidth) {
*measuredWidth = 0;
@@ -1134,6 +1015,7 @@
SkASSERT(textD != NULL);
const char* text = (const char*)textD;
+ const char* stop = text + length;
SkCanonicalizePaint canon(*this);
const SkPaint& paint = canon.getPaint();
@@ -1147,9 +1029,7 @@
SkAutoGlyphCache autoCache(paint, NULL, NULL);
SkGlyphCache* cache = autoCache.getCache();
- SkMeasureCacheProc glyphCacheProc = paint.getMeasureCacheProc(tbd, false);
- const char* stop;
- SkTextBufferPred pred = chooseTextBufferPred(tbd, &text, length, &stop);
+ SkMeasureCacheProc glyphCacheProc = paint.getMeasureCacheProc(false);
const int xyIndex = paint.isVerticalText() ? 1 : 0;
// use 64bits for our accumulator, to avoid overflowing 16.16
Sk48Dot16 max = SkScalarToFixed(maxWidth);
@@ -1159,7 +1039,7 @@
if (this->isDevKernText()) {
int rsb = 0;
- while (pred(text, stop)) {
+ while (text < stop) {
const char* curr = text;
const SkGlyph& g = glyphCacheProc(cache, &text);
SkFixed x = SkAutoKern_AdjustF(rsb, g.fLsbDelta) + advance(g, xyIndex);
@@ -1171,7 +1051,7 @@
rsb = g.fRsbDelta;
}
} else {
- while (pred(text, stop)) {
+ while (text < stop) {
const char* curr = text;
SkFixed x = advance(glyphCacheProc(cache, &text), xyIndex);
if ((width += x) > max) {
@@ -1191,8 +1071,7 @@
}
// return the number of bytes measured
- return (kForward_TextBufferDirection == tbd) ?
- text - stop + length : stop - text + length;
+ return text - stop + length;
}
///////////////////////////////////////////////////////////////////////////////
@@ -1269,8 +1148,7 @@
SkAutoGlyphCache autoCache(paint, NULL, NULL);
SkGlyphCache* cache = autoCache.getCache();
SkMeasureCacheProc glyphCacheProc;
- glyphCacheProc = paint.getMeasureCacheProc(kForward_TextBufferDirection,
- bounds);
+ glyphCacheProc = paint.getMeasureCacheProc(NULL != bounds);
const char* text = (const char*)textData;
const char* stop = text + byteLength;
@@ -2471,8 +2349,7 @@
const SkPaint& paint,
bool applyStrokeAndPathEffects)
: fPaint(paint) {
- fGlyphCacheProc = paint.getMeasureCacheProc(SkPaint::kForward_TextBufferDirection,
- true);
+ fGlyphCacheProc = paint.getMeasureCacheProc(true);
fPaint.setLinearText(true);
fPaint.setMaskFilter(NULL); // don't want this affecting our path-cache lookup