1. 13 Mar, 2014 3 commits
  2. 12 Mar, 2014 1 commit
    • Leon Scroggins's avatar
      Disable optimizations for chromium m33. · e958b3a9
      Leon Scroggins authored
      These optimizations are disabled in chromium m33, so disable them in
      Android's build of Skia, against which chromium/webview will link.
      
      BUG:13246311
      Change-Id: I8e64dea2d232a6b3616c225f1cd269f086b056e3
      e958b3a9
  3. 11 Mar, 2014 1 commit
    • Leon Scroggins's avatar
      Add an Android version of SkRefCnt - DO NOT MERGE · 33fd3876
      Leon Scroggins authored
      This version adds SkRefCnt::deref(). This allows chromium on Android
      to build against the system version of Skia, since chromium requires
      this function.
      
      BUG:13246311
      Change-Id: I988ef1f76e4e10918ca896e4488d65ccc94837c6
      33fd3876
  4. 07 Mar, 2014 1 commit
  5. 06 Mar, 2014 2 commits
  6. 20 Feb, 2014 2 commits
  7. 17 Jan, 2014 1 commit
    • Derek Sollenberger's avatar
      Merge Skia r12682 into Android. · f397b21b
      Derek Sollenberger authored
      Conflicts:
      	include/core/SkDraw.h
      	include/pdf/SkPDFDevice.h
      	include/utils/SkCanvasStateUtils.h
      	include/utils/SkFrontBufferedStream.h
      	src/core/SkDevice.cpp
      	src/core/SkDeviceLooper.cpp
      	src/core/SkDeviceLooper.h
      	src/core/SkRRect.cpp
      	src/doc/SkDocument_PDF.cpp
      	src/effects/SkBlurMaskFilter.cpp
      	src/fonts/SkFontMgr_fontconfig.cpp
      	src/gpu/GrAAHairLinePathRenderer.cpp
      	src/gpu/GrAAHairLinePathRenderer.h
      	src/gpu/GrTextContext.cpp
      	src/images/SkImageDecoder_libpng.cpp
      	src/images/SkScaledBitmapSampler.cpp
      	src/images/SkScaledBitmapSampler.h
      	src/pdf/SkPDFDevice.cpp
      	src/pdf/SkPDFDeviceFlattener.cpp
      	src/ports/SkFontConfigInterface_android.cpp
      	src/ports/SkFontHost_FreeType.cpp
      	src/ports/SkFontHost_FreeType_common.cpp
      	src/utils/SkCanvasStack.cpp
      	src/utils/SkCanvasStack.h
      	src/utils/SkCanvasStateUtils.cpp
      	src/utils/SkDeferredCanvas.cpp
      	src/utils/SkFrontBufferedStream.cpp
      	src/utils/SkPictureUtils.cpp
      
      Change-Id: Ice86d9769ed99f804932d8839acfdea695cb6d28
      f397b21b
  8. 16 Jan, 2014 1 commit
  9. 13 Nov, 2013 1 commit
  10. 12 Nov, 2013 1 commit
    • Leon Scroggins III's avatar
      Override drawRRect in fake SkBitmapDevices. · 02cbf104
      Leon Scroggins III authored
      Recent changes to SkBitmapDevice modified ::drawRRect() to take
      an optimized drawing case. Some subclasses of SkBitmapDevice were
      depending on the old behavior of calling ::drawPath(). Since they
      do not draw, attempting to take the drawing path can cause problems.
      For these subclasses, call drawPath() in the subclass.
      
      Cherry-pick of https://code.google.com/p/skia/source/detail?r=12247 in Skia.
      
      BUG:11648093
      Change-Id: Ie2173907c58c36b28855aba5a71b7ad676cc543e
      02cbf104
  11. 11 Nov, 2013 1 commit
    • Leon Scroggins III's avatar
      Fix a memory leak in filterRRectToNine. · f331039b
      Leon Scroggins III authored
      Cherry-pick of Skia from https://codereview.chromium.org/65723005/
      
      Found by our valgrind bot:
      
      63,808 bytes in 126 blocks are definitely lost in loss record 76 of 76
      at 0x4C2B6CD: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
      by 0x52C126: sk_malloc_flags(unsigned long, unsigned int) (SkMemory_malloc.cpp:45)
      by 0x52C157: sk_malloc_throw(unsigned long) (SkMemory_malloc.cpp:31)
      by 0x42A9B2: SkMask::AllocImage(unsigned long) (SkMask.cpp:40)
      by 0x5BD349: prepare_to_draw_into_mask(SkRect const&, SkMask*) (SkBlurMaskFilter.cpp:170)
      by 0x5BEDC6: SkBlurMaskFilterImpl::filterRRectToNine(SkRRect const&, SkMatrix const&, SkIRect const&, SkMaskFilter::NinePatch*) const (SkBlurMaskFilter.cpp:181)
      by 0x42B604: SkMaskFilter::filterRRect(SkRRect const&, SkMatrix const&, SkRasterClip const&, SkBounder*, SkBlitter*, SkPaint::Style) const (SkMaskFilter.cpp:218)
      by 0x42460E: SkDraw::drawRRect(SkRRect const&, SkPaint const&) const (SkDraw.cpp:1056)
      by 0x413F9C: SkBitmapDevice::drawRRect(SkDraw const&, SkRRect const&, SkPaint const&) (SkBitmapDevice.cpp:235)
      by 0x419D31: SkCanvas::drawRRect(SkRRect const&, SkPaint const&) (SkCanvas.cpp:1695)
      by 0x43F865: SkPicturePlayback::draw(SkCanvas&, SkDrawPictureCallback*) (SkPicturePlayback.cpp:1001)
      by 0x43BC1A: SkPicture::draw(SkCanvas*, SkDrawPictureCallback*) (SkPicture.cpp:261)
      by 0x407D42: void sk_tools::DrawTileToCanvas<SkPicture>(SkCanvas*, SkRect const&, SkPicture*) (PictureRenderer.cpp:502)
      by 0x4080BA: sk_tools::TiledPictureRenderer::render(SkString const*, SkBitmap**) (PictureRenderer.cpp:546)
      by 0x4064EF: render_picture(SkString const&, SkString const*, sk_tools::PictureRenderer&, SkBitmap**) (render_pictures_main.cpp:193)
      by 0x406637: render_picture(SkString const&, SkString const*, sk_tools::PictureRenderer&) (render_pictures_main.cpp:251)
      by 0x406F50: tool_main(int, char**) (render_pictures_main.cpp:360)
      by 0x407142: main (render_pictures_main.cpp:455)
      
      BUG:11630753
      Change-Id: Ie7792111449da3126a5e9e273e79bbb36481349c
      f331039b
  12. 06 Nov, 2013 1 commit
    • Leon Scroggins III's avatar
      Use nine patch drawing for blurry round rectangles · 4db85b50
      Leon Scroggins III authored
      Cherry pick of https://codereview.chromium.org/52703003/ in Skia.
      
      Add SkRRect::transform.
      
      Much like SkPath::transform, it transforms an SkRRect based on an
      SkMatrix. Unlike SkPath::transform, it will fail for matrices that
      contain perspective or skewing.
      
      Cherry pick of https://codereview.chromium.org/48623006/ in Skia.
      
      Add ability to ninepatch blurred rounded rectangle
      
      Speed up drawing large blurry round rectangles by converting them to
      nine patches.
      
      SkDraw:
      Add drawRRect.
      
      SkBitmapDevice:
      Call SkDraw::drawRRect instead of converting SkRRect to an SkPath.
      
      SkMaskFilter/SkBlurMaskFilter:
      Create a nine patch of a blurred round rect and draw it instead of
      drawing the entire thing.
      
      SkPDFDevice:
      Override drawRRect to perform the old behavior in
      SkBitmapDevice::drawRect.
      
      BUG:11174385
      Change-Id: I96e6bf50c1418f7df70681afee6e25be40615497
      4db85b50
  13. 01 Nov, 2013 1 commit
  14. 25 Oct, 2013 1 commit
  15. 17 Oct, 2013 1 commit
  16. 15 Oct, 2013 1 commit
  17. 14 Oct, 2013 1 commit
  18. 09 Oct, 2013 1 commit
  19. 08 Oct, 2013 6 commits
  20. 03 Oct, 2013 2 commits
  21. 02 Oct, 2013 1 commit
  22. 30 Sep, 2013 1 commit
  23. 24 Sep, 2013 1 commit
  24. 23 Sep, 2013 1 commit
  25. 22 Sep, 2013 1 commit
  26. 20 Sep, 2013 2 commits
  27. 19 Sep, 2013 3 commits
    • Leon Scroggins III's avatar
    • Leon Scroggins III's avatar
      Add an option on SkImageDecoder to skip writing 0s. · 34835907
      Leon Scroggins III authored
      Only implemented for PNG.
      
      Add a getter and setter, and sets the default to false in the
      constructor. Also copies the setting in copyFieldsToOther.
      
      Fix an indpendent bug where fDitherImage was not being copied in
      copyFieldsToOther.
      
      In SkScaledBitmapSampler::begin, consolidate the settings passed in
      by passing a const reference to the decoder. The decoder can be
      referenced for its settings of dither, unpremultiplied, and now
      skipping writing zeroes. Update callers to use the new API. In png
      decoder, rather than passing around a pointer to an initial
      read of getDitherImage, and potentially changing it, look at the
      field on the decoder itself, and modify it directly. This is a
      change in behavior - now if that same decoder is used to decode
      a different image, the dither setting has changed. I think this is
      okay because A) the typical use case is to use a new decoder for
      each decode, B) we do not make any promises that a decode does not
      change the decoder and C) it makes the code in SkScaledBitmapSampler
      much cleaner.
      
      In SkScaledBitmapScampler, add new row procs for skipping zeroes. Now
      that choosing the row proc has five dimensions (src config, dst config,
      dither, skip writing zeroes, unpremultiplied), use a new method: each
      src/dst combination has a function for choosing the right proc depending
      on the decoder.
      
      SkScaledBitmapScampler::RowProc is now public for convenience.
      
      Remove Sample_Gray_D8888_Unpremul, which is effectively no different
      from Sample_Gray_D8888.
      
      In cases where unpremultiplied was trivial, such as 565 and when
      sampling from gray, decoding may now succeed.
      
      Add a benchmark (currently disabled) for comparing the speed of skipping
      writing zeroes versus not skipping. For this particular image, which is
      mostly transparent pixels, normal decoding took about 3.6 milliseconds,
      while skipping zeroes in the decode took only about 2.5 milliseconds
      (this is on a Nexus 4). Presumably it would be slower on an image
      with a small amount of transparency, but there will be no slowdown
      for an image which reports that it has no transparency.
      
      In SkImageRef_ashmem, always skip writing zeroes, since ashmem
      memory is guaranteed to be initialized to 0.
      
      Add a flag to skip writing zeroes in skimage.
      
      Add a regression test for choosing the rowproc to ensure I did not
      change any behavior accidentally.
      
      BUG:10016979
      Change-Id: I5986ae750b85a9c9d8e3cafeebe904910247de3b
      34835907
    • Derek Sollenberger's avatar