Commit Graph

39 Commits

Author SHA1 Message Date
reed
ed458688e2 remove SK_SUPPORT_LEGACY_PIXELREF_UNFLATTENABLE code
TBR=

Author: reed@google.com

Review URL: https://codereview.chromium.org/387313004
2014-07-14 09:21:31 -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
commit-bot@chromium.org
2c4e75cc3c Remove offset to SkMallocPixelRef::NewWithData - use SkData::NewSubset instead.
R=scroggo@google.com, mtklein@google.com, reed@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/243483002

git-svn-id: http://skia.googlecode.com/svn/trunk@14289 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-21 21:08:14 +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
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
commit-bot@chromium.org
227c246731 Resolve a few memory leaks in tests.
Purge the global scaled image cache after use in tests.  The cache was
right to hold on to the pixels indefinitely, but this change makes it
easier to run down actual memory leaks.

Add SK_DECLARE_INST_COUNT to several classes.

BUG=skia:
R=reed@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/145443004

git-svn-id: http://skia.googlecode.com/svn/trunk@13171 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-24 18:33:07 +00:00
commit-bot@chromium.org
3aa7a02b65 SK_API SkMallocPixelRef
Motivation: make https://codereview.chromium.org/138393002/ work.

R=reed@google.com, djsollen@google.com, bsalomon@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/135853019

git-svn-id: http://skia.googlecode.com/svn/trunk@13106 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-16 14:46:16 +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
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
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
halcanary@google.com
1bed687f6b Add a release procedure to SkMallocPixelRef; remove SkDataPixelRef
This works in a way that is similar to SkData.

SkMallocPixelRef::NewWithProc

    Motivation: Chrome has a ETC1PixelRef which calls delete[] on the
    pixles on destruction.  There is no reason for them to almost
    duplicate our class, when we can provide them a more flexible
    class.  Example use:

      static void delete_uint8_proc(void* ptr, void*) {
        delete[] static_cast<uint8_t>(ptr);
      }
      SkPixelRef* new_delete_pixref(const SkImageInfo& info,
                                    SkColorTable* ctable) {
        size_t rb = info.minRowBytes();
        return SkMallocPixelRef::NewWithProc(
          info, rb, ctable,
          new uint8_t[info.getSafeSize(rb)],
          delete_uint8_proc, NULL);
      }

SkMallocPixelRef::NewWithData

	Motivation:  This allows up to eliminate SkDataPixelRef.  We
    modified SkImage_Raster to use MallocPixelRef rather than
    SkDataPixlRef.

Also:  Unit tests in tests/MallocPixelRefTest.

BUG=
R=reed@google.com

Review URL: https://codereview.chromium.org/106883006

git-svn-id: http://skia.googlecode.com/svn/trunk@12861 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-01-02 17:29:28 +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
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
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
rmistry@google.com
fbfcd56021 Result of running tools/sanitize_source_files.py (which was added in https://codereview.appspot.com/6465078/)
This CL is part I of IV (I broke down the 1280 files into 4 CLs).
Review URL: https://codereview.appspot.com/6485054

git-svn-id: http://skia.googlecode.com/svn/trunk@5262 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-08-23 18:09:54 +00:00
djsollen@google.com
c84b8335ee Reapply "Remove Bitmaps Raw Pixel Support."
This CL reapplies r4722. Now that we have addressed the issues
in Chrome tests that were causing asserts to be fired.

Review URL: https://codereview.appspot.com/6452050

git-svn-id: http://skia.googlecode.com/svn/trunk@4804 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-27 13:41:44 +00:00
djsollen@google.com
56f8f338b6 Revert "Remove Bitmaps Raw Pixel Support."
BUG=
TEST=

Review URL: https://codereview.appspot.com/6449049

git-svn-id: http://skia.googlecode.com/svn/trunk@4780 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-26 14:48:52 +00:00
djsollen@google.com
c1d1f414a0 Remove Bitmaps Raw Pixel Support.
bitmap.setPixels(...) now creates a mutable pixelRef instead
of just setting fPixels.
Review URL: https://codereview.appspot.com/6419044

git-svn-id: http://skia.googlecode.com/svn/trunk@4722 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-07-23 16:54:30 +00:00
djsollen@google.com
54924243c1 Cleanup code related to SkFlattenable::flatten()
The following changes were made by this CL:

1. Make flatten() a protected method as callers should use
   SkFlattenableWriteBuffer to flatten an object
2. Make flatten a const method (including subclasses)
3. Mark subclass implementation of flatten with SK_OVERRIDE
4. Ensure overridden flatten impls call their parent
5. Remove no-op implementations of flatten from subclasses

Additionally, if necessary the unflattening constructor was
also moved to the protected section of the subclasses
header if it was not already there.

git-svn-id: http://skia.googlecode.com/svn/trunk@3540 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-03-29 15:18:04 +00:00
djsollen@google.com
5370cd969d Consolidate PixelRef flattables with the standard impl
The flatten method on these functions can no longer be
const as SkFlattenables declaration is not const and 
would result in the const methods only being called when
the reference to the object was const.
Review URL: https://codereview.appspot.com/5941043

git-svn-id: http://skia.googlecode.com/svn/trunk@3533 2bbb7eff-a529-9590-31e7-b0007b416f81
2012-03-28 20:47:01 +00:00
caryclark@google.com
d26147adbb add optional manual global initialization
M    include/effects/SkAvoidXfermode.h
M    include/effects/SkDiscretePathEffect.h
M    include/effects/Sk1DPathEffect.h
M    include/effects/Sk2DPathEffect.h
M    include/effects/SkBlurDrawLooper.h
M    include/effects/SkPixelXorXfermode.h
M    include/effects/SkDashPathEffect.h
M    include/effects/SkColorMatrixFilter.h
M    include/effects/SkEmbossMaskFilter.h
M    include/effects/SkLayerDrawLooper.h
M    include/effects/SkGroupShape.h
M    include/effects/SkBlurImageFilter.h
M    include/effects/SkRectShape.h
A    include/effects/SkEffects.h
M    include/effects/SkCornerPathEffect.h
M    include/effects/SkGradientShader.h
M    include/effects/SkBlurMaskFilter.h
M    include/effects/SkLayerRasterizer.h
M    include/core/SkMallocPixelRef.h
M    include/core/SkFlattenable.h
M    include/core/SkShape.h
M    include/core/SkPixelRef.h
M    include/core/SkGraphics.h
M    include/core/SkPathEffect.h
M    include/core/SkPostConfig.h
M    include/core/SkXfermode.h
M    include/core/SkColorFilter.h
M    include/images/SkFlipPixelRef.h
M    include/images/SkImageRef_GlobalPool.h
M    src/effects/SkDashPathEffect.cpp
M    src/effects/SkColorMatrixFilter.cpp
M    src/effects/SkBlurImageFilter.cpp
M    src/effects/SkGroupShape.cpp
M    src/effects/SkCornerPathEffect.cpp
M    src/effects/SkGradientShader.cpp
M    src/effects/SkBlurMaskFilter.cpp
M    src/effects/SkAvoidXfermode.cpp
M    src/effects/Sk2DPathEffect.cpp
M    src/effects/SkBlurDrawLooper.cpp
M    src/effects/SkPixelXorXfermode.cpp
M    src/effects/SkColorFilters.cpp
M    src/effects/SkLayerDrawLooper.cpp
M    src/effects/SkRectShape.cpp
A    src/effects/SkEffects.cpp
M    src/effects/SkLayerRasterizer.cpp
M    src/effects/SkDiscretePathEffect.cpp
M    src/effects/Sk1DPathEffect.cpp
A    src/effects/SkEffects_none.cpp
M    src/core/SkPixelRef.cpp
M    src/core/SkGraphics.cpp
M    src/core/SkFlattenable.cpp
M    src/core/SkBitmapProcShader.h
M    src/core/SkPathEffect.cpp
M    src/core/SkShape.cpp
M    src/core/SkXfermode.cpp
M    src/core/SkMallocPixelRef.cpp
M    src/core/SkBitmapProcShader.cpp
M    src/images/SkFlipPixelRef.cpp
M    src/images/SkImageRef_GlobalPool.cpp
A    src/ports/SkGlobalInitialization_chromium.cpp
M    src/ports/SkImageRef_ashmem.h
M    src/ports/SkImageRef_ashmem.cpp
A    src/ports/SkGlobalInitialization_default.cpp
M    gyp/effects.gyp
M    gyp/tools.gyp
M    gyp/ports.gyp



git-svn-id: http://skia.googlecode.com/svn/trunk@2876 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-12-15 14:16:43 +00:00
epoger@google.com
ec3ed6a5eb Automatic update of all copyright notices to reflect new license terms.
I have manually examined all of these diffs and restored a few files that
seem to require manual adjustment.

The following files still need to be modified manually, in a separate CL:

android_sample/SampleApp/AndroidManifest.xml
android_sample/SampleApp/res/layout/layout.xml
android_sample/SampleApp/res/menu/sample.xml
android_sample/SampleApp/res/values/strings.xml
android_sample/SampleApp/src/com/skia/sampleapp/SampleApp.java
android_sample/SampleApp/src/com/skia/sampleapp/SampleView.java
experimental/CiCarbonSampleMain.c
experimental/CocoaDebugger/main.m
experimental/FileReaderApp/main.m
experimental/SimpleCocoaApp/main.m
experimental/iOSSampleApp/Shared/SkAlertPrompt.h
experimental/iOSSampleApp/Shared/SkAlertPrompt.m
experimental/iOSSampleApp/SkiOSSampleApp-Base.xcconfig
experimental/iOSSampleApp/SkiOSSampleApp-Debug.xcconfig
experimental/iOSSampleApp/SkiOSSampleApp-Release.xcconfig
gpu/src/android/GrGLDefaultInterface_android.cpp
gyp/common.gypi
gyp_skia
include/ports/SkHarfBuzzFont.h
include/views/SkOSWindow_wxwidgets.h
make.bat
make.py
src/opts/memset.arm.S
src/opts/memset16_neon.S
src/opts/memset32_neon.S
src/opts/opts_check_arm.cpp
src/ports/SkDebug_brew.cpp
src/ports/SkMemory_brew.cpp
src/ports/SkOSFile_brew.cpp
src/ports/SkXMLParser_empty.cpp
src/utils/ios/SkImageDecoder_iOS.mm
src/utils/ios/SkOSFile_iOS.mm
src/utils/ios/SkStream_NSData.mm
tests/FillPathTest.cpp
Review URL: http://codereview.appspot.com/4816058

git-svn-id: http://skia.googlecode.com/svn/trunk@1982 2bbb7eff-a529-9590-31e7-b0007b416f81
2011-07-28 14:26:00 +00:00
reed@android.com
f2b98d67dc merge with changes for GPU backend
git-svn-id: http://skia.googlecode.com/svn/trunk@637 2bbb7eff-a529-9590-31e7-b0007b416f81
2010-12-20 18:26:13 +00:00
reed@android.com
8a1c16ff38 grab from latest android
git-svn-id: http://skia.googlecode.com/svn/trunk@27 2bbb7eff-a529-9590-31e7-b0007b416f81
2008-12-17 15:59:43 +00:00