aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--include/core/SkData.h31
-rw-r--r--include/gpu/GrScalar.h2
-rw-r--r--samplecode/SampleApp.cpp2
-rw-r--r--src/animator/SkScriptTokenizer.cpp4
-rw-r--r--src/gpu/GrDrawTarget.cpp2
-rw-r--r--src/gpu/GrPathUtils.cpp14
-rw-r--r--src/gpu/gl/GrGpuGL_program.cpp2
-rw-r--r--src/pdf/SkPDFDevice.cpp2
-rw-r--r--src/pdf/SkPDFImage.cpp4
-rw-r--r--src/pipe/SkGPipeWrite.cpp2
-rw-r--r--src/views/SkTouchGesture.cpp14
-rw-r--r--tests/FlateTest.cpp8
-rw-r--r--tests/PDFPrimitivesTest.cpp14
-rw-r--r--tests/PathMeasureTest.cpp6
-rw-r--r--tests/ToUnicode.cpp4
-rw-r--r--tools/bench_pictures_main.cpp6
16 files changed, 59 insertions, 58 deletions
diff --git a/include/core/SkData.h b/include/core/SkData.h
index 61b52c5480..301a4d88eb 100644
--- a/include/core/SkData.h
+++ b/include/core/SkData.h
@@ -108,7 +108,14 @@ private:
size_t fSize;
SkData(const void* ptr, size_t size, ReleaseProc, void* context);
- ~SkData();
+ virtual ~SkData();
+
+ // This is here because SkAutoTUnref creates an internal helper class
+ // that derives from SkData (i.e., BlockRef) to prevent refs\unrefs.
+ // This helper class generates a compiler warning on Windows since the
+ // SkData's destructor is private. This friending gives the helper class
+ // access to the destructor.
+ friend class SkAutoTUnref<SkData>::BlockRef<SkData>;
typedef SkRefCnt INHERITED;
};
@@ -119,39 +126,25 @@ private:
*/
class SkAutoDataUnref : SkNoncopyable {
public:
- SkAutoDataUnref(SkData* data) : fRef(data) {
- if (data) {
- fData = data->data();
- fSize = data->size();
- } else {
- fData = NULL;
- fSize = 0;
- }
- }
+ SkAutoDataUnref(SkData* data) : fRef(data) {}
~SkAutoDataUnref() {
SkSafeUnref(fRef);
}
- const void* data() const { return fData; }
- const uint8_t* bytes() const {
- return reinterpret_cast<const uint8_t*> (fData);
- }
- size_t size() const { return fSize; }
SkData* get() const { return fRef; }
void release() {
if (fRef) {
fRef->unref();
fRef = NULL;
- fData = NULL;
- fSize = 0;
}
}
+ SkData *operator->() const { return fRef; }
+ operator SkData*() { return fRef; }
+
private:
SkData* fRef;
- const void* fData;
- size_t fSize;
};
#endif
diff --git a/include/gpu/GrScalar.h b/include/gpu/GrScalar.h
index 4ffc4cabe0..5d2f13ba19 100644
--- a/include/gpu/GrScalar.h
+++ b/include/gpu/GrScalar.h
@@ -36,7 +36,7 @@
#define GrScalarMul(a,b) SkScalarMul(a,b)
#define GrScalarDiv(a,b) SkScalarDiv(a, b)
#define GrScalarToFloat(a) SkScalarToFloat(a)
-#define GrFloatToScalar(a) SkScalarToFloat(a)
+#define GrFloatToScalar(a) SkFloatToScalar(a)
#define GrIntToScalar(a) SkIntToScalar(a)
#define GrScalarAbs(a) SkScalarAbs(a)
#define GrScalarIsInt(a) SkScalarIsInt(a)
diff --git a/samplecode/SampleApp.cpp b/samplecode/SampleApp.cpp
index e026df957a..c5a9ca1d5d 100644
--- a/samplecode/SampleApp.cpp
+++ b/samplecode/SampleApp.cpp
@@ -1312,7 +1312,7 @@ void SampleWindow::afterChildren(SkCanvas* orig) {
fPicture->unref();
SkAutoDataUnref data(ostream.copyToData());
- SkMemoryStream istream(data.data(), data.size());
+ SkMemoryStream istream(data->data(), data->size());
SkPicture pict(&istream);
orig->drawPicture(pict);
} else {
diff --git a/src/animator/SkScriptTokenizer.cpp b/src/animator/SkScriptTokenizer.cpp
index 54aa2bff8b..1be7427275 100644
--- a/src/animator/SkScriptTokenizer.cpp
+++ b/src/animator/SkScriptTokenizer.cpp
@@ -750,7 +750,7 @@ scalarCommon:
decompile(data.bytes(), data.size());
#endif
SkScriptRuntime runtime(fCallBackArray);
- runtime.executeTokens((unsigned char*) data.bytes());
+ runtime.executeTokens((unsigned char*) data->bytes());
SkScriptValue2 value1;
runtime.getResult(&value1.fOperand);
value1.fType = fReturnType;
@@ -1158,7 +1158,7 @@ bool SkScriptEngine2::processOp() {
decompile(data.bytes(), data.size());
#endif
SkScriptRuntime runtime(fCallBackArray);
- runtime.executeTokens((unsigned char*)data.bytes());
+ runtime.executeTokens((unsigned char*)data->bytes());
runtime.getResult(&value1.fOperand);
if (attributes->fResultIsBoolean == kResultIsBoolean)
value1.fType = SkOperand2::kS32;
diff --git a/src/gpu/GrDrawTarget.cpp b/src/gpu/GrDrawTarget.cpp
index c2a308e803..60095abbe3 100644
--- a/src/gpu/GrDrawTarget.cpp
+++ b/src/gpu/GrDrawTarget.cpp
@@ -540,7 +540,7 @@ bool GrDrawTarget::reserveIndexSpace(int indexCount,
}
bool GrDrawTarget::StageUsesTexCoords(GrVertexLayout layout, int stage) {
- return layout & gStageTexCoordMasks[stage];
+ return SkToBool(layout & gStageTexCoordMasks[stage]);
}
bool GrDrawTarget::reserveVertexAndIndexSpace(GrVertexLayout vertexLayout,
diff --git a/src/gpu/GrPathUtils.cpp b/src/gpu/GrPathUtils.cpp
index aa18792574..4e487fd076 100644
--- a/src/gpu/GrPathUtils.cpp
+++ b/src/gpu/GrPathUtils.cpp
@@ -199,12 +199,16 @@ void GrPathUtils::QuadUVMatrix::set(const GrPoint qPts[3]) {
// [0 0 1]
// [1 1 1]
// We invert the control pt matrix and post concat to both sides to get M.
- UVpts.setAll(0, 0.5f, 1.f,
- 0, 0, 1.f,
- 1.f, 1.f, 1.f);
+ UVpts.setAll(0, GR_ScalarHalf, GR_Scalar1,
+ 0, 0, GR_Scalar1,
+ SkScalarToPersp(GR_Scalar1),
+ SkScalarToPersp(GR_Scalar1),
+ SkScalarToPersp(GR_Scalar1));
m.setAll(qPts[0].fX, qPts[1].fX, qPts[2].fX,
qPts[0].fY, qPts[1].fY, qPts[2].fY,
- 1.f, 1.f, 1.f);
+ SkScalarToPersp(GR_Scalar1),
+ SkScalarToPersp(GR_Scalar1),
+ SkScalarToPersp(GR_Scalar1));
if (!m.invert(&m)) {
// The quad is degenerate. Hopefully this is rare. Find the pts that are
// farthest apart to compute a line (unless it is really a pt).
@@ -247,7 +251,7 @@ void GrPathUtils::QuadUVMatrix::set(const GrPoint qPts[3]) {
m.postConcat(UVpts);
// The matrix should not have perspective.
- static const GrScalar gTOL = 1.f / 100.f;
+ static const GrScalar gTOL = GrFloatToScalar(1.f / 100.f);
GrAssert(GrScalarAbs(m.get(SkMatrix::kMPersp0)) < gTOL);
GrAssert(GrScalarAbs(m.get(SkMatrix::kMPersp1)) < gTOL);
diff --git a/src/gpu/gl/GrGpuGL_program.cpp b/src/gpu/gl/GrGpuGL_program.cpp
index d506c6c029..736be931d9 100644
--- a/src/gpu/gl/GrGpuGL_program.cpp
+++ b/src/gpu/gl/GrGpuGL_program.cpp
@@ -119,7 +119,7 @@ void GrGpuGL::flushViewMatrix(DrawType type) {
// and perform a y-flip.
GrMatrix m;
m.setScale(GrIntToScalar(2) / rt->width(), GrIntToScalar(-2) / rt->height());
- m.postTranslate(-1.f , 1.f);
+ m.postTranslate(-GR_Scalar1, GR_Scalar1);
m.preConcat(vm);
// GL wants a column-major 4x4.
diff --git a/src/pdf/SkPDFDevice.cpp b/src/pdf/SkPDFDevice.cpp
index 68c210d2bc..d05b640682 100644
--- a/src/pdf/SkPDFDevice.cpp
+++ b/src/pdf/SkPDFDevice.cpp
@@ -1119,7 +1119,7 @@ void SkPDFDevice::copyContentEntriesToData(ContentEntry* entry,
gsState.updateDrawingState(entry->fState);
SkAutoDataUnref copy(entry->fContent.copyToData());
- data->write(copy.data(), copy.size());
+ data->write(copy->data(), copy->size());
entry = entry->fNext.get();
}
gsState.drainStack();
diff --git a/src/pdf/SkPDFImage.cpp b/src/pdf/SkPDFImage.cpp
index 72379b1e36..429667a5e2 100644
--- a/src/pdf/SkPDFImage.cpp
+++ b/src/pdf/SkPDFImage.cpp
@@ -338,10 +338,10 @@ SkPDFImage::SkPDFImage(SkStream* imageData, const SkBitmap& bitmap,
SkRefPtr<SkPDFInt> zeroVal = new SkPDFInt(0);
zeroVal->unref(); // SkRefPtr and new both took a reference.
SkRefPtr<SkPDFScalar> scale5Val =
- new SkPDFScalar(8.2258f); // 255/2^5-1
+ new SkPDFScalar(SkFloatToScalar(8.2258f)); // 255/2^5-1
scale5Val->unref(); // SkRefPtr and new both took a reference.
SkRefPtr<SkPDFScalar> scale6Val =
- new SkPDFScalar(4.0476f); // 255/2^6-1
+ new SkPDFScalar(SkFloatToScalar(4.0476f)); // 255/2^6-1
scale6Val->unref(); // SkRefPtr and new both took a reference.
SkRefPtr<SkPDFArray> decodeValue = new SkPDFArray();
decodeValue->unref(); // SkRefPtr and new both took a reference.
diff --git a/src/pipe/SkGPipeWrite.cpp b/src/pipe/SkGPipeWrite.cpp
index e257144b4a..e546b5c592 100644
--- a/src/pipe/SkGPipeWrite.cpp
+++ b/src/pipe/SkGPipeWrite.cpp
@@ -51,7 +51,7 @@ static size_t writeTypeface(SkWriter32* writer, SkTypeface* typeface) {
if (writer) {
writer->write32(size);
SkAutoDataUnref data(stream.copyToData());
- writer->writePad(data.data(), size);
+ writer->writePad(data->data(), size);
}
return 4 + SkAlign4(size);
}
diff --git a/src/views/SkTouchGesture.cpp b/src/views/SkTouchGesture.cpp
index 31adc74b38..1828f0390b 100644
--- a/src/views/SkTouchGesture.cpp
+++ b/src/views/SkTouchGesture.cpp
@@ -14,9 +14,9 @@
#define DISCRETIZE_TRANSLATE_TO_AVOID_FLICKER true
-static const float MAX_FLING_SPEED = 1500;
+static const SkScalar MAX_FLING_SPEED = SkIntToScalar(1500);
-static float pin_max_fling(float speed) {
+static SkScalar pin_max_fling(SkScalar speed) {
if (speed > MAX_FLING_SPEED) {
speed = MAX_FLING_SPEED;
}
@@ -50,7 +50,7 @@ static void unit_axis_align(SkVector* unit) {
void SkFlingState::reset(float sx, float sy) {
fActive = true;
- fDirection.set(sx, sy);
+ fDirection.set(SkFloatToScalar(sx), SkFloatToScalar(sy));
fSpeed0 = SkPoint::Normalize(&fDirection);
fSpeed0 = pin_max_fling(fSpeed0);
fTime0 = getseconds();
@@ -82,7 +82,7 @@ bool SkFlingState::evaluateMatrix(SkMatrix* matrix) {
tx = (float)sk_float_round2int(tx);
ty = (float)sk_float_round2int(ty);
}
- matrix->setTranslate(tx, ty);
+ matrix->setTranslate(SkFloatToScalar(tx), SkFloatToScalar(ty));
// printf("---- evaluate (%g %g)\n", tx, ty);
return true;
@@ -181,8 +181,8 @@ int SkTouchGesture::findRec(void* owner) const {
return -1;
}
-static float center(float pos0, float pos1) {
- return (pos0 + pos1) * 0.5f;
+static SkScalar center(float pos0, float pos1) {
+ return SkFloatToScalar((pos0 + pos1) * 0.5f);
}
static const float MAX_ZOOM_SCALE = 4;
@@ -190,7 +190,7 @@ static const float MIN_ZOOM_SCALE = 0.25f;
float SkTouchGesture::limitTotalZoom(float scale) const {
// this query works 'cause we know that we're square-scale w/ no skew/rotation
- const float curr = fGlobalM[0];
+ const float curr = SkScalarToFloat(fGlobalM[0]);
if (scale > 1 && curr * scale > MAX_ZOOM_SCALE) {
scale = MAX_ZOOM_SCALE / curr;
diff --git a/tests/FlateTest.cpp b/tests/FlateTest.cpp
index 8697df9f5a..446e41242d 100644
--- a/tests/FlateTest.cpp
+++ b/tests/FlateTest.cpp
@@ -72,14 +72,16 @@ static void TestFlate(skiatest::Reporter* reporter, SkMemoryStream* testStream,
inputSize = testStream->getLength();
if (inputSize == 0)
inputSize = testStream->read(NULL, SkZeroSizeMemStream::kGetSizeKey);
- REPORTER_ASSERT(reporter, data1.size() == inputSize);
+ REPORTER_ASSERT(reporter, data1->size() == inputSize);
REPORTER_ASSERT(reporter, memcmp(testStream->getMemoryBase(),
- data1.data(), data1.size()) == 0);
+ data1->data(),
+ data1->size()) == 0);
// Check that the uncompressed data matches the source data.
SkAutoDataUnref data2(uncompressed.copyToData());
REPORTER_ASSERT(reporter, testData.getLength() == uncompressed.getOffset());
- REPORTER_ASSERT(reporter, memcmp(testData.getMemoryBase(), data2.data(),
+ REPORTER_ASSERT(reporter, memcmp(testData.getMemoryBase(),
+ data2->data(),
testData.getLength()) == 0);
}
diff --git a/tests/PDFPrimitivesTest.cpp b/tests/PDFPrimitivesTest.cpp
index 2423d561d5..ea3093f60f 100644
--- a/tests/PDFPrimitivesTest.cpp
+++ b/tests/PDFPrimitivesTest.cpp
@@ -38,10 +38,10 @@ private:
static bool stream_equals(const SkDynamicMemoryWStream& stream, size_t offset,
const void* buffer, size_t len) {
SkAutoDataUnref data(stream.copyToData());
- if (offset + len > data.size()) {
+ if (offset + len > data->size()) {
return false;
}
- return memcmp(data.bytes() + offset, buffer, len) == 0;
+ return memcmp(data->bytes() + offset, buffer, len) == 0;
}
static void CheckObjectOutput(skiatest::Reporter* reporter, SkPDFObject* obj,
@@ -128,19 +128,19 @@ static void TestPDFStream(skiatest::Reporter* reporter) {
expectedResult1.writeText("\nendstream");
SkAutoDataUnref expectedResultData1(expectedResult1.copyToData());
CheckObjectOutput(reporter, stream.get(),
- (const char*) expectedResultData1.data(),
- expectedResultData1.size(), true, false);
+ (const char*) expectedResultData1->data(),
+ expectedResultData1->size(), true, false);
// Then again with compression.
SkDynamicMemoryWStream expectedResult2;
expectedResult2.writeText("<</Filter /FlateDecode\n/Length 116\n"
">> stream\n");
- expectedResult2.write(compressedData.data(), compressedData.size());
+ expectedResult2.write(compressedData->data(), compressedData->size());
expectedResult2.writeText("\nendstream");
SkAutoDataUnref expectedResultData2(expectedResult2.copyToData());
CheckObjectOutput(reporter, stream.get(),
- (const char*) expectedResultData2.data(),
- expectedResultData2.size(), true, true);
+ (const char*) expectedResultData2->data(),
+ expectedResultData2->size(), true, true);
}
}
diff --git a/tests/PathMeasureTest.cpp b/tests/PathMeasureTest.cpp
index ee78c6b6f0..9d153c25bd 100644
--- a/tests/PathMeasureTest.cpp
+++ b/tests/PathMeasureTest.cpp
@@ -152,14 +152,14 @@ static void TestPathMeasure(skiatest::Reporter* reporter) {
REPORTER_ASSERT(reporter, position.fY == 0);
REPORTER_ASSERT(reporter, tangent.fX == SK_Scalar1);
REPORTER_ASSERT(reporter, tangent.fY == 0);
- REPORTER_ASSERT(reporter, meas.getPosTan(SK_Scalar1 * 2.5f, &position, &tangent));
+ REPORTER_ASSERT(reporter, meas.getPosTan(SkFloatToScalar(2.5f), &position, &tangent));
REPORTER_ASSERT(reporter,
SkScalarNearlyEqual(position.fX, SK_Scalar1, SkFloatToScalar(0.0001f)));
REPORTER_ASSERT(reporter,
- SkScalarNearlyEqual(position.fY, SK_Scalar1 * 1.5f));
+ SkScalarNearlyEqual(position.fY, SkFloatToScalar(1.5f)));
REPORTER_ASSERT(reporter, tangent.fX == 0);
REPORTER_ASSERT(reporter, tangent.fY == SK_Scalar1);
- REPORTER_ASSERT(reporter, meas.getPosTan(SK_Scalar1 * 4.5f, &position, &tangent));
+ REPORTER_ASSERT(reporter, meas.getPosTan(SkFloatToScalar(4.5f), &position, &tangent));
REPORTER_ASSERT(reporter,
SkScalarNearlyEqual(position.fX,
SkFloatToScalar(2.5f),
diff --git a/tests/ToUnicode.cpp b/tests/ToUnicode.cpp
index 99e9ef6ed5..ea9e258ac3 100644
--- a/tests/ToUnicode.cpp
+++ b/tests/ToUnicode.cpp
@@ -16,13 +16,13 @@
static bool stream_equals(const SkDynamicMemoryWStream& stream, size_t offset,
const char* buffer, size_t len) {
SkAutoDataUnref data(stream.copyToData());
- if (offset + len > data.size()) {
+ if (offset + len > data->size()) {
return false;
}
if (len != strlen(buffer)) {
return false;
}
- return memcmp(data.bytes() + offset, buffer, len) == 0;
+ return memcmp(data->bytes() + offset, buffer, len) == 0;
}
void append_cmap_sections(const SkTDArray<SkUnichar>& glyphToUnicode,
diff --git a/tools/bench_pictures_main.cpp b/tools/bench_pictures_main.cpp
index b2a7b7dea6..1c3dd4a016 100644
--- a/tools/bench_pictures_main.cpp
+++ b/tools/bench_pictures_main.cpp
@@ -85,7 +85,8 @@ struct TileInfo {
};
static void clip_tile(SkPicture* picture, const TileInfo& tile) {
- SkRect clip = SkRect::MakeWH(picture->width(), picture->height());
+ SkRect clip = SkRect::MakeWH(SkIntToScalar(picture->width()),
+ SkIntToScalar(picture->height()));
tile.fCanvas->clipRect(clip);
}
@@ -98,7 +99,8 @@ static void setup_single_tile(SkPicture* picture, const SkBitmap& bitmap,
options.fTileWidth, options.fTileHeight);
bitmap.extractSubset(tile.fBitmap, rect);
tile.fCanvas = new SkCanvas(*(tile.fBitmap));
- tile.fCanvas->translate(-tile_x_start, -tile_y_start);
+ tile.fCanvas->translate(SkIntToScalar(-tile_x_start),
+ SkIntToScalar(-tile_y_start));
clip_tile(picture, tile);
}