1. 14 Aug, 2014 1 commit
    • Derek Sollenberger's avatar
      Merge changes from Skia's m37 branch into lmp-dev. · 4e4a89da
      Derek Sollenberger authored
          This merge includes the following CLs...
          0d78ac2  Set maximum output size for scaled-image-cache images
          0c1c911  Adding 64 bit checks
          f2d87ba  Get additional DW font metrics when available.
      
      Bug: 17024392
      Change-Id: I7956f50e5b95b1e012cf56614b12f1d834b423c1
      4e4a89da
  2. 20 Jun, 2014 3 commits
  3. 18 Jun, 2014 1 commit
  4. 17 Jun, 2014 1 commit
    • mtklein's avatar
      Add EXPERIMENTAL_beginRecording() for SkRecord-based recording. · 887f3979
      mtklein authored
      The interesting stuff is in SkPictureRecorder.{h,cpp}.  The rest is mostly moving SkRecord from its own directories into core to avoid circular dependencies in GYP.
      
      After plumbing SkRecord all the way through in Picture, I'll delete its old entry point include/record/SkRecording.h.  For now it and record.gypi need to stay where they are to keep Chrome building.
      
      BUG=skia:
      R=reed@google.com, mtklein@google.com
      
      Author: mtklein@chromium.org
      
      Review URL: https://codereview.chromium.org/331573004
      887f3979
  5. 12 Jun, 2014 1 commit
  6. 11 Jun, 2014 1 commit
  7. 09 Jun, 2014 1 commit
    • cdalton's avatar
      Generate path names on the client side · 51192344
      cdalton authored
      Pre-allocates a range of path names and manages allocations within
      that range on the client side. This allows us to generate new path
      objects in a feed-forward manner that doesn't require round trips to
      the GL server.
      
      BUG=skia:
      R=bsalomon@google.com, markkilgard@gmail.com
      
      Author: cdalton@nvidia.com
      
      Review URL: https://codereview.chromium.org/304403003
      51192344
  8. 06 Jun, 2014 1 commit
  9. 30 May, 2014 1 commit
  10. 29 May, 2014 1 commit
  11. 05 May, 2014 1 commit
    • commit-bot@chromium.org's avatar
      Add pattern matchers for SkRecord · 73fffeb8
      commit-bot@chromium.org authored
      This is a mid-level library for finding patterns of commands in an SkRecord.  At the API level, it's a bit regex inspired.  Some examples:
       - Pattern1<Is<DrawRect>> matches a single DrawRect
      
       - Pattern1<Star<Is<DrawRect>>> matches 0 or more DrawRects
      
       - Pattern2<Is<ClipRect>, Is<DrawRect>> matches a single clip rect followed by a single draw rect
      
        - Pattern3<Is<Save>, Star<IsDraw>, Is<Restore>> matches a single Save, followed by any number of Draws, followed by Restore
      
       - Pattern1<Or<Is<DrawRect>, Is<ClipRect>>> matches a DrawRect or a ClipRect
      
       - Pattern1<Not<Is<ClipRect>>> matches a command that's notClipRect.
      
      Once you have a pattern, you can call .search() on it to step through ranges of matching commands.  This means patterns can replace most of the custom iteration logic for optimization passes: the generic pattern searching steps through all the optimization candidates, which optimization-specific code further inspects and mutates.
      
      SkRecordTraits is now unused.  Bye bye!
      
      Generated code and performance of SkRecordOpts is very similar to what it was before.  (I had to use SK_ALWAYS_INLINE in a few places to make this so.)
      
      BUG=skia:2378
      R=fmalita@chromium.org, bungeman@google.com, mtklein@google.com
      
      Author: mtklein@chromium.org
      
      Review URL: https://codereview.chromium.org/263063002
      
      git-svn-id: http://skia.googlecode.com/svn/trunk@14582 2bbb7eff-a529-9590-31e7-b0007b416f81
      73fffeb8
  12. 30 Apr, 2014 1 commit
  13. 28 Apr, 2014 1 commit
  14. 22 Apr, 2014 1 commit
  15. 21 Apr, 2014 1 commit
  16. 14 Apr, 2014 1 commit
  17. 10 Apr, 2014 2 commits
  18. 09 Apr, 2014 1 commit
  19. 08 Apr, 2014 3 commits
  20. 21 Mar, 2014 1 commit
  21. 18 Mar, 2014 1 commit
  22. 17 Mar, 2014 1 commit
  23. 07 Mar, 2014 2 commits
    • commit-bot@chromium.org's avatar
      Add SkCanvas::writePixels that takes info+pixels directly · 4cd9e216
      commit-bot@chromium.org authored
      add corresponding methods to device (w/ diff name to avoid colliding with exising virtuals)
      
      BUG=skia:
      R=bsalomon@google.com, robertphillips@google.com, junov@google.com, junov@chromium.org
      
      Author: reed@google.com
      
      Review URL: https://codereview.chromium.org/180113010
      
      git-svn-id: http://skia.googlecode.com/svn/trunk@13697 2bbb7eff-a529-9590-31e7-b0007b416f81
      4cd9e216
    • commit-bot@chromium.org's avatar
      Add a class to allocate small objects w/o extra calls to new. · a5572e5b
      commit-bot@chromium.org authored
      Add SkSmallAllocator, a template for allocating small (as defined by the
      instantiation) objects without extra calls to new. Add a helper macro to
      make using it simple.
      
      Remove SkTemplatesPriv.h, whose behavior is replaced by SkSmallAllocator.
      The old SK_PLACEMENT_NEW had the following drawbacks:
      - Easily confused with SkNEW_PLACEMENT.
      - Requires passing around lots of void*s along with the storageSize.
      - Requires using a separate class for deleting it.
      - We had multiple ways Auto objects for deleting in different places.
      - It always did a straight heap allocation on Windows, meaning Windows
        did not get any advantages from the confusing code.
      The new SkSmallAllocator simplifies things:
      - It is clear about what it does.
      - It takes care of the deletion in one place that is automatically
        handled.
      
      Further, the new class can be used to create more than one object. This
      is in preparation for BUG=skia:1976, for which we would like to create
      a new object without extra heap allocations. The plan is to create both
      the blitter and the new object on the stack using the SkSmallAllocator.
      
      Add a new test for SkSmallAllocator.
      
      SkShader.h:
      Move the private version of CreateBitmapShader to SkBitmapProcShader
      (which already has the implementation) and remove the friend class
      (which was only used to call this private function). This allows
      SkSmallAllocator to reside in the private src/ directory.
      
      SkBitmapProcShader:
      Move CreateBitmapShader and the macro for the storage size here. With
      the macro in a (private) header, the (private) headers with function
      declarations (which now depend on the storage size used) can see the
      macro.
      Use SkSmallAllocator in CreateBitmapShader.
      Change the macro to kBlitterStorageByteCount, since SkSmallAllocator
      takes a byte count as its template parameter.
      
      SkBlitter:
      Use the SkSmallAllocator.
      Remove Sk3DShader::fKillProc and SkAutoCallProc. Both of their
      behaviors have been moved into SkSmallAllocator (SkAutoCallProc was
      unnecessary anyway, because the only time we ever used it we also
      called detach(), so its auto behavior never happened).
      Create the Sk3DShader on the stack, if there's room.
      Remove the helper version of Choose, which was unused.
      
      SmallAllocatorTest:
      Test for the new class.
      
      The rest:
      Use SkSmallAllocator.
      
      BUG=skia:1976
      R=reed@google.com, mtklein@google.com
      
      Author: scroggo@google.com
      
      Review URL: https://codereview.chromium.org/179343005
      
      git-svn-id: http://skia.googlecode.com/svn/trunk@13696 2bbb7eff-a529-9590-31e7-b0007b416f81
      a5572e5b
  24. 05 Mar, 2014 1 commit
  25. 03 Mar, 2014 1 commit
  26. 27 Feb, 2014 1 commit
  27. 26 Feb, 2014 1 commit
    • commit-bot@chromium.org's avatar
      Let DM run unit tests. · 0dc5bd14
      commit-bot@chromium.org authored
        - refactor GYPs and a few flags
        - make GPU tests grab a thread-local GrContextFactory when needed as we do in DM for GMs
        - add a few more UI features to make DM more like tests
      
      I believe this makes the program 'tests' obsolete.
      
      It should be somewhat faster to run the two sets together than running the old binaries serially:
        - serial: tests 20s (3m18s CPU), dm 21s (3m01s CPU)
        - together: 27s (6m21s CPU)
      
      Next up is to incorporate benches.  I'm only planning there on a single-pass sanity check, so that won't obsolete the program 'bench' just yet.
      
      Tested: out/Debug/tests && out/Debug/dm && echo ok
      BUG=skia:
      
      Committed: http://code.google.com/p/skia/source/detail?r=13586
      
      R=reed@google.com, bsalomon@google.com, mtklein@google.com, tfarina@chromium.org
      
      Author: mtklein@chromium.org
      
      Review URL: https://codereview.chromium.org/178273002
      
      git-svn-id: http://skia.googlecode.com/svn/trunk@13592 2bbb7eff-a529-9590-31e7-b0007b416f81
      0dc5bd14
  28. 25 Feb, 2014 2 commits
    • commit-bot@chromium.org's avatar
      Revert of Let DM run unit tests. (https://codereview.chromium.org/178273002/) · 79e13260
      commit-bot@chromium.org authored
      Reason for revert:
      broke tests
      
      Original issue's description:
      > Let DM run unit tests.
      >   - refactor GYPs and a few flags
      >   - make GPU tests grab a thread-local GrContextFactory when needed as we do in DM for GMs
      >   - add a few more UI features to make DM more like tests
      >
      > I believe this makes the program 'tests' obsolete.
      >
      > It should be somewhat faster to run the two sets together than running the old binaries serially:
      >   - serial: tests 20s (3m18s CPU), dm 21s (3m01s CPU)
      >   - together: 27s (6m21s CPU)
      >
      > Next up is to incorporate benches.  I'm only planning there on a single-pass sanity check, so that won't obsolete the program 'bench' just yet.
      >
      > Tested: out/Debug/tests && out/Debug/dm && echo ok
      > BUG=skia:
      >
      > Committed: http://code.google.com/p/skia/source/detail?r=13586
      
      R=bsalomon@google.com, mtklein@google.com, tfarina@chromium.org, mtklein@chromium.org
      TBR=bsalomon@google.com, mtklein@chromium.org, mtklein@google.com, tfarina@chromium.org
      NOTREECHECKS=true
      NOTRY=true
      BUG=skia:
      
      Author: reed@google.com
      
      Review URL: https://codereview.chromium.org/179403010
      
      git-svn-id: http://skia.googlecode.com/svn/trunk@13587 2bbb7eff-a529-9590-31e7-b0007b416f81
      79e13260
    • commit-bot@chromium.org's avatar
      Let DM run unit tests. · 6bd250a2
      commit-bot@chromium.org authored
        - refactor GYPs and a few flags
        - make GPU tests grab a thread-local GrContextFactory when needed as we do in DM for GMs
        - add a few more UI features to make DM more like tests
      
      I believe this makes the program 'tests' obsolete.
      
      It should be somewhat faster to run the two sets together than running the old binaries serially:
        - serial: tests 20s (3m18s CPU), dm 21s (3m01s CPU)
        - together: 27s (6m21s CPU)
      
      Next up is to incorporate benches.  I'm only planning there on a single-pass sanity check, so that won't obsolete the program 'bench' just yet.
      
      Tested: out/Debug/tests && out/Debug/dm && echo ok
      BUG=skia:
      R=reed@google.com, bsalomon@google.com, mtklein@google.com, tfarina@chromium.org
      
      Author: mtklein@chromium.org
      
      Review URL: https://codereview.chromium.org/178273002
      
      git-svn-id: http://skia.googlecode.com/svn/trunk@13586 2bbb7eff-a529-9590-31e7-b0007b416f81
      6bd250a2