clean up fix to drawBitmapRect
authorreed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
Fri, 16 Oct 2009 14:48:38 +0000 (14:48 +0000)
committerreed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
Fri, 16 Oct 2009 14:48:38 +0000 (14:48 +0000)
git-svn-id: http://skia.googlecode.com/svn/trunk@388 2bbb7eff-a529-9590-31e7-b0007b416f81

samplecode/SampleBitmapRect.cpp
src/core/SkCanvas.cpp

index 842dfc4..0d981d6 100644 (file)
@@ -60,7 +60,7 @@ protected:
         
         const SkIRect src[] = {
             { 0, 0, 32, 32 },
-            { -8, -8, 80, 80 },
+            { 0, 0, 80, 80 },
             { 32, 32, 96, 96 },
             { -32, -32, 32, 32, }
         };
@@ -73,11 +73,12 @@ protected:
 
         canvas->translate(16, 40);
         for (size_t i = 0; i < SK_ARRAY_COUNT(src); i++) {
+            SkRect srcR;
+            srcR.set(src[i]);
+            
             canvas->drawBitmap(fBitmap, 0, 0, &paint);
             canvas->drawBitmapRect(fBitmap, &src[i], dstR, &paint);
 
-            SkRect srcR;
-            srcR.set(src[i]);
             canvas->drawRect(srcR, paint);
             canvas->drawRect(dstR, paint);
             
index ce4a624..0bf0614 100644 (file)
@@ -1113,33 +1113,24 @@ void SkCanvas::drawBitmapRect(const SkBitmap& bitmap, const SkIRect* src,
     }
     
     SkMatrix matrix;
-#if 0
-    SkScalar width = SkIntToScalar(bitmapPtr->width());
-    SkScalar height = SkIntToScalar(bitmapPtr->height());
-    if (dst.width() == width && dst.height() == height) {
-        matrix.setTranslate(dst.fLeft, dst.fTop);
-    } else
-#endif
-    {
-        SkRect tmpSrc;
-        if (src) {
-            tmpSrc.set(*src);
-            // if the extract process clipped off the top or left of the
-            // original, we adjust for that here to get the position right.
-            if (tmpSrc.fLeft > 0) {
-                tmpSrc.fRight -= tmpSrc.fLeft;
-                tmpSrc.fLeft = 0;
-            }
-            if (tmpSrc.fTop > 0) {
-                tmpSrc.fBottom -= tmpSrc.fTop;
-                tmpSrc.fTop = 0;
-            }
-        } else {
-            tmpSrc.set(0, 0, SkIntToScalar(bitmap.width()),
-                       SkIntToScalar(bitmap.height()));
+    SkRect tmpSrc;
+    if (src) {
+        tmpSrc.set(*src);
+        // if the extract process clipped off the top or left of the
+        // original, we adjust for that here to get the position right.
+        if (tmpSrc.fLeft > 0) {
+            tmpSrc.fRight -= tmpSrc.fLeft;
+            tmpSrc.fLeft = 0;
         }
-        matrix.setRectToRect(tmpSrc, dst, SkMatrix::kFill_ScaleToFit);
+        if (tmpSrc.fTop > 0) {
+            tmpSrc.fBottom -= tmpSrc.fTop;
+            tmpSrc.fTop = 0;
+        }
+    } else {
+        tmpSrc.set(0, 0, SkIntToScalar(bitmap.width()),
+                   SkIntToScalar(bitmap.height()));
     }
+    matrix.setRectToRect(tmpSrc, dst, SkMatrix::kFill_ScaleToFit);
     this->internalDrawBitmap(*bitmapPtr, matrix, paint);
 }