diff options
-rw-r--r-- | include/core/SkData.h | 31 | ||||
-rw-r--r-- | include/gpu/GrScalar.h | 2 | ||||
-rw-r--r-- | samplecode/SampleApp.cpp | 2 | ||||
-rw-r--r-- | src/animator/SkScriptTokenizer.cpp | 4 | ||||
-rw-r--r-- | src/gpu/GrDrawTarget.cpp | 2 | ||||
-rw-r--r-- | src/gpu/GrPathUtils.cpp | 14 | ||||
-rw-r--r-- | src/gpu/gl/GrGpuGL_program.cpp | 2 | ||||
-rw-r--r-- | src/pdf/SkPDFDevice.cpp | 2 | ||||
-rw-r--r-- | src/pdf/SkPDFImage.cpp | 4 | ||||
-rw-r--r-- | src/pipe/SkGPipeWrite.cpp | 2 | ||||
-rw-r--r-- | src/views/SkTouchGesture.cpp | 14 | ||||
-rw-r--r-- | tests/FlateTest.cpp | 8 | ||||
-rw-r--r-- | tests/PDFPrimitivesTest.cpp | 14 | ||||
-rw-r--r-- | tests/PathMeasureTest.cpp | 6 | ||||
-rw-r--r-- | tests/ToUnicode.cpp | 4 | ||||
-rw-r--r-- | tools/bench_pictures_main.cpp | 6 |
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); } |