Remove include of stdlib.h from SkTypes.h.

Unfortunately, immintrin.h (which is also included by SkTypes)
includes xmmintrin.h which includes mm_malloc.h which includes
stdlib.h for malloc even though, from the implementation, it is
difficult to see why.

Fortunately, arm_neon.h does not seem to be involved in such
shenanigans, so building for Android will keep things sane.

TBR=reed@google.com
Doesn't change Skia API, just moves an include.

Review URL: https://codereview.chromium.org/1313203003
This commit is contained in:
bungeman 2015-08-26 05:15:46 -07:00 committed by Commit bot
parent 8d624bd44e
commit 60e0fee6d4
36 changed files with 80 additions and 31 deletions

View File

@ -10,6 +10,8 @@
#include "SkString.h" #include "SkString.h"
#include "SkTSort.h" #include "SkTSort.h"
#include <stdlib.h>
static const int N = 1000; static const int N = 1000;
static void rand_proc(int array[N]) { static void rand_proc(int array[N]) {

View File

@ -41,6 +41,8 @@
#include "SkSurface.h" #include "SkSurface.h"
#include "SkTaskGroup.h" #include "SkTaskGroup.h"
#include <stdlib.h>
#ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK #ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK
#include "nanobenchAndroid.h" #include "nanobenchAndroid.h"
#endif #endif

View File

@ -34,6 +34,8 @@
#endif #endif
#include "png.h" #include "png.h"
#include <stdlib.h>
DEFINE_string(src, "tests gm skp image", "Source types to test."); DEFINE_string(src, "tests gm skp image", "Source types to test.");
DEFINE_bool(nameByHash, false, DEFINE_bool(nameByHash, false,
"If true, write to FLAGS_writePath[0]/<hash>.png instead of " "If true, write to FLAGS_writePath[0]/<hash>.png instead of "

View File

@ -23,7 +23,6 @@
#endif #endif
// IWYU pragma: end_exports // IWYU pragma: end_exports
#include <stdlib.h>
#include <string.h> #include <string.h>
/** \file SkTypes.h /** \file SkTypes.h

View File

@ -26,6 +26,8 @@
#include "SkGeometry.h" #include "SkGeometry.h"
#include <stdlib.h>
// http://code.google.com/p/skia/issues/detail?id=32 // http://code.google.com/p/skia/issues/detail?id=32
static void test_cubic() { static void test_cubic() {
SkPoint src[4] = { SkPoint src[4] = {

View File

@ -28,6 +28,8 @@
#include "SkUtils.h" #include "SkUtils.h"
#include "SkXfermode.h" #include "SkXfermode.h"
#include <stdlib.h>
void SkGraphics::GetVersion(int32_t* major, int32_t* minor, int32_t* patch) { void SkGraphics::GetVersion(int32_t* major, int32_t* minor, int32_t* patch) {
if (major) { if (major) {
*major = SKIA_VERSION_MAJOR; *major = SKIA_VERSION_MAJOR;

View File

@ -8,6 +8,7 @@
#include "SkRegionPriv.h" #include "SkRegionPriv.h"
#include "SkBlitter.h" #include "SkBlitter.h"
#include "SkScan.h" #include "SkScan.h"
#include "SkTSort.h"
#include "SkTDArray.h" #include "SkTDArray.h"
#include "SkPath.h" #include "SkPath.h"
@ -476,11 +477,11 @@ static int extract_path(Edge* edge, Edge* stop, SkPath* path) {
return count; return count;
} }
#include "SkTSearch.h" struct EdgeLT {
bool operator()(const Edge& a, const Edge& b) const {
static int EdgeProc(const Edge* a, const Edge* b) { return (a.fX == b.fX) ? a.top() < b.top() : a.fX < b.fX;
return (a->fX == b->fX) ? a->top() - b->top() : a->fX - b->fX; }
} };
bool SkRegion::getBoundaryPath(SkPath* path) const { bool SkRegion::getBoundaryPath(SkPath* path) const {
// path could safely be NULL if we're empty, but the caller shouldn't // path could safely be NULL if we're empty, but the caller shouldn't
@ -508,13 +509,13 @@ bool SkRegion::getBoundaryPath(SkPath* path) const {
edge[0].set(r.fLeft, r.fBottom, r.fTop); edge[0].set(r.fLeft, r.fBottom, r.fTop);
edge[1].set(r.fRight, r.fTop, r.fBottom); edge[1].set(r.fRight, r.fTop, r.fBottom);
} }
qsort(edges.begin(), edges.count(), sizeof(Edge), SkCastForQSort(EdgeProc));
int count = edges.count(); int count = edges.count();
Edge* start = edges.begin(); Edge* start = edges.begin();
Edge* stop = start + count; Edge* stop = start + count;
Edge* e; SkTQSort<Edge>(start, stop - 1, EdgeLT());
Edge* e;
for (e = start; e != stop; e++) { for (e = start; e != stop; e++) {
find_link(e, stop); find_link(e, stop);
} }

View File

@ -13,6 +13,7 @@
#include "SkResourceCache.h" #include "SkResourceCache.h"
#include <stddef.h> #include <stddef.h>
#include <stdlib.h>
DECLARE_SKMESSAGEBUS_MESSAGE(SkResourceCache::PurgeSharedIDMessage) DECLARE_SKMESSAGEBUS_MESSAGE(SkResourceCache::PurgeSharedIDMessage)

View File

@ -12,8 +12,8 @@ void SkTime::DateTime::toISO8601(SkString* dst) const {
if (dst) { if (dst) {
int timeZoneMinutes = SkToInt(fTimeZoneMinutes); int timeZoneMinutes = SkToInt(fTimeZoneMinutes);
char timezoneSign = timeZoneMinutes >= 0 ? '+' : '-'; char timezoneSign = timeZoneMinutes >= 0 ? '+' : '-';
int timeZoneHours = abs(timeZoneMinutes) / 60; int timeZoneHours = SkTAbs(timeZoneMinutes) / 60;
timeZoneMinutes = abs(timeZoneMinutes) % 60; timeZoneMinutes = SkTAbs(timeZoneMinutes) % 60;
dst->printf("%04u-%02u-%02uT%02u:%02u:%02u%c%02d:%02d", dst->printf("%04u-%02u-%02uT%02u:%02u:%02u%c%02d:%02d",
static_cast<unsigned>(fYear), static_cast<unsigned>(fMonth), static_cast<unsigned>(fYear), static_cast<unsigned>(fMonth),
static_cast<unsigned>(fDay), static_cast<unsigned>(fHour), static_cast<unsigned>(fDay), static_cast<unsigned>(fHour),

View File

@ -809,7 +809,7 @@ bool SkOpAngle::midToSide(const SkOpAngle* rh, bool* inside) const {
} }
bool SkOpAngle::oppositePlanes(const SkOpAngle* rh) const { bool SkOpAngle::oppositePlanes(const SkOpAngle* rh) const {
int startSpan = abs(rh->fSectorStart - fSectorStart); int startSpan = SkTAbs(rh->fSectorStart - fSectorStart);
return startSpan >= 8; return startSpan >= 8;
} }

View File

@ -1479,7 +1479,7 @@ void SkOpSegment::setUpWindings(SkOpSpanBase* start, SkOpSpanBase* end, int* sum
int deltaSum = SpanSign(start, end); int deltaSum = SpanSign(start, end);
*maxWinding = *sumMiWinding; *maxWinding = *sumMiWinding;
*sumWinding = *sumMiWinding -= deltaSum; *sumWinding = *sumMiWinding -= deltaSum;
SkASSERT(!DEBUG_LIMIT_WIND_SUM || abs(*sumWinding) <= DEBUG_LIMIT_WIND_SUM); SkASSERT(!DEBUG_LIMIT_WIND_SUM || SkTAbs(*sumWinding) <= DEBUG_LIMIT_WIND_SUM);
} }
void SkOpSegment::setUpWindings(SkOpSpanBase* start, SkOpSpanBase* end, int* sumMiWinding, void SkOpSegment::setUpWindings(SkOpSpanBase* start, SkOpSpanBase* end, int* sumMiWinding,
@ -1498,8 +1498,8 @@ void SkOpSegment::setUpWindings(SkOpSpanBase* start, SkOpSpanBase* end, int* sum
*oppMaxWinding = *sumSuWinding; *oppMaxWinding = *sumSuWinding;
*oppSumWinding = *sumSuWinding -= oppDeltaSum; *oppSumWinding = *sumSuWinding -= oppDeltaSum;
} }
SkASSERT(!DEBUG_LIMIT_WIND_SUM || abs(*sumWinding) <= DEBUG_LIMIT_WIND_SUM); SkASSERT(!DEBUG_LIMIT_WIND_SUM || SkTAbs(*sumWinding) <= DEBUG_LIMIT_WIND_SUM);
SkASSERT(!DEBUG_LIMIT_WIND_SUM || abs(*oppSumWinding) <= DEBUG_LIMIT_WIND_SUM); SkASSERT(!DEBUG_LIMIT_WIND_SUM || SkTAbs(*oppSumWinding) <= DEBUG_LIMIT_WIND_SUM);
} }
void SkOpSegment::sortAngles() { void SkOpSegment::sortAngles() {
@ -1774,8 +1774,8 @@ int SkOpSegment::updateWindingReverse(const SkOpAngle* angle) {
bool SkOpSegment::UseInnerWinding(int outerWinding, int innerWinding) { bool SkOpSegment::UseInnerWinding(int outerWinding, int innerWinding) {
SkASSERT(outerWinding != SK_MaxS32); SkASSERT(outerWinding != SK_MaxS32);
SkASSERT(innerWinding != SK_MaxS32); SkASSERT(innerWinding != SK_MaxS32);
int absOut = abs(outerWinding); int absOut = SkTAbs(outerWinding);
int absIn = abs(innerWinding); int absIn = SkTAbs(innerWinding);
bool result = absOut == absIn ? outerWinding < 0 : absOut < absIn; bool result = absOut == absIn ? outerWinding < 0 : absOut < absIn;
return result; return result;
} }

View File

@ -369,7 +369,7 @@ void SkOpSpan::setOppSum(int oppSum) {
this->globalState()->setWindingFailed(); this->globalState()->setWindingFailed();
return; return;
} }
SkASSERT(!DEBUG_LIMIT_WIND_SUM || abs(oppSum) <= DEBUG_LIMIT_WIND_SUM); SkASSERT(!DEBUG_LIMIT_WIND_SUM || SkTAbs(oppSum) <= DEBUG_LIMIT_WIND_SUM);
fOppSum = oppSum; fOppSum = oppSum;
} }
@ -379,6 +379,6 @@ void SkOpSpan::setWindSum(int windSum) {
this->globalState()->setWindingFailed(); this->globalState()->setWindingFailed();
return; return;
} }
SkASSERT(!DEBUG_LIMIT_WIND_SUM || abs(windSum) <= DEBUG_LIMIT_WIND_SUM); SkASSERT(!DEBUG_LIMIT_WIND_SUM || SkTAbs(windSum) <= DEBUG_LIMIT_WIND_SUM);
fWindSum = windSum; fWindSum = windSum;
} }

View File

@ -9,6 +9,8 @@
#include "SkPathOps.h" #include "SkPathOps.h"
#include "SkTypes.h" #include "SkTypes.h"
#include <stdlib.h>
#include <stdio.h> #include <stdio.h>
#ifdef SK_RELEASE #ifdef SK_RELEASE

View File

@ -160,7 +160,7 @@ int UlpsDistance(float a, float b) {
return a == b ? 0 : SK_MaxS32; return a == b ? 0 : SK_MaxS32;
} }
// Find the difference in ULPs. // Find the difference in ULPs.
return abs(floatIntA.fSignBitInt - floatIntB.fSignBitInt); return SkTAbs(floatIntA.fSignBitInt - floatIntB.fSignBitInt);
} }
// cube root approximation using bit hack for 64-bit float // cube root approximation using bit hack for 64-bit float

View File

@ -9,6 +9,8 @@
#include "SkEventTracer.h" #include "SkEventTracer.h"
#include "SkLazyPtr.h" #include "SkLazyPtr.h"
#include <stdlib.h>
class SkDefaultEventTracer : public SkEventTracer { class SkDefaultEventTracer : public SkEventTracer {
SkEventTracer::Handle SkEventTracer::Handle
addTraceEvent(char phase, addTraceEvent(char phase,

View File

@ -9,6 +9,8 @@
#include "SkParse.h" #include "SkParse.h"
#include <stdlib.h>
static inline bool is_between(int c, int min, int max) static inline bool is_between(int c, int min, int max)
{ {
return (unsigned)(c - min) <= (unsigned)(max - min); return (unsigned)(c - min) <= (unsigned)(max - min);

View File

@ -8,6 +8,8 @@
#include "SkRTConf.h" #include "SkRTConf.h"
#include "SkOSFile.h" #include "SkOSFile.h"
#include <stdlib.h>
SkRTConfRegistry::SkRTConfRegistry(): fConfs(100) { SkRTConfRegistry::SkRTConfRegistry(): fConfs(100) {
SkFILE *fp = sk_fopen(configFileLocation(), kRead_SkFILE_Flag); SkFILE *fp = sk_fopen(configFileLocation(), kRead_SkFILE_Flag);

View File

@ -51,7 +51,7 @@ DEF_TEST(PathOpsAngleFindCrossEpsilon, reporter) {
float p2 = SkDoubleToScalar(line[1].fY * test.fX); float p2 = SkDoubleToScalar(line[1].fY * test.fX);
int p1Bits = SkFloatAs2sCompliment(p1); int p1Bits = SkFloatAs2sCompliment(p1);
int p2Bits = SkFloatAs2sCompliment(p2); int p2Bits = SkFloatAs2sCompliment(p2);
int epsilon = abs(p1Bits - p2Bits); int epsilon = SkTAbs(p1Bits - p2Bits);
if (maxEpsilon < epsilon) { if (maxEpsilon < epsilon) {
SkDebugf("line={{0, 0}, {%1.7g, %1.7g}} t=%1.7g pt={%1.7g, %1.7g}" SkDebugf("line={{0, 0}, {%1.7g, %1.7g}} t=%1.7g pt={%1.7g, %1.7g}"
" epsilon=%d\n", " epsilon=%d\n",
@ -104,7 +104,7 @@ DEF_TEST(PathOpsAngleFindQuadEpsilon, reporter) {
float p2 = SkDoubleToScalar(line[1].fY * last.fX); float p2 = SkDoubleToScalar(line[1].fY * last.fX);
int p1Bits = SkFloatAs2sCompliment(p1); int p1Bits = SkFloatAs2sCompliment(p1);
int p2Bits = SkFloatAs2sCompliment(p2); int p2Bits = SkFloatAs2sCompliment(p2);
int epsilon = abs(p1Bits - p2Bits); int epsilon = SkTAbs(p1Bits - p2Bits);
if (maxEpsilon < epsilon) { if (maxEpsilon < epsilon) {
SkDebugf("line={{0, 0}, {%1.7g, %1.7g}} t=%1.7g/%1.7g/%1.7g moveT=%1.7g" SkDebugf("line={{0, 0}, {%1.7g, %1.7g}} t=%1.7g/%1.7g/%1.7g moveT=%1.7g"
" pt={%1.7g, %1.7g} epsilon=%d\n", " pt={%1.7g, %1.7g} epsilon=%d\n",

View File

@ -12,6 +12,8 @@
#include "SkReduceOrder.h" #include "SkReduceOrder.h"
#include "Test.h" #include "Test.h"
#include <stdlib.h>
const int firstCubicIntersectionTest = 9; const int firstCubicIntersectionTest = 9;
static void standardTestCases(skiatest::Reporter* reporter) { static void standardTestCases(skiatest::Reporter* reporter) {

View File

@ -16,6 +16,8 @@
#include "SkRTConf.h" #include "SkRTConf.h"
#include "SkStream.h" #include "SkStream.h"
#include <stdlib.h>
#ifdef SK_BUILD_FOR_MAC #ifdef SK_BUILD_FOR_MAC
#include <sys/sysctl.h> #include <sys/sysctl.h>
#endif #endif

View File

@ -91,7 +91,7 @@ static void testQuadLineIntersectMain(PathOpsThreadState* data)
SkDPoint xy = quad.ptAtT(tIndex / 4.0); SkDPoint xy = quad.ptAtT(tIndex / 4.0);
for (int h = -2; h <= 2; ++h) { for (int h = -2; h <= 2; ++h) {
for (int v = -2; v <= 2; ++v) { for (int v = -2; v <= 2; ++v) {
if (h == v && abs(h) != 1) { if (h == v && SkTAbs(h) != 1) {
continue; continue;
} }
double x = xy.fX; double x = xy.fX;

View File

@ -32,6 +32,8 @@
#include "SkTemplates.h" #include "SkTemplates.h"
#include "SkTime.h" #include "SkTime.h"
#include <stdlib.h>
__SK_FORCE_IMAGE_DECODER_LINKING; __SK_FORCE_IMAGE_DECODER_LINKING;
/* add local exceptions here */ /* add local exceptions here */

View File

@ -8,6 +8,8 @@
#include "SkRTConf.h" #include "SkRTConf.h"
#include "Test.h" #include "Test.h"
#include <stdlib.h>
// Friended proxy for SkRTConfRegistry::parse() // Friended proxy for SkRTConfRegistry::parse()
template <typename T> template <typename T>
bool test_rt_conf_parse(SkRTConfRegistry* reg, const char* key, T* value) { bool test_rt_conf_parse(SkRTConfRegistry* reg, const char* key, T* value) {

View File

@ -9,6 +9,8 @@
#include "SkTSort.h" #include "SkTSort.h"
#include "Test.h" #include "Test.h"
#include <stdlib.h>
extern "C" { extern "C" {
static int compare_int(const void* a, const void* b) { static int compare_int(const void* a, const void* b) {
return *(const int*)a - *(const int*)b; return *(const int*)a - *(const int*)b;

View File

@ -44,7 +44,7 @@ DEF_TEST(Time_GetDateTime, r) {
// The westernmost timezone is -12:00. // The westernmost timezone is -12:00.
// The easternmost timezone is +14:00. // The easternmost timezone is +14:00.
REPORTER_ASSERT(r, abs(SkToInt(dateTime.fTimeZoneMinutes)) <= 14 * 60); REPORTER_ASSERT(r, SkTAbs(SkToInt(dateTime.fTimeZoneMinutes)) <= 14 * 60);
SkString timeStamp; SkString timeStamp;
dateTime.toISO8601(&timeStamp); dateTime.toISO8601(&timeStamp);

View File

@ -19,6 +19,8 @@
#include "SkImageDecoder.h" #include "SkImageDecoder.h"
#include "SkString.h" #include "SkString.h"
#include <stdlib.h>
// Alphabetized list of flags used by this file or bench_ and render_pictures. // Alphabetized list of flags used by this file or bench_ and render_pictures.
DEFINE_string(bbh, "none", "bbhType [width height]: Set the bounding box hierarchy type to " DEFINE_string(bbh, "none", "bbhType [width height]: Set the bounding box hierarchy type to "
"be used. Accepted values are: none, rtree, grid. " "be used. Accepted values are: none, rtree, grid. "

View File

@ -20,6 +20,8 @@
#include "SkTArray.h" #include "SkTArray.h"
#include "TimerData.h" #include "TimerData.h"
#include <stdlib.h>
/** /**
* Base class for writing picture bench results. * Base class for writing picture bench results.
*/ */

View File

@ -17,6 +17,8 @@
#include "DumpRecord.h" #include "DumpRecord.h"
#include "LazyDecodeBitmap.h" #include "LazyDecodeBitmap.h"
#include <stdlib.h>
DEFINE_string2(skps, r, "", ".SKPs to dump."); DEFINE_string2(skps, r, "", ".SKPs to dump.");
DEFINE_string(match, "", "The usual filters on file names to dump."); DEFINE_string(match, "", "The usual filters on file names to dump.");
DEFINE_bool2(optimize, O, false, "Run SkRecordOptimize before dumping."); DEFINE_bool2(optimize, O, false, "Run SkRecordOptimize before dumping.");

View File

@ -9,6 +9,8 @@
#include "SkTDArray.h" #include "SkTDArray.h"
#include "SkTSort.h" #include "SkTSort.h"
#include <stdlib.h>
DEFINE_bool(undefok, false, "Silently ignore unknown flags instead of crashing."); DEFINE_bool(undefok, false, "Silently ignore unknown flags instead of crashing.");
template <typename T> static void ignore_result(const T&) {} template <typename T> static void ignore_result(const T&) {}

View File

@ -11,6 +11,8 @@
#include "SkPicture.h" #include "SkPicture.h"
#include "SkPictureRecorder.h" #include "SkPictureRecorder.h"
#include "SkStream.h" #include "SkStream.h"
#include <stdlib.h>
#include <stdio.h> #include <stdio.h>
__SK_FORCE_IMAGE_DECODER_LINKING; __SK_FORCE_IMAGE_DECODER_LINKING;

View File

@ -11,6 +11,8 @@
#include "SkData.h" #include "SkData.h"
#include "SkOSFile.h" #include "SkOSFile.h"
#include <stdlib.h>
extern "C" { extern "C" {
#include "lua.h" #include "lua.h"
#include "lualib.h" #include "lualib.h"

View File

@ -17,6 +17,8 @@
#include "SkOSFile.h" #include "SkOSFile.h"
#include "SkImageDecoder.h" #include "SkImageDecoder.h"
#include <stdlib.h>
extern "C" { extern "C" {
#include "lua.h" #include "lua.h"
#include "lualib.h" #include "lualib.h"

View File

@ -25,6 +25,8 @@
#include "PictureRenderingFlags.h" #include "PictureRenderingFlags.h"
#include "picture_utils.h" #include "picture_utils.h"
#include <stdlib.h>
// Flags used by this file, alphabetically: // Flags used by this file, alphabetically:
DEFINE_bool(bench_record, false, "If true, drop into an infinite loop of recording the picture."); DEFINE_bool(bench_record, false, "If true, drop into an infinite loop of recording the picture.");
DECLARE_bool(deferImageDecoding); DECLARE_bool(deferImageDecoding);
@ -219,8 +221,8 @@ static inline int getByte(uint32_t value, int index) {
} }
static int MaxByteDiff(uint32_t v1, uint32_t v2) { static int MaxByteDiff(uint32_t v1, uint32_t v2) {
return SkMax32(SkMax32(abs(getByte(v1, 0) - getByte(v2, 0)), abs(getByte(v1, 1) - getByte(v2, 1))), return SkMax32(SkMax32(SkTAbs(getByte(v1, 0) - getByte(v2, 0)), SkTAbs(getByte(v1, 1) - getByte(v2, 1))),
SkMax32(abs(getByte(v1, 2) - getByte(v2, 2)), abs(getByte(v1, 3) - getByte(v2, 3)))); SkMax32(SkTAbs(getByte(v1, 2) - getByte(v2, 2)), SkTAbs(getByte(v1, 3) - getByte(v2, 3))));
} }
class AutoRestoreBbhType { class AutoRestoreBbhType {

View File

@ -17,6 +17,8 @@
#include "SkTDArray.h" #include "SkTDArray.h"
#include "SkTSearch.h" #include "SkTSearch.h"
#include <stdlib.h>
__SK_FORCE_IMAGE_DECODER_LINKING; __SK_FORCE_IMAGE_DECODER_LINKING;
/** /**

View File

@ -73,14 +73,14 @@ bool SkDifferentPixelsMetric::diff(SkBitmap* baseline, SkBitmap* test,
if (baselinePixel != testPixel) { if (baselinePixel != testPixel) {
result->poiCount++; result->poiCount++;
int redDiff = abs(static_cast<int>(SkColorGetR(baselinePixel) - int redDiff = SkTAbs(static_cast<int>(SkColorGetR(baselinePixel) -
SkColorGetR(testPixel))); SkColorGetR(testPixel)));
if (redDiff > maxRedDiff) {maxRedDiff = redDiff;} if (redDiff > maxRedDiff) {maxRedDiff = redDiff;}
int greenDiff = abs(static_cast<int>(SkColorGetG(baselinePixel) - int greenDiff = SkTAbs(static_cast<int>(SkColorGetG(baselinePixel) -
SkColorGetG(testPixel))); SkColorGetG(testPixel)));
if (greenDiff > maxGreenDiff) {maxGreenDiff = greenDiff;} if (greenDiff > maxGreenDiff) {maxGreenDiff = greenDiff;}
int blueDiff = abs(static_cast<int>(SkColorGetB(baselinePixel) - int blueDiff = SkTAbs(static_cast<int>(SkColorGetB(baselinePixel) -
SkColorGetB(testPixel))); SkColorGetB(testPixel)));
if (blueDiff > maxBlueDiff) {maxBlueDiff = blueDiff;} if (blueDiff > maxBlueDiff) {maxBlueDiff = blueDiff;}
if (bitmapsToCreate.alphaMask) { if (bitmapsToCreate.alphaMask) {

View File

@ -16,6 +16,8 @@
#include "SkScalar.h" #include "SkScalar.h"
#include "SkStream.h" #include "SkStream.h"
#include <stdlib.h>
// Flags used by this file, alphabetically: // Flags used by this file, alphabetically:
DEFINE_int32(blue, 128, "Value of blue color channel in image, 0-255."); DEFINE_int32(blue, 128, "Value of blue color channel in image, 0-255.");
DEFINE_int32(border, 4, "Width of the black border around the image."); DEFINE_int32(border, 4, "Width of the black border around the image.");