mtklein
0b544ae222
Add SkRacy
...
SkRacy<T> is a zero-overhead wrapper for a T, except it also
silences race warnings when TSAN is running.
Here we apply in several classes. In SkMatrix and SkPathRef,
we use it to opportunistically cache some idempotent work.
In SkPixelRef, we wrap the genIDs. We think the worst that
can happen here is we'll increment the global next-genID a
few times instead of once when we go to get another ID.
BUG=skia:
Committed: https://skia.googlesource.com/skia/+/d5e3e6ae1b3434ad1158f441902ff65f1eeaa3a7
CQ_EXTRA_TRYBOTS=tryserver.skia:Canary-Chrome-Ubuntu13.10-Ninja-x86_64-ToT-Trybot,Canary-Chrome-Win7-Ninja-x86-SharedLib_ToT-Trybot,Test-Ubuntu13.10-GCE-NoGPU-x86_64-Release-TSAN-Trybot
R=reed@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/371363004
2014-07-08 19:37:47 -07:00
mtklein
d3f3e5895e
Revert of Add SkRacy ( https://codereview.chromium.org/371363004/ )
...
Reason for revert:
hidden symbol 'AnnotateBenignRaceSized' in obj/base/third_party/dynamic_annotations/libdynamic_annotations.a(obj/base/third_party/dynamic_annotations/dynamic_annotations.dynamic_annotations.o) is referenced by DSO lib/libblink_platform.so
Original issue's description:
> Add SkRacy
>
> SkRacy<T> is a zero-overhead wrapper for a T, except it also
> silences race warnings when TSAN is running.
>
> Here we apply in several classes. In SkMatrix and SkPathRef,
> we use it to opportunistically cache some idempotent work.
>
> In SkPixelRef, we wrap the genIDs. We think the worst that
> can happen here is we'll increment the global next-genID a
> few times instead of once when we go to get another ID.
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/d5e3e6ae1b3434ad1158f441902ff65f1eeaa3a7
R=reed@google.com , mtklein@chromium.org
TBR=mtklein@chromium.org , reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Author: mtklein@google.com
Review URL: https://codereview.chromium.org/377693005
2014-07-08 14:06:46 -07:00
mtklein
d5e3e6ae1b
Add SkRacy
...
SkRacy<T> is a zero-overhead wrapper for a T, except it also
silences race warnings when TSAN is running.
Here we apply in several classes. In SkMatrix and SkPathRef,
we use it to opportunistically cache some idempotent work.
In SkPixelRef, we wrap the genIDs. We think the worst that
can happen here is we'll increment the global next-genID a
few times instead of once when we go to get another ID.
BUG=skia:
R=reed@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/371363004
2014-07-08 12:30:39 -07:00
reed
9a9eae21ed
change pixelref to not inherit from SkFlattenable
...
If I can "inline" MallocPixelRef unflatten, then I think we can delete this code. The only caller today should be unflattening in the legacy path for bitmaps.
R=robertphillips@google.com
Author: reed@google.com
Review URL: https://codereview.chromium.org/320873003
2014-07-07 14:32:06 -07:00
reed
f0aed97aec
correctly plumb through explicit rowbytes for allocPixels
...
BUG=skia:
R=caryclark@google.com
Author: reed@google.com
Review URL: https://codereview.chromium.org/357073003
2014-07-01 12:48:11 -07:00
reed
e4538f5b46
switch to colortype for deepcopy
...
BUG=skia:
R=robertphillips@google.com , bsalomon@google.com , reed@google.com
Author: reed@chromium.org
Review URL: https://codereview.chromium.org/323283002
2014-06-11 06:09:50 -07:00
commit-bot@chromium.org
eeef0cc49b
Revert of Revert ""Revert of eliminate config param -- it was always self's config ( https://codereview.chromi … ( https://codereview.chromium.org/291163005/ )
...
Reason for revert:
broke 6 webgl/canvas tests in blink (don't know why yet)
https://storage.googleapis.com/chromium-layout-test-archives/WebKit_Mac10_7/27348/layout-test-results/results.html
Original issue's description:
> Revert ""Revert of eliminate config param -- it was always self's config (https://codereview.chromium.org/246513002/ )"""
>
> This reverts commit 3dbceb4f8283b2fb1728d0daf010d036099a2eae.
>
> BUG=skia:
>
> Committed: http://code.google.com/p/skia/source/detail?r=14806
R=bsalomon@google.com , robertphillips@google.com
TBR=bsalomon@google.com , robertphillips@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Author: reed@google.com
Review URL: https://codereview.chromium.org/295093003
git-svn-id: http://skia.googlecode.com/svn/trunk@14826 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-21 15:58:00 +00:00
commit-bot@chromium.org
731b28daaa
Revert ""Revert of eliminate config param -- it was always self's config ( https://codereview.chromium.org/246513002/ )"""
...
This reverts commit 3dbceb4f8283b2fb1728d0daf010d036099a2eae.
BUG=skia:
R=bsalomon@google.com , robertphillips@google.com
Author: reed@google.com
Review URL: https://codereview.chromium.org/291163005
git-svn-id: http://skia.googlecode.com/svn/trunk@14806 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-20 17:08:12 +00:00
reed@google.com
555e74f6fb
"Revert of eliminate config param -- it was always self's config ( https://codereview.chromium.org/246513002/ )""
...
This reverts commit 65b9f33cab9f53821720f982667412e56a340093.
git-svn-id: http://skia.googlecode.com/svn/trunk@14795 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-20 12:39:37 +00:00
commit-bot@chromium.org
a369e36e9d
Revert "Revert of eliminate config param -- it was always self's config ( https://codereview.chromium.org/246513002/ )"
...
TBR=bsalomon@google.com
Author: reed@google.com
Review URL: https://codereview.chromium.org/290883005
git-svn-id: http://skia.googlecode.com/svn/trunk@14785 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-19 17:29:16 +00:00
commit-bot@chromium.org
6e332f768f
Revert of eliminate config param -- it was always self's config ( https://codereview.chromium.org/246513002/ )
...
Reason for revert:
Causes some layout_test failures around texture backed bitmaps. Test names and crash logs accessible via: https://storage.googleapis.com/chromium-layout-test-archives/linux_layout/13845/layout-test-results/results.html
Original issue's description:
> eliminate config param -- it was always self's config
>
> BUG=skia:
> R=bsalomon@google.com
>
> Committed: https://code.google.com/p/skia/source/detail?r=14303
R=reed@google.com
TBR=reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Author: bsalomon@google.com
Review URL: https://codereview.chromium.org/249373003
git-svn-id: http://skia.googlecode.com/svn/trunk@14324 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-23 14:52:14 +00:00
reed@google.com
dcacd5fd5a
eliminate config param -- it was always self's config
...
BUG=skia:
R=bsalomon@google.com
Review URL: https://codereview.chromium.org/246513002
git-svn-id: http://skia.googlecode.com/svn/trunk@14303 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-22 18:22:30 +00:00
reed@google.com
6be31f42ca
remove SK_SUPPORT_LEGACY_ONLOCKPIXELS completely
...
BUG=skia:
Review URL: https://codereview.chromium.org/158893005
git-svn-id: http://skia.googlecode.com/svn/trunk@13382 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-10 15:43:29 +00:00
commit-bot@chromium.org
8b0e8ac5f5
Refactor read and write buffers.
...
Eliminates SkFlattenable{Read,Write}Buffer, promoting SkOrdered{Read,Write}Buffer
a step each in the hierarchy.
What used to be this:
SkFlattenableWriteBuffer -> SkOrderedWriteBuffer
SkFlattenableReadBuffer -> SkOrderedReadBuffer
SkFlattenableReadBuffer -> SkValidatingReadBuffer
is now
SkWriteBuffer
SkReadBuffer -> SkValidatingReadBuffer
Benefits:
- code is simpler, names are less wordy
- the generic SkFlattenableFooBuffer code in SkPaint was incorrect; removed
- write buffers are completely devirtualized, important for record speed
This refactoring was mostly mechanical. You aren't going to find anything
interesting in files with less than 10 lines changed.
BUG=skia:
R=reed@google.com , scroggo@google.com , djsollen@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/134163010
git-svn-id: http://skia.googlecode.com/svn/trunk@13245 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-30 18:58:24 +00:00
reed@google.com
c1587f94a7
change setAlphaType to not modify the pixelref's genID
...
BUG=skia:
R=bsalomon@google.com , halcanary@google.com
Review URL: https://codereview.chromium.org/137263009
git-svn-id: http://skia.googlecode.com/svn/trunk@13219 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-28 16:05:39 +00:00
commit-bot@chromium.org
0e8d0d6cdc
add optional SkAlphaType parameter to notifyPixelsChanged
...
R=scroggo@google.com , halcanary@google.com , robertphillips@google.com
Author: reed@google.com
Review URL: https://codereview.chromium.org/147213002
git-svn-id: http://skia.googlecode.com/svn/trunk@13192 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-27 15:41:07 +00:00
reed@google.com
9ebcac5463
add installPixels
...
BUG=skia:
R=halcanary@google.com
Review URL: https://codereview.chromium.org/143073008
git-svn-id: http://skia.googlecode.com/svn/trunk@13174 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-24 18:53:42 +00:00
reed@google.com
bf0001d047
remove remaining references to Sk64 (obsolete)
...
BUG=
Review URL: https://codereview.chromium.org/136673002
git-svn-id: http://skia.googlecode.com/svn/trunk@13042 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-13 14:53:55 +00:00
reed@google.com
672588b684
change offset to xy for pixelref subsetting
...
BUG=
R=scroggo@google.com
Review URL: https://codereview.chromium.org/105893012
git-svn-id: http://skia.googlecode.com/svn/trunk@12958 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-08 15:42:01 +00:00
reed@google.com
d0419b1fe7
Revert "Revert "Revert "Revert of https://codereview.chromium.org/110593003/ """
...
This reverts commit aaa89649590323fe40f52439d9a9a3376bb3b8ae.
BUG=
Review URL: https://codereview.chromium.org/123223007
git-svn-id: http://skia.googlecode.com/svn/trunk@12910 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-06 17:08:27 +00:00
reed@google.com
7627c657b0
add rowBytes param to setPreLock, in prep for onNewLockPixels change
...
need _win.cc change from https://codereview.chromium.org/124503002/ when this lands in chrome
R=robertphillips@google.com
Review URL: https://codereview.chromium.org/125063002
git-svn-id: http://skia.googlecode.com/svn/trunk@12907 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-06 15:01:48 +00:00
reed@google.com
ba82bd11e2
Revert "Revert "Revert of https://codereview.chromium.org/110593003/ ""
...
This reverts commit 0fef787f33aa38109a0c8427e0098d997efdd5ff.
failed in chrome: https://codereview.chromium.org/124503002/
Review URL: https://codereview.chromium.org/105523008
git-svn-id: http://skia.googlecode.com/svn/trunk@12906 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-06 13:34:39 +00:00
skia.committer@gmail.com
98272d9142
Sanitizing source files in Housekeeper-Nightly
...
git-svn-id: http://skia.googlecode.com/svn/trunk@12901 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-04 07:01:40 +00:00
reed@google.com
927138977f
Revert "Revert of https://codereview.chromium.org/110593003/ "
...
This reverts commit c7abb25b25ba8b97948371d2bf0a2e3e78468f73.
and fixes the ashmem break
BUG=
Review URL: https://codereview.chromium.org/119753010
git-svn-id: http://skia.googlecode.com/svn/trunk@12887 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-03 17:58:57 +00:00
commit-bot@chromium.org
27f890219b
Revert of https://codereview.chromium.org/110593003/
...
Reason for revert: SkImageRef_ashmem doesn't compile
R=halcanary@google.com , scroggo@google.com
TBR=halcanary@google.com , scroggo@google.com
NOTREECHECKS=true
NOTRY=true
BUG=
Author: reed@google.com
Review URL: https://codereview.chromium.org/119753009
git-svn-id: http://skia.googlecode.com/svn/trunk@12884 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-03 16:32:45 +00:00
reed@google.com
f1ce05288a
Add onNewLockPixels, that returns rowbytes and relies on info in pixelref
...
This reverts commit 890a6ec633c1f54891104a072a8964b4c2c81af9.
BUG=
R=scroggo@google.com
Review URL: https://codereview.chromium.org/110593003
git-svn-id: http://skia.googlecode.com/svn/trunk@12883 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-03 16:22:48 +00:00
reed@google.com
33cc989f23
remove SK_SUPPORT_LEGACY_PIXELREF_CONSTRUCTOR and make fInfo const
...
BUG=
R=halcanary@google.com
Review URL: https://codereview.chromium.org/107373004
git-svn-id: http://skia.googlecode.com/svn/trunk@12863 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-02 18:07:46 +00:00
skia.committer@gmail.com
96f5fa02e9
Sanitizing source files in Housekeeper-Nightly
...
git-svn-id: http://skia.googlecode.com/svn/trunk@12685 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-16 07:01:40 +00:00
reed@google.com
bf790232f6
Update all callsites to use info for pixelrefs
...
#define SK_SUPPORT_LEGACY_PIXELREF_CONSTRUCTOR in chrome to keep old API signature (for now)
BUG=
R=scroggo@google.com
Review URL: https://codereview.chromium.org/100723005
git-svn-id: http://skia.googlecode.com/svn/trunk@12677 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-13 19:45:58 +00:00
robertphillips@google.com
0daa1adb03
Reverting r12665 & r12666 (Remove duplicate impl for SkImageInfo flattening) due to Chromium/Blink compilation errors
...
https://codereview.chromium.org/112603003/
git-svn-id: http://skia.googlecode.com/svn/trunk@12667 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-13 15:24:37 +00:00
reed@google.com
93b40594b7
Remvoe duplicate impl for SkImageInfo flattening
...
Add onNewLockPixels
This reverts commit bb8eff6a70c52b7644391cfd4f4d21bf7294a6bf.
BUG=
Review URL: https://codereview.chromium.org/111323005
git-svn-id: http://skia.googlecode.com/svn/trunk@12665 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-13 14:18:14 +00:00
reed@google.com
c83a91f472
Revert "Revert of https://codereview.chromium.org/112783004/ "
...
This reverts commit 3293fe57a7507541e9040eab880dcd82c43881f4.
Conflicts:
src/core/SkScaledImageCache.cpp
BUG=
Review URL: https://codereview.chromium.org/108613005
git-svn-id: http://skia.googlecode.com/svn/trunk@12663 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-13 13:41:14 +00:00
commit-bot@chromium.org
281713e4d4
Revert of https://codereview.chromium.org/112783004/
...
Reason for revert: Failing assert on Android
R=scroggo@google.com , halcanary@google.com , reed@google.com , rmistry@google.com
TBR=halcanary@google.com , reed@google.com , scroggo@google.com
NOTREECHECKS=true
NOTRY=true
Author: robertphillips@google.com
Review URL: https://codereview.chromium.org/93673005
git-svn-id: http://skia.googlecode.com/svn/trunk@12646 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-12 18:08:08 +00:00
reed@google.com
772d8524ce
ensure that we call onUnlock only when we onLock succeeded
...
BUG=
R=halcanary@google.com , scroggo@google.com
Review URL: https://codereview.chromium.org/112783004
git-svn-id: http://skia.googlecode.com/svn/trunk@12642 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-12 16:27:12 +00:00
scroggo@google.com
728f2a6252
Initialize SkPixelRef::fInfo.
...
Still will need to make subclasses call the version of the constructor
that initializes fInfo properly.
R=reed@google.com
Review URL: https://codereview.chromium.org/110843006
git-svn-id: http://skia.googlecode.com/svn/trunk@12639 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-12 15:19:30 +00:00
reed@google.com
398337b3a5
Revert "remvoe duplicate impl for SkImageInfo flattening"
...
Reason: breaks chrome_mac_tests which still have non-imageinfo constructors
This reverts commit a06b8cf60b39bda93e9ef1a73579007b2b930d29.
BUG=
Review URL: https://codereview.chromium.org/103033005
git-svn-id: http://skia.googlecode.com/svn/trunk@12631 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-11 21:22:39 +00:00
reed@google.com
a0d183d891
Revert "Revert of https://codereview.chromium.org/108773003/ "
...
This reverts commit 947e6a3142af66b750f1247ef933b11ed8455dd4.
BUG=
Review URL: https://codereview.chromium.org/112963003
git-svn-id: http://skia.googlecode.com/svn/trunk@12630 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-11 21:15:58 +00:00
commit-bot@chromium.org
ff9c6c92e5
Revert of https://codereview.chromium.org/108773003/
...
Reason for revert: breaks chrome-mac-tests
TBR=
NOTREECHECKS=true
NOTRY=true
Author: reed@google.com
Review URL: https://codereview.chromium.org/113193003
git-svn-id: http://skia.googlecode.com/svn/trunk@12629 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-11 20:55:41 +00:00
reed@google.com
f3aead2829
remvoe duplicate impl for SkImageInfo flattening
...
Revert "Revert "PixelRef now returns (nearly) everything that is currently in SkBitmap. The goal is to refactor bitmap later to remove redundancy, and more interestingly, remove the chance for a disconnect between the actual (pixelref) rowbytes and config, and the one claimed by the bitmap.""""""
This reverts commit eabd6b2ed4e494b323c08f32358f45950a0368c3.
BUG=
Review URL: https://codereview.chromium.org/108773003
git-svn-id: http://skia.googlecode.com/svn/trunk@12624 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-11 18:38:46 +00:00
reed@google.com
6a32add491
Revert "PixelRef now returns (nearly) everything that is currently in SkBitmap. The goal is to refactor bitmap later to remove redundancy, and more interestingly, remove the chance for a disconnect between the actual (pixelref) rowbytes and config, and the one claimed by the bitmap."""""
...
This reverts commit d08eca87a0bef10112a211de540f89656a80b86a.
BUG=
Review URL: https://codereview.chromium.org/108303003
git-svn-id: http://skia.googlecode.com/svn/trunk@12623 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-11 18:19:10 +00:00
reed@google.com
6965a0a2df
PixelRef now returns (nearly) everything that is currently in SkBitmap. The goal is to refactor bitmap later to remove redundancy, and more interestingly, remove the chance for a disconnect between the actual (pixelref) rowbytes and config, and the one claimed by the bitmap.""""
...
BUG=
Review URL: https://codereview.chromium.org/110503003
git-svn-id: http://skia.googlecode.com/svn/trunk@12622 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-11 18:04:56 +00:00
reed@google.com
9230ea2971
make info real in SkPixelRef, and add bitmap::asImageInfo
...
BUG=
R=scroggo@google.com
Review URL: https://codereview.chromium.org/108663004
git-svn-id: http://skia.googlecode.com/svn/trunk@12586 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-09 22:01:03 +00:00
reed@google.com
b0eb102ed6
remove explicit when we have 2 args
...
git-svn-id: http://skia.googlecode.com/svn/trunk@12553 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-06 22:16:10 +00:00
reed@google.com
f1715706f7
add SK_SUPPORT_LEGACY_PIXELREF_CONSTRUCTOR, initially always on
...
BUG=
Review URL: https://codereview.chromium.org/106183007
git-svn-id: http://skia.googlecode.com/svn/trunk@12552 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-06 22:07:17 +00:00
reed@google.com
2ebc10dd12
Revert "Revert "Revert "PixelRef now returns (nearly) everything that is currently in SkBitmap. The goal is to refactor bitmap later to remove redundancy, and more interestingly, remove the chance for a disconnect between the actual (pixelref) rowbytes and config, and the one claimed by the bitmap."""
...
This reverts commit 5f035e90d6dea0139a4f204b634e7b7b3b4976d7.
Reverting because it breaks chrome/blink due to new SkPixelRef constructor arg.
BUG=
Review URL: https://codereview.chromium.org/108993002
git-svn-id: http://skia.googlecode.com/svn/trunk@12551 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-06 21:43:05 +00:00
reed@google.com
473f0aa2bb
Revert "Revert "PixelRef now returns (nearly) everything that is currently in SkBitmap. The goal is to refactor bitmap later to remove redundancy, and more interestingly, remove the chance for a disconnect between the actual (pixelref) rowbytes and config, and the one claimed by the bitmap.""
...
This reverts commit 4174afb18a9746bbad2a06c0ec2d4ad35f72d790.
BUG=
Review URL: https://codereview.chromium.org/108723003
git-svn-id: http://skia.googlecode.com/svn/trunk@12547 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-06 20:31:45 +00:00
reed@google.com
5b132b28da
Revert "PixelRef now returns (nearly) everything that is currently in SkBitmap. The goal is to refactor bitmap later to remove redundancy, and more interestingly, remove the chance for a disconnect between the actual (pixelref) rowbytes and config, and the one claimed by the bitmap."
...
This reverts commit 154e08b2f5904ef533da694e3510befcb9a3f3e2.
revert due to warnings
Review URL: https://codereview.chromium.org/108513003
git-svn-id: http://skia.googlecode.com/svn/trunk@12538 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-06 18:51:08 +00:00
reed@google.com
3e89524e74
PixelRef now returns (nearly) everything that is currently in SkBitmap. The goal is to refactor bitmap later to remove redundancy, and more interestingly, remove the chance for a disconnect between the actual (pixelref) rowbytes and config, and the one claimed by the bitmap.
...
R=mtklein@google.com , scroggo@google.com
Review URL: https://codereview.chromium.org/68973005
git-svn-id: http://skia.googlecode.com/svn/trunk@12537 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-06 18:41:33 +00:00
commit-bot@chromium.org
cd3b15ca63
Fixed bad bitmap size crashes
...
There were 2 issues :
1 ) If the size of an SkBitmap's underlying SkPixelRef's alocated memory is too small to fit the bitmap, then the deserialization will now check this and set an error appropriately.
2 ) If a device fails to allocate its pixels, the device will be deleted and NULL will be returned to avoid attempting to draw on a bad device.
BUG=
R=senorblanco@chromium.org , reed@google.com , sugoi@google.com , halcanary@google.com , mtklein@google.com
Author: sugoi@chromium.org
Review URL: https://codereview.chromium.org/92793002
git-svn-id: http://skia.googlecode.com/svn/trunk@12484 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-04 17:06:49 +00:00
commit-bot@chromium.org
50a3043194
We want to give SkPixelRef a way to signal over to GrResourceCache that it's become pointless to keep around textures based on that SkPixelRef when its pixels change, so that it can be a good citizen and free those textures.
...
This adds an invalidation listener mechanism to SkPixelRef to let it send this message while still staying ignorant of who's listening.
These messages are tricky to deliver. The SkPixelRefs they originates from and the GrResourceCaches they ultimately end up at may be on different threads; neither class is threadsafe; their object lifetimes are totally independent; it's a many-senders-to-many-receivers relation; and neither codebase should really know about the other.
So I've added a per-message-type global message bus to broadcast messages to threadsafe inboxes. Anyone can post() a message, which will show up in all the inboxes of that type, read whenever the inbox's owner calls poll(). The implementation is _dumb_; it can be improved in several dimensions (inbox size limits, lock-free message delivery) if we find the need.
I took some care to make sure not to send the invalidation message for any SkPixelRef that's sharing a generation ID with another SkPixelRef.
BUG=
R=bsalomon@google.com , scroggo@google.com , reed@google.com
Author: mtklein@google.com
Review URL: https://codereview.chromium.org/26734003
git-svn-id: http://skia.googlecode.com/svn/trunk@11949 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-10-24 17:44:27 +00:00