aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
Commit message (Collapse)AuthorAge
* flush after every print in windowsGravatar commit-bot@chromium.org2013-10-09
| | | | | | | | | | R=djsollen@google.com, reed@google.com, epoger@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/26680004 git-svn-id: http://skia.googlecode.com/svn/trunk@11670 2bbb7eff-a529-9590-31e7-b0007b416f81
* ARM Skia NEON patches - 28 - Xfermode: SIMD modeprocsGravatar commit-bot@chromium.org2013-10-09
| | | | | | | | | | | | | | | | | | | | | | Xfermode: allow for SIMD modeprocs This patch introduces the ability to have SIMD Xfermode modeprocs. In the NEON implementation, SIMD modeprocs will process 8 pixels at a time. Signed-off-by: Kévin PETIT <kevin.petit@arm.com> BUG= Committed: http://code.google.com/p/skia/source/detail?r=11654 R=djsollen@google.com, mtklein@google.com, reed@google.com Author: kevin.petit.arm@gmail.com Review URL: https://codereview.chromium.org/23644006 git-svn-id: http://skia.googlecode.com/svn/trunk@11669 2bbb7eff-a529-9590-31e7-b0007b416f81
* Implement filling a path with nv_path_rendering coverGravatar commit-bot@chromium.org2013-10-09
| | | | | | | | | | | | | | | | | | Implement filling a path with nv_path_rendering cover functionality. The nv_path_rendering cover can be used if the fill is non-inverted and the draw operation does not require use of vertex shaders. Moves code for the inverted fill from GrStencilAndCoverPathRenderer down to GrGpuGL. R=bsalomon@google.com, markkilgard@gmail.com, cdalton@nvidia.com Author: kkinnunen@nvidia.com Review URL: https://codereview.chromium.org/22686002 git-svn-id: http://skia.googlecode.com/svn/trunk@11667 2bbb7eff-a529-9590-31e7-b0007b416f81
* try uping the cache-count-limit to see if it speeds up bench-picturesGravatar reed@google.com2013-10-09
| | | | | | | | BUG= Review URL: https://codereview.chromium.org/25118003 git-svn-id: http://skia.googlecode.com/svn/trunk@11663 2bbb7eff-a529-9590-31e7-b0007b416f81
* Improve SkScalerContext_GDI::generateCharToGlyph for non-BMP code points.Gravatar bungeman@google.com2013-10-08
| | | | | | | | | | Sometimes, when ScriptShape is presented with a surrogate pair which does not map to a glyph, it returns two space glyphs instead of .notdef (0). Detect this class of issues and handle appropriately. git-svn-id: http://skia.googlecode.com/svn/trunk@11660 2bbb7eff-a529-9590-31e7-b0007b416f81
* Allow sampling GIF images during decode.Gravatar commit-bot@chromium.org2013-10-08
| | | | | | | | | | | | | | | | | | | | | | SkScaledBitmapSampler: Add a mode for sampling rows out of order, used by GIF decoder for interlaced images. Add a getter for the X sampling rate. SkImageDecoder_libgif: Respect the sampleSize set on SkImageDecoder. skimage_main: Provide an option to set a sample size. BUG=https://b.corp.google.com/issue?id=8999690 R=reed@google.com, djsollen@google.com, halcanary@google.com Author: scroggo@google.com Review URL: https://codereview.chromium.org/25354004 git-svn-id: http://skia.googlecode.com/svn/trunk@11659 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix uninitialized memory accessGravatar robertphillips@google.com2013-10-08
| | | | | | | | https://codereview.chromium.org/26529002/ git-svn-id: http://skia.googlecode.com/svn/trunk@11658 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert "ARM Skia NEON patches - 28 - Xfermode: SIMD modeprocs"Gravatar djsollen@google.com2013-10-08
| | | | | | | | This reverts http://code.google.com/p/skia/source/detail?r=11654 Review URL: https://codereview.chromium.org/26340010 git-svn-id: http://skia.googlecode.com/svn/trunk@11655 2bbb7eff-a529-9590-31e7-b0007b416f81
* ARM Skia NEON patches - 28 - Xfermode: SIMD modeprocsGravatar commit-bot@chromium.org2013-10-08
| | | | | | | | | | | | | | | | | | | Xfermode: allow for SIMD modeprocs This patch introduces the ability to have SIMD Xfermode modeprocs. In the NEON implementation, SIMD modeprocs will process 8 pixels at a time. Signed-off-by: Kévin PETIT <kevin.petit@arm.com> BUG= R=djsollen@google.com, mtklein@google.com, reed@google.com Author: kevin.petit.arm@gmail.com Review URL: https://codereview.chromium.org/23644006 git-svn-id: http://skia.googlecode.com/svn/trunk@11654 2bbb7eff-a529-9590-31e7-b0007b416f81
* Update #if to #ifdef for consistencyGravatar commit-bot@chromium.org2013-10-08
| | | | | | | | | | R=mtklein@google.com Author: djsollen@google.com Review URL: https://codereview.chromium.org/26495002 git-svn-id: http://skia.googlecode.com/svn/trunk@11653 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix memory leak in SkPDFRasterizerGravatar robertphillips@google.com2013-10-08
| | | | | | | | https://codereview.chromium.org/26373005/ git-svn-id: http://skia.googlecode.com/svn/trunk@11652 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix ambiguity in API if no matching system language is foundGravatar commit-bot@chromium.org2013-10-07
| | | | | | | | | | R=reed@google.com, wangxianzhu@chromium.org Author: djsollen@google.com Review URL: https://codereview.chromium.org/26325003 git-svn-id: http://skia.googlecode.com/svn/trunk@11641 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix for blinking/corrupted text in Canvas 2D.Gravatar commit-bot@chromium.org2013-10-07
| | | | | | | | | | | | | | Ensure that we update the drawToken for a glyph's plot every time it is used, not just when the glyph is first added. BUG=303803 R=junov@chromium.org, bsalomon@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/26253003 git-svn-id: http://skia.googlecode.com/svn/trunk@11637 2bbb7eff-a529-9590-31e7-b0007b416f81
* Luminance-to-alpha color filter (SkLumaColorFilter).Gravatar commit-bot@chromium.org2013-10-07
| | | | | | | | | | | | | Adding a color filter luma implementation. The plan is to convert existing clients and then deprecate SkLumaXfermode. R=bsalomon@google.com, reed@google.com, robertphillips@google.com Author: fmalita@chromium.org Review URL: https://codereview.chromium.org/25453004 git-svn-id: http://skia.googlecode.com/svn/trunk@11636 2bbb7eff-a529-9590-31e7-b0007b416f81
* style nit for myself retroactively: throwOnFailure -> throw_on_failureGravatar commit-bot@chromium.org2013-10-07
| | | | | | | | | | | BUG= R=reed@google.com Author: mtklein@google.com Review URL: https://codereview.chromium.org/26298002 git-svn-id: http://skia.googlecode.com/svn/trunk@11635 2bbb7eff-a529-9590-31e7-b0007b416f81
* Make skia almost compile again with clang.Gravatar commit-bot@chromium.org2013-10-07
| | | | | | | | | | | | clang is reporting many unused functions and variables. R=bsalomon@google.com, robertphillips@google.com, reed@google.com Author: tfarina@chromium.org Review URL: https://codereview.chromium.org/26167002 git-svn-id: http://skia.googlecode.com/svn/trunk@11630 2bbb7eff-a529-9590-31e7-b0007b416f81
* pdf: drawPath should pass the computed matrix, instead of default matrix ↵Gravatar edisonn@google.com2013-10-07
| | | | | | | | | | | | stored in draw. moved cl https://codereview.chromium.org/24265006/ in git repository so I can run the trybots R=vandebo@chromium.org Review URL: https://codereview.chromium.org/25675011 git-svn-id: http://skia.googlecode.com/svn/trunk@11626 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add perspective support to SkMatrix44 initializers.Gravatar commit-bot@chromium.org2013-10-05
| | | | | | | | | | | | | | | | | | | | I noticed SkMatrix <-> SkMatrix44 conversions were dropping the perspective values on the floor. As we use SkMatrix44 heavily in Chromium, I'm concerned this missing code will cause a bug eventually. It should be correct to simply use the bottom row of the 4x4 matrix excluding the third column. Previously committed and reverted, second attempt with fix for incorrect use of SkMScalar/SkScalar. BUG= R=reed@google.com, caryclark@google.com Author: aelias@chromium.org Review URL: https://codereview.chromium.org/25484006 git-svn-id: http://skia.googlecode.com/svn/trunk@11624 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert "Add perspective support to SkMatrix44 initializers."Gravatar aelias@chromium.org2013-10-04
| | | | | | This reverts commit 93db1bcae0863feed8d00a61ae2cf72a90a0083c. git-svn-id: http://skia.googlecode.com/svn/trunk@11623 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add perspective support to SkMatrix44 initializers.Gravatar commit-bot@chromium.org2013-10-04
| | | | | | | | | | | | | | | | | I noticed SkMatrix <-> SkMatrix44 conversions were dropping the perspective values on the floor. As we use SkMatrix44 heavily in Chromium, I'm concerned this missing code will cause a bug eventually. It should be correct to simply use the bottom row of the 4x4 matrix excluding the third column. BUG= R=reed@google.com Author: aelias@chromium.org Review URL: https://codereview.chromium.org/25484006 git-svn-id: http://skia.googlecode.com/svn/trunk@11622 2bbb7eff-a529-9590-31e7-b0007b416f81
* Use vertexless shaders when NVpr is availableGravatar commit-bot@chromium.org2013-10-04
| | | | | | | | | | | | | | | | Adds support for vertexless shaders and enables them when NV_path_rendering is available. This takes a GrGLFragmentOnlyShaderBuilder class, a GrGLTexGenEffectArray class, support for setting TexGen and the projection matrix in GrGpuGL, and code for setting the GL fixed function state where necessary. R=bsalomon@google.com, kkinnunen@nvidia.com Author: cdalton@nvidia.com Review URL: https://codereview.chromium.org/25846002 git-svn-id: http://skia.googlecode.com/svn/trunk@11620 2bbb7eff-a529-9590-31e7-b0007b416f81
* Mutex protect SkFontMgr_DirectWrite cache.Gravatar bungeman@google.com2013-10-04
| | | | | | | | | | | SkFontMgr_DirectWrite is constant, except for its typeface cache. Protect this cache in the face of multiple threads. R=robertphillips@google.com Review URL: https://codereview.chromium.org/26023002 git-svn-id: http://skia.googlecode.com/svn/trunk@11615 2bbb7eff-a529-9590-31e7-b0007b416f81
* commit to xfermode objects being immutableGravatar commit-bot@chromium.org2013-10-04
| | | | | | | | | | | BUG= R=djsollen@google.com, mtklein@google.com Author: reed@google.com Review URL: https://codereview.chromium.org/25968004 git-svn-id: http://skia.googlecode.com/svn/trunk@11614 2bbb7eff-a529-9590-31e7-b0007b416f81
* When cache is full delay flush until GrContext draw is finishedGravatar commit-bot@chromium.org2013-10-04
| | | | | | | | | | R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/25673004 git-svn-id: http://skia.googlecode.com/svn/trunk@11613 2bbb7eff-a529-9590-31e7-b0007b416f81
* Move VertexBuilder to a GrGLFullShaderBuilder subclassGravatar commit-bot@chromium.org2013-10-04
| | | | | | | | | | | | | | | | | | | Removes the VertexBuilder nested class from GrGLShaderBuilder in favor of a new GrGLFullShaderBuilder subclass, and adds an optional emitCode overload to GrGLEffect that takes a GrGLFullShaderBuilder. Makes setData virtual in GrGLEffectArray and adds a GrGLVertexEffectArray subclass that gets built using a GrGLFullShaderBuilder. Also adds a new GrGLVertexEffect subclass that makes the GrGLFullShaderBuilder overload required for emitCode, and updates GrGLEffects to inherit from GrGLVertexEffect where needed. R=bsalomon@google.com Author: cdalton@nvidia.com Review URL: https://codereview.chromium.org/25474006 git-svn-id: http://skia.googlecode.com/svn/trunk@11612 2bbb7eff-a529-9590-31e7-b0007b416f81
* Don't access RT when disabling scissor.Gravatar commit-bot@chromium.org2013-10-04
| | | | | | | | | | R=robertphillips@google.com Author: bsalomon@google.com Review URL: https://codereview.chromium.org/25446004 git-svn-id: http://skia.googlecode.com/svn/trunk@11608 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix SkScalar conversion warning error.Gravatar halcanary@google.com2013-10-04
| | | | | | | | | | This was causing probems on the Win build. R=caryclark@google.com Review URL: https://codereview.chromium.org/26011002 git-svn-id: http://skia.googlecode.com/svn/trunk@11604 2bbb7eff-a529-9590-31e7-b0007b416f81
* Make image decoding more fault resistant, less verbose.Gravatar halcanary@google.com2013-10-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change address what happens when a jpeg is partially downloaded before failing. Many browsers will render it anyway: we want Skia to do the same. The JpegTest takes a perfectly cromulent jpeg file and only passes into the ImageDecoder the first half of the image. We then verify that the image decoder returns a valid bitmap of the correct dimensions. We also fixed some png library errors, including issue 1691. Also, suppressed the majority of warnings from using libpng and libjpeg. By default, most warnings are *not* suppressed in debug mode. If you have a debug binary and wish to suppress warnings, set the following environment variables to true skia_images_png_suppressDecoderWarnings skia_images_jpeg_suppressDecoderWarnings or from within a program that links to Skia: #if defined(SK_DEBUG) #include "SkRTConf.h" SK_CONF_SET("images.jpeg.suppressDecoderWarnings", true); SK_CONF_SET("images.png.suppressDecoderWarnings", true); #endif I tested this, before (control) and after these changes (test), on 364,295 skps from the cluster telemetry. - number of errors+warnings in control = 2804 - number of errors+warnings fixed = 2283 - number of PNG verbosity fixed = 2152 - number of PNG error fixed = 4 - number of PNG segfault fixed = 3 - number of PNG errors changed to warnings = 62 - number of JPG verbosity fixed = 26 - number of JPG error fixed = 91 Not all errors and warning have been fixed. These numbers were generated using the find_bad_images_in_skps.py program. This program may be useful going forward for testing image-decoding libraries on skp files from the cluster telemetry. find_bad_images_in_skps.py depends on the test_image_decoder program, which simply executes the SkImageDecoder::DecodeFile function and uses its exit status to report success or failure. BUG=skia:1649 BUG=skia:1691 BUG=skia:1680 R=scroggo@google.com Review URL: https://codereview.chromium.org/24449003 git-svn-id: http://skia.googlecode.com/svn/trunk@11597 2bbb7eff-a529-9590-31e7-b0007b416f81
* Allow gradient optimization with perspectiveGravatar commit-bot@chromium.org2013-10-04
| | | | | | | | | | | | | | | | | | | | Before, gradients would only interpolate the linear portion of the quadratic equation if there was no perspective. This updates them to do so even in the case that there is perspective. The rearrangement of math causes noise differences in the following gm tests: gradients_no_texture_gpu gradients_view_perspective_gpu gradients_local_perspective_gpu gradients_gpu R=bsalomon@google.com Author: cdalton@nvidia.com Review URL: https://codereview.chromium.org/25645006 git-svn-id: http://skia.googlecode.com/svn/trunk@11595 2bbb7eff-a529-9590-31e7-b0007b416f81
* Snap GDI matrix when snapping height.Gravatar bungeman@google.com2013-10-03
| | | | | | | | | | | | | When using GDI to render, ensure that the GDI matrix does not attempt to add subpixel height. This ensures that rotated text is always the same height as axis aligned text and prevents subpixel drift metrics when they are unwanted. R=reed@google.com Review URL: https://codereview.chromium.org/25739002 git-svn-id: http://skia.googlecode.com/svn/trunk@11592 2bbb7eff-a529-9590-31e7-b0007b416f81
* Use SkPicture::ExtractBitmap callback in pdf too, there is no need for a ↵Gravatar commit-bot@chromium.org2013-10-03
| | | | | | | | | | | | specialized function pointer for pdf only only to pass a rectangle, when we can use subseted bitmaps. R=scroggo@google.com, reed@google.com, vandebo@chromium.org, bsalomon@google.com Author: edisonn@google.com Review URL: https://codereview.chromium.org/25054002 git-svn-id: http://skia.googlecode.com/svn/trunk@11591 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fixes for decoding to A8.Gravatar commit-bot@chromium.org2013-10-03
| | | | | | | | | | | | | | | | | | | | | | | | src/images/SkImageDecoder_libpng.cpp: A8 images are not opaque, so do not set the opaque flag. This fixes a bug where copyTo does not work as expected (when copying an A8 decoded image to ARGB_8888), leading to a bitmap hash that does not represent the image correctly (in skimage). tools/skimage_main.cpp: In write_bitmap, which is creating the image for visual comparison, copy A8 to 8888, since A8 cannot be encoded. In the section that tests reencoding, do not test reencoding A8, which is known to not work. R=mtklein@google.com, djsollen@google.com Author: scroggo@google.com Review URL: https://codereview.chromium.org/25726004 git-svn-id: http://skia.googlecode.com/svn/trunk@11589 2bbb7eff-a529-9590-31e7-b0007b416f81
* Repurpose GrGLCoordTransform as GrGLProgramEffectsGravatar commit-bot@chromium.org2013-10-03
| | | | | | | | | | | | | | Creates a GrGLProgramEffects class that the GrGLProgram uses to manage an array of effects. This gives us enough abstraction for the program to cleanly handle different types of coord transforms. R=bsalomon@google.com Author: cdalton@nvidia.com Review URL: https://codereview.chromium.org/25605008 git-svn-id: http://skia.googlecode.com/svn/trunk@11588 2bbb7eff-a529-9590-31e7-b0007b416f81
* Update PDF backend to support fallback fonts on Android.Gravatar djsollen@google.com2013-10-03
| | | | | | | | R=edisonn@google.com, reed@google.com, vandebo@chromium.org Review URL: https://codereview.chromium.org/24364008 git-svn-id: http://skia.googlecode.com/svn/trunk@11586 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2013-10-03
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@11585 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix font GMsGravatar jvanverth@google.com2013-10-02
| | | | | | | | | | Disables font cache dump for now R=robertphillips@google.com Review URL: https://codereview.chromium.org/25605007 git-svn-id: http://skia.googlecode.com/svn/trunk@11584 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add support to dump font cache texture for debug purposesGravatar commit-bot@chromium.org2013-10-02
| | | | | | | | | | R=robertphillips@google.com, bsalomon@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/25736002 git-svn-id: http://skia.googlecode.com/svn/trunk@11579 2bbb7eff-a529-9590-31e7-b0007b416f81
* Move makeSpace and resetToSize from SkPathRef.cpp to .hGravatar robertphillips@google.com2013-10-02
| | | | | | | | https://codereview.chromium.org/25754002/ git-svn-id: http://skia.googlecode.com/svn/trunk@11578 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add new skyline RectanizerGravatar commit-bot@chromium.org2013-10-02
| | | | | | | | | | | | | | | | | | | The skyline Rectanizer tracks the leading silhouette of the currently packed rects and tries to fit the next rectangle on top of that. This gives slightly better packing behavior than the current log2 scheme. Also shrank the size of the plots, which increases their number from 18 to 32 and gives better cache behavior (fewer purges and uploads). R=bsalomon@google.com Author: jvanverth@google.com Review URL: https://codereview.chromium.org/25584002 git-svn-id: http://skia.googlecode.com/svn/trunk@11577 2bbb7eff-a529-9590-31e7-b0007b416f81
* Make it explicit that some validate methods are debug onlyGravatar robertphillips@google.com2013-10-02
| | | | | | | | https://codereview.chromium.org/25716003/ git-svn-id: http://skia.googlecode.com/svn/trunk@11575 2bbb7eff-a529-9590-31e7-b0007b416f81
* Do not convert non gray PNG to A8.Gravatar scroggo@google.com2013-10-02
| | | | | | | | | | | | If the user requested A8, but the source is not gray, switch to ARGB8888. BUG=https://b.corp.google.com/issue?id=9189955 R=reed@google.com Review URL: https://codereview.chromium.org/24882002 git-svn-id: http://skia.googlecode.com/svn/trunk@11573 2bbb7eff-a529-9590-31e7-b0007b416f81
* path ops work in progressGravatar caryclark@google.com2013-10-02
| | | | | | | | | | | | make more skps work remove edit files BUG= Review URL: https://codereview.chromium.org/23542056 git-svn-id: http://skia.googlecode.com/svn/trunk@11570 2bbb7eff-a529-9590-31e7-b0007b416f81
* Make GPU coord transforms automaticGravatar bsalomon@google.com2013-10-02
| | | | | | | | | | | | | Adds a GrCoordTransform class and updates the framework to handle coord transforms similar to how it handles textures with GrTextureAccess. Renames GrGLEffectMatrix to GrGLCoordTransform and slightly repurposes it to be used by the framework instead of effects. R=bsalomon@google.com, robertphillips@google.com Review URL: https://codereview.chromium.org/24853002 git-svn-id: http://skia.googlecode.com/svn/trunk@11569 2bbb7eff-a529-9590-31e7-b0007b416f81
* Empty implementations for SkImageDecoder.Gravatar scroggo@google.com2013-10-01
| | | | | | | | | | | | | Add constructor and destructor, so SkScaledBitmapSampler's DummyDecoder has no unresolved symbols in Chrome. Fixes our Chrome canary. Unreviewed. Review URL: https://codereview.chromium.org/25536004 git-svn-id: http://skia.googlecode.com/svn/trunk@11566 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix race between ~SkThreadPool and SkThreadPool::Loop on fDone.Gravatar commit-bot@chromium.org2013-10-01
| | | | | | | | | | | | | | | | | We're writing fDone without holding the mutex. Bad form, says tsan. In practice this is fairly innocuous, as fDone only ever goes from false to true and only once. Though, I wouldn't be surprised if there were some way this could leak a thread that never got the signal to die. BUG= R=scroggo@google.com, reed@google.com Author: mtklein@google.com Review URL: https://codereview.chromium.org/25371003 git-svn-id: http://skia.googlecode.com/svn/trunk@11563 2bbb7eff-a529-9590-31e7-b0007b416f81
* Use explicitly-sized enums in GrGLProgramDesc::KeyHeaderGravatar commit-bot@chromium.org2013-10-01
| | | | | | | | | | | | | | Uses enums explicitly sized to 8 bits in GrGLProgramDesc::KeyHeader, instead of storing them as uint8_t values. This avoids the need to static_cast them. R=bsalomon@google.com Author: cdalton@nvidia.com Review URL: https://codereview.chromium.org/23875048 git-svn-id: http://skia.googlecode.com/svn/trunk@11560 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix build.Gravatar scroggo@google.com2013-10-01
| | | | | | | | Predeclare a function. Unreviewed. git-svn-id: http://skia.googlecode.com/svn/trunk@11559 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add an option on SkImageDecoder to skip writing 0s.Gravatar scroggo@google.com2013-10-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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=skia:1661 R=reed@google.com Review URL: https://codereview.chromium.org/24269006 git-svn-id: http://skia.googlecode.com/svn/trunk@11558 2bbb7eff-a529-9590-31e7-b0007b416f81
* Allow creating a picture from skp to fail.Gravatar scroggo@google.com2013-10-01
| | | | | | | | | | | | | | | | | Replace the current constructor for creating an SkPicturePlayback to a factory. In the factory, check for incorrect data that would result in an invalid playback. If the playback is invalid, return NULL, and return NULL from SkPicture's factory as well. Update SkTimedPicture(Playback) as well. BUG=skia:1672 R=caryclark@google.com Review URL: https://codereview.chromium.org/24826002 git-svn-id: http://skia.googlecode.com/svn/trunk@11554 2bbb7eff-a529-9590-31e7-b0007b416f81
* Minor changes to XPS device.Gravatar bungeman@google.com2013-10-01
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@11552 2bbb7eff-a529-9590-31e7-b0007b416f81