summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaph Levien <raph@google.com>2014-06-04 15:25:30 -0700
committerRaph Levien <raph@google.com>2014-06-05 09:26:43 -0700
commit3164d1a77eecf3185347a44342131f4275de824f (patch)
treed63c5539ffbe4a8f9e22cdaf8829482c57d48829
parent893399732b64203133c22ad3c1f3535e46bf35a7 (diff)
downloadandroid_frameworks_minikin-3164d1a77eecf3185347a44342131f4275de824f.tar.gz
android_frameworks_minikin-3164d1a77eecf3185347a44342131f4275de824f.tar.bz2
android_frameworks_minikin-3164d1a77eecf3185347a44342131f4275de824f.zip
Make paint flags consistently uint32_t
Change internal plumbing of paint flags (including CssParse) to uint32_t consistently, to match the type used in the client. This will probably prevent compiler warnings. Also renames "float" to "double" to avoid confusion about precision. Change-Id: I80374712c4067ca9e7711cc2d4ec33c440ab9c7c
-rw-r--r--include/minikin/CssParse.h17
-rw-r--r--include/minikin/MinikinFont.h2
-rw-r--r--libs/minikin/CssParse.cpp12
-rw-r--r--libs/minikin/Layout.cpp8
4 files changed, 20 insertions, 19 deletions
diff --git a/include/minikin/CssParse.h b/include/minikin/CssParse.h
index ae2aac6..ea28b81 100644
--- a/include/minikin/CssParse.h
+++ b/include/minikin/CssParse.h
@@ -54,7 +54,7 @@ class CssValue {
public:
enum Type {
UNKNOWN,
- FLOAT,
+ DOUBLE,
STRING
};
enum Units {
@@ -65,15 +65,16 @@ public:
};
CssValue() : mType(UNKNOWN) { }
explicit CssValue(double v) :
- mType(FLOAT), floatValue(v), mUnits(SCALAR) { }
+ mType(DOUBLE), doubleValue(v), mUnits(SCALAR) { }
Type getType() const { return mType; }
- double getFloatValue() const { return floatValue; }
- int32_t getIntValue() const { return floatValue; }
+ double getDoubleValue() const { return doubleValue; }
+ int32_t getIntValue() const { return doubleValue; }
+ uint32_t getUintValue() const { return doubleValue; }
std::string getStringValue() const { return stringValue; }
std::string toString(CssTag tag) const;
- void setFloatValue(double v) {
- mType = FLOAT;
- floatValue = v;
+ void setDoubleValue(double v) {
+ mType = DOUBLE;
+ doubleValue = v;
}
void setStringValue(const std::string& v) {
mType = STRING;
@@ -81,7 +82,7 @@ public:
}
private:
Type mType;
- double floatValue;
+ double doubleValue;
std::string stringValue;
Units mUnits;
};
diff --git a/include/minikin/MinikinFont.h b/include/minikin/MinikinFont.h
index 1f6894c..9ff08a9 100644
--- a/include/minikin/MinikinFont.h
+++ b/include/minikin/MinikinFont.h
@@ -33,7 +33,7 @@ struct MinikinPaint {
float size;
float scaleX;
float skewX;
- int32_t paintFlags;
+ uint32_t paintFlags;
};
struct MinikinRect {
diff --git a/libs/minikin/CssParse.cpp b/libs/minikin/CssParse.cpp
index 147f330..8168a74 100644
--- a/libs/minikin/CssParse.cpp
+++ b/libs/minikin/CssParse.cpp
@@ -123,21 +123,21 @@ static bool parseValue(const string& str, size_t* off, size_t len, CssTag tag, C
return false;
}
}
- v->setFloatValue(fv);
+ v->setDoubleValue(fv);
*off = endptr - data;
return true;
}
string CssValue::toString(CssTag tag) const {
- if (mType == FLOAT) {
+ if (mType == DOUBLE) {
if (tag == fontStyle) {
- return floatValue ? "italic" : "normal";
+ return doubleValue ? "italic" : "normal";
} else if (tag == minikinVariant) {
- if (floatValue == VARIANT_COMPACT) return "compact";
- if (floatValue == VARIANT_ELEGANT) return "elegant";
+ if (doubleValue == VARIANT_COMPACT) return "compact";
+ if (doubleValue == VARIANT_ELEGANT) return "elegant";
}
char buf[64];
- sprintf(buf, "%g", floatValue);
+ sprintf(buf, "%g", doubleValue);
return string(buf);
} else if (mType == STRING) {
return stringValue; // should probably quote
diff --git a/libs/minikin/Layout.cpp b/libs/minikin/Layout.cpp
index 5471b38..c66559a 100644
--- a/libs/minikin/Layout.cpp
+++ b/libs/minikin/Layout.cpp
@@ -512,13 +512,13 @@ void Layout::doLayout(const uint16_t* buf, size_t start, size_t count, size_t bu
ctx.props.parse(css);
ctx.style = styleFromCss(ctx.props);
- ctx.paint.size = ctx.props.value(fontSize).getFloatValue();
+ ctx.paint.size = ctx.props.value(fontSize).getDoubleValue();
ctx.paint.scaleX = ctx.props.hasTag(fontScaleX)
- ? ctx.props.value(fontScaleX).getFloatValue() : 1;
+ ? ctx.props.value(fontScaleX).getDoubleValue() : 1;
ctx.paint.skewX = ctx.props.hasTag(fontSkewX)
- ? ctx.props.value(fontSkewX).getFloatValue() : 0;
+ ? ctx.props.value(fontSkewX).getDoubleValue() : 0;
ctx.paint.paintFlags = ctx.props.hasTag(paintFlags)
- ?ctx.props.value(paintFlags).getIntValue() : 0;
+ ? ctx.props.value(paintFlags).getUintValue() : 0;
int bidiFlags = ctx.props.hasTag(minikinBidi) ? ctx.props.value(minikinBidi).getIntValue() : 0;
bool isRtl = (bidiFlags & kDirection_Mask) != 0;
bool doSingleRun = true;