aboutsummaryrefslogtreecommitdiffhomepage
path: root/gyp/tests.gyp
Commit message (Collapse)AuthorAge
* Add a release procedure to SkMallocPixelRef; remove SkDataPixelRefGravatar halcanary@google.com2014-01-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Allow 0-width SkBitmap in setConfig.Gravatar halcanary@google.com2013-12-13
| | | | | | | | | | | | | | Previously, SkBitmap::setConfig would allow zero height, but not zero width. This is changed for consistancy. A unit test was added. BUG= R=reed@google.com, scroggo@google.com Review URL: https://codereview.chromium.org/111953004 git-svn-id: http://skia.googlecode.com/svn/trunk@12673 2bbb7eff-a529-9590-31e7-b0007b416f81
* Implement SkAshmemDiscardableMemoryGravatar halcanary@google.com2013-12-10
| | | | | | | | | | | | | | | | | | | | | | | | | | - Implement ashmem-backed SkDiscardableMemory subclass: This class in only accesible via the SkDiscardableMemory::Create() function, which replaces the mock implementation in SkDiscardableMemory_none.cpp - Added SkDiscardableMemory_ashmem.cpp to the Android port of Skia Removed SkDiscardableMemory_none.cpp from the Android port. - Added DiscardableMemoryTest. Still needs work. - SkDiscardablePixelRef Bugfix: onLockPixels() now calls SkDELETE on the SkDiscardableMemory pointer when it fails to unlock. - Improved documentation inside ashmem.h BUG= R=scroggo@google.com Review URL: https://codereview.chromium.org/83563002 git-svn-id: http://skia.googlecode.com/svn/trunk@12608 2bbb7eff-a529-9590-31e7-b0007b416f81
* Big Cleanup: SkBitmapFactory, SkLazyPixelRef, SkImageCacheGravatar halcanary@google.com2013-12-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Removed SkBitmapFactory since no clients were using it. New cache selection mechanism can simply pass a SkDiscardableMemory::Factory into the SkDiscardablePixelRef if non-default SkDiscardableMemory should be used. Removed BitmapFactoryTest. SkDiscardableMemory::Factory interface. Android will need this functionality in the future inside their BitmapFactory. Removed SkLazyPixelRef, since it's functionality is now subsumed into SkDiscardablePixelRef. Removed LazyPixelRef test. Modified SkDiscardablePixelRef to optionally allow it to use a SkDiscardableMemory::Factory. This tiny change makes it a replacement for SkLazyPixelRef. This functioanlity is also necessary for moving Android over to SkDiscardablePixelRef from SkImageRef in a later CL. Added a test for this. SkDecodingImageGenerator::Install can optionally pass a factory in to SkDiscardablePixelRef. Removed SkImageCache, SkLruImageCache, and SkPurgeableImageCache. This functionality can be handled much more cleanly by SkDiscardableMemory. New SkDiscardableMemoryPool class to replace SkLruImageCache. In a later CL, we will replace SkImageRef_GlobalPool (used by android) as well. This is a concrete implementation of SkDiscardableMemory::Factory. Added a test for this. modified gm/factory.cpp to remove dependnce on SkBitmapFactory + SkLruImageCache. Now uses SkDecodingImageGenerator + SkDiscardablePixelRef + SkDiscardableMemoryPool. SkImageDecoder::Target replaces SkBitmapFactory::Target. The DecodeMemoryToTarget function may disappear in the future. Moved SkLazyCachingPixelRef::DecodeProc replaces SkBitmapFactory::DecodeProc. This is a short term change, since another CL changes SkLazyCachingPixelRef to use SkImageGenerator instead of DecodeProc. Modified DrawBitmapRectTest to use SkDiscardablePixelRef instead of SkLazyPixelRef. tools/LazyDecodeBitmap.cpp now uses SkDecodingImageGenerator + SkDiscardablePixelRef instead of a SkBitmapFactory. bench_pictures uses the Global SkDiscardableMemoryPool instead of a global gLruImageCache. R=reed@google.com, scroggo@google.com Review URL: https://codereview.chromium.org/103033002 git-svn-id: http://skia.googlecode.com/svn/trunk@12515 2bbb7eff-a529-9590-31e7-b0007b416f81
* Refactor FourByteInterps. Add 64-bit Fast version. Add tests.Gravatar commit-bot@chromium.org2013-12-03
| | | | | | | | | | | | | | | | | | | | | | | | | Effect on benches (only _fast_ should be affected, and only on 64-bit): Desktop (64-bit) four_byte_interp_slow_255 NONRENDERING c 7.80 7.84 -0.04 -0.5% four_byte_interp_slow_256 NONRENDERING c 7.38 7.36 +0.02 +0.3% four_byte_interp_fast_256 NONRENDERING c 4.86 4.38 +0.48 +9.9% four_byte_interp_fast_255 NONRENDERING c 5.80 5.16 +0.64 +11.0% N5 (32-bit) four_byte_interp_slow_256 NONRENDERING c 22.22 22.66 -0.44 -2.0% four_byte_interp_fast_255 NONRENDERING c 22.22 22.22 +0.00 +0.0% four_byte_interp_fast_256 NONRENDERING c 18.81 18.81 +0.00 +0.0% four_byte_interp_slow_255 NONRENDERING c 22.42 22.42 +0.00 +0.0% BUG= R=reed@google.com Author: mtklein@google.com Review URL: https://codereview.chromium.org/100923003 git-svn-id: http://skia.googlecode.com/svn/trunk@12468 2bbb7eff-a529-9590-31e7-b0007b416f81
* Remove the comments settings for vim tab width and expansion variables.Gravatar commit-bot@chromium.org2013-12-02
| | | | | | | | | | | | | | | | | | These add unnecessary bloat for everyone to carry around, so we just remove them now. The same change was made in chromium by Tony in http://codereview.chromium.org/7310019 - crrev.com/92046 BUG=None TEST=./gyp_skia R=mtklein@google.com Author: tfarina@chromium.org Review URL: https://codereview.chromium.org/92673003 git-svn-id: http://skia.googlecode.com/svn/trunk@12443 2bbb7eff-a529-9590-31e7-b0007b416f81
* Reverting r12427Gravatar rmistry@google.com2013-12-02
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@12428 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sanitizing source files in Housekeeper-NightlyGravatar skia.committer@gmail.com2013-12-02
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@12427 2bbb7eff-a529-9590-31e7-b0007b416f81
* Speed up GrResourceCache lookup by inlining GrBinHashKey comparisonsGravatar commit-bot@chromium.org2013-11-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The GCC compilers for Android and Ubuntu do not seem to be able to inline the memcmp operations on GrBinHashKey data. Write the comparisons manually. Also shortcut GrBinHashKey::EQ to skip comparison when hashes do not match. Speeds up grresourcecache_find test on ARM and x86_64. Speeds up grresourcecache_add on x86_64. In order to test the change, moves ad hoc Gr unit tests from src/gr_unittest.cpp to tests/GrUnitTests to be consistent with other tests and enables GrUnitTests. Fixes a regression from r2863 with where re-setting GrBinHashKey data would not set the hash correctly. This should also improve the hash function itself. The regression caused many of the hash operations be no-ops. This is caught by the unit test. Renames the comparison functions that GrHashTable needs from EQ, LT to Equals, LessThan. Renames GrTBinHashKey to GrBinHashKey. The GrTBinHashKey used to forward comparison functions to an ENTRY template class, which would extract the key and call back to the GrTBinHashKey. This would save the user from writing one comparison function when comparison was done with int ENTRY::compare(). There's no real benefit in this now. Also this was used only for one class (GrTextureStripAtlas). The other use in GrResourceKey was not actually using the provided "shortcut". The new GrBinHashKey is not templated with the entry, rather just provides == and < functions. The users of GrTHashTable provide the needed functions now. Adds explicit documentation of functions that are actually needed GrTHashTable for the Key template. Adds SK_DEBUG guards according to the contract. R=bsalomon@google.com, mtklein@google.com Author: kkinnunen@nvidia.com Review URL: https://codereview.chromium.org/88113002 git-svn-id: http://skia.googlecode.com/svn/trunk@12426 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add SkImageGenerator InterfaceGravatar halcanary@google.com2013-11-21
| | | | | | | | | | | | | | | | | | - Add SkDiscardablePixelRef class that uses SkDiscardableMemory and a SkImageGenerator. - Add SkDecodingImageGenerator class as an example of a SkImageGenerator. - Add DecodingImageGenerator unit test. - Add SkBasicDiscardableMemory implmentation for unit tests only. R=reed@google.com, scroggo@google.com Review URL: https://codereview.chromium.org/74793011 git-svn-id: http://skia.googlecode.com/svn/trunk@12341 2bbb7eff-a529-9590-31e7-b0007b416f81
* Changes to SkTDStackNester.Gravatar scroggo@google.com2013-11-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SkTDStackNester is a class used by PdfViewer to assist in saving and restoring the PDF state. Clean up and test this class. Add some documentation. Add FIXME's where I have questions to resolve. Fix a bug where fNestingLevel was not initialized. Remove a commented out line of code copied over from SkTDStack. Rename SkTDStackNester::nests() to nestingLevel() and make it const. Remove unnecessary predeclaration and friend declaration. Remove index() (both const and non-const versions). They were unused, return something that may not be expected (index from the top, rather than from the bottom), and don't work to get any elements in earlier Recs once the first one is full. Report a warning if the nesting level goes above the maximum level, or if we attempt to bring it below zero. Prevent fNestingLevel from dropping below zero. Add kUnusedObject_SkPdfIssue, and use it where appropriate. Depends on https://codereview.chromium.org/64093009/ R=mtklein@google.com Review URL: https://codereview.chromium.org/68843006 git-svn-id: http://skia.googlecode.com/svn/trunk@12328 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix stale assert in GrDrawTarget::printGravatar commit-bot@chromium.org2013-11-08
| | | | | | | | | | | | Fix stale assert in GrDrawTarget::print. R=bsalomon@google.com Author: kkinnunen@nvidia.com Review URL: https://codereview.chromium.org/66333002 git-svn-id: http://skia.googlecode.com/svn/trunk@12201 2bbb7eff-a529-9590-31e7-b0007b416f81
* New SkRTConf macro SK_CONF_TRY_SET: no complaint on missing configurationGravatar halcanary@google.com2013-11-06
| | | | | | | | | | | | | | | | | | | | | | | | | | SK_CONF_TRY_SET() is like SK_CONF_SET(), but doesn't complain if confname can't be found. This is useful if the SK_CONF_DECLARE is inside a source file whose linkage is dependent on the system. Internally to the SkRTConf system, SkRTConfRegistry::set() was given an additional parameter controling wanrings. A new RuntimeConfig unit test was introduced. It should run silently. In the future, it should be expanded to cover all of the SkRTConf functionality. (For example, the images.jpeg.suppressDecoderWarnings variable is defined and used only in SkImageDecoder_libjpeg.cpp, but on MacOS, we use Core Graphics via SkImageDecoder_CG.cpp - SkImageDecoder_libjpeg is never linked in. The same is true of the Windows Imaging Component on Windows.) BUG= R=reed@google.com Review URL: https://codereview.chromium.org/54503007 git-svn-id: http://skia.googlecode.com/svn/trunk@12155 2bbb7eff-a529-9590-31e7-b0007b416f81
* Adding size parameter to read array functionsGravatar commit-bot@chromium.org2013-10-31
| | | | | | | | | | | | | | | | | | | In some cases, the allocated array into which the data will be read is using getArrayCount() to allocate itself, which should be safe, but some cases use fixed length arrays or compute the array size before reading, which could overflow if the stream is compromised. To prevent that from happening, I added a check that will verify that the number of bytes to read will not exceed the capacity of the input buffer argument passed to all the read...Array() functions. I chose to use the byte array for this initial version, so that "size" represents the same value across all read...Array() functions, but I could also use the element count, if it is preferred. Note : readPointArray and writePointArray are unused, so I could also remove them BUG= R=reed@google.com, mtklein@google.com, senorblanco@chromium.org Author: sugoi@chromium.org Review URL: https://codereview.chromium.org/37803002 git-svn-id: http://skia.googlecode.com/svn/trunk@12058 2bbb7eff-a529-9590-31e7-b0007b416f81
* Allow SkLazyPixelRef to use SkScaledImageCacheGravatar commit-bot@chromium.org2013-10-29
| | | | | | | | | | | | | | | | | | | | | | | | | | - SkScaledImageCache: - Add new FindAndLock/AddAndLock variants that work well with SkLazyPixelRefs (take width, height, generation_id). - Add static versions of these new variants. - SkLazyPixelRef: - If NULL passed in as SkImageCache* in the constructor, it will now default to using the static SkScaledImageCache methods to cache decoded images. - If (fImageCache==NULL), the default allocator can be changed with the setAllocator method. If (fImageCache!=NULL), the SkImageCache handles allocation. - CachedDecodingPixelRefTest to test the new functionality. BUG= R=scroggo@google.com, mtklein@google.com, reed@google.com Author: halcanary@google.com Review URL: https://codereview.chromium.org/37343002 git-svn-id: http://skia.googlecode.com/svn/trunk@12006 2bbb7eff-a529-9590-31e7-b0007b416f81
* We want to give SkPixelRef a way to signal over to GrResourceCache that it's ↵Gravatar commit-bot@chromium.org2013-10-24
| | | | | | | | | | | | | | | | | | | | | 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
* Implement SkColorFilter as a GrGLEffectGravatar commit-bot@chromium.org2013-10-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds GrEffect::willUseInputColor() which indicates whether or not the input color affects the output of the effect. This is needed for certain Xfermodes, such as kSrc_Mode. For these modes the color filter will not use the input color. An effect with GrEffect::willUseInputColor() true will cause all color or coverage effects before it to be discarded, as their computations cannot affect the output. In these cases program is marked as having white input color. This fixes an assert when Skia is compiled in a mode that prefers using uniforms instead of attributes for constants. (Flags GR_GL_USE_NV_PATH_RENDERING or GR_GL_NO_CONSTANT_ATTRIBUTES). Using attributes hides the problem where the fragment shader does not need input color for color filters that ignore DST part of the filter. The assert would be hit when uniform manager tries to bind an uniform which has been optimized away by the shader compiler. Adds specific GrGLSLExpr4 and GrGLSLExpr1 classes. This way the GLSL expressions like "(v - src.a)" can remain somewhat readable in form of "(v - src.a())". The GrGLSLExpr<typename> template implements the generic functionality, GrGLSLExprX is the specialization that exposes the type-safe interface to this functionality. Also adds operators so that GLSL binary operators of the form "(float * vecX)" can be expressed in C++. Before only the equivalent "(vecX * float)" was possible. This reverts the common blending calculations to more conventional order, such as "(1-a) * c" instead of "c * (1-a)". Changes GrGLSLExpr1::OnesStr from 1 to 1.0 in order to preserve the color filter blending formula string the same (with the exception of variable name change). Shaders change in case of input color being needed: - vec4 filteredColor; - filteredColor = (((1.0 - uFilterColor.a) * output_Stage0) + uFilterColor); - fsColorOut = filteredColor; + vec4 output_Stage1; + { // Stage 1: ModeColorFilterEffect + output_Stage1 = (((1.0 - uFilterColor_Stage1.a) * output_Stage0) + uFilterColor_Stage1); + } + fsColorOut = output_Stage1; Shaders change in case of input color being not needed: -uniform vec4 uFilterColor; -in vec4 vColor; +uniform vec4 uFilterColor_Stage0; out vec4 fsColorOut; void main() { - vec4 filteredColor; - filteredColor = uFilterColor; - fsColorOut = filteredColor; + vec4 output_Stage0; + { // Stage 0: ModeColorFilterEffect + output_Stage0 = uFilterColor_Stage0; + } + fsColorOut = output_Stage0; } R=bsalomon@google.com, robertphillips@google.com, jvanverth@google.com Author: kkinnunen@nvidia.com Review URL: https://codereview.chromium.org/25023003 git-svn-id: http://skia.googlecode.com/svn/trunk@11912 2bbb7eff-a529-9590-31e7-b0007b416f81
* add tests for SkDocumentGravatar commit-bot@chromium.org2013-10-22
| | | | | | | | | | R=reed@google.com, vandebo@chromium.org Author: edisonn@google.com Review URL: https://codereview.chromium.org/33423002 git-svn-id: http://skia.googlecode.com/svn/trunk@11907 2bbb7eff-a529-9590-31e7-b0007b416f81
* Remove obsolete CityHash conditional.Gravatar commit-bot@chromium.org2013-10-15
| | | | | | | | | | | BUG= R=bungeman@google.com Author: mtklein@google.com Review URL: https://codereview.chromium.org/26172003 git-svn-id: http://skia.googlecode.com/svn/trunk@11785 2bbb7eff-a529-9590-31e7-b0007b416f81
* GIF decode: optional error messages and fault tolerance.Gravatar halcanary@google.com2013-10-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add new runtime configuration variable, images.gif.suppressDecoderWarnings, which suppresses warning and errors from the GIF library. It defaults to "true", which is current behavior. (This setting can be changed by setting the environment variable skia_images_gif_suppressDecoderWarnings="false".) Some conditions which were errors before are now warnings: - If the image width or height is greater than the GIF screen width or height (respectively) we expand the screen to hold the image. - If the offset of the image inside the screen would place the image outside of the screen, we shift the image to fix this. - If the image lacks a color table, we create a default color table. - If the image is truncated, then the rest of the image is filled with the fill color. In all four cases, if images.gif.suppressDecoderWarnings is set to false, then a warning message is printed via SkDebugf. In the event of another kind of error, SkGIFImageDecoder::onDecode() will still return false. But with this change, if images.gif.suppressDecoderWarnings is set to false, a description of the error is printed via SkDebugf. Also, added a new unit test GifTest, which tests the deconing of both good GIf files and corrupted files that should now work with this change. This unit test is disabled on Win32, iOS, and Mac. BUG=skia:1689 R=scroggo@google.com Review URL: https://codereview.chromium.org/26743002 git-svn-id: http://skia.googlecode.com/svn/trunk@11734 2bbb7eff-a529-9590-31e7-b0007b416f81
* Sketch of SK_ONCEGravatar mtklein@google.com2013-10-09
| | | | | | | | | BUG= R=bungeman@google.com Review URL: https://codereview.chromium.org/26563002 git-svn-id: http://skia.googlecode.com/svn/trunk@11674 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
* Add a buffered SkStream class.Gravatar scroggo@google.com2013-09-26
| | | | | | | | | | | | | This is used by Android to buffer an input stream which may not otherwise be able to rewind. Add a test for the new class. R=bungeman@google.com, mtklein@google.com, reed@google.com Review URL: https://codereview.chromium.org/23717055 git-svn-id: http://skia.googlecode.com/svn/trunk@11488 2bbb7eff-a529-9590-31e7-b0007b416f81
* We don't flatten or unflatten SkPaintOptionsAndroid. Reproduce and fix.Gravatar commit-bot@chromium.org2013-09-26
| | | | | | | | | | | BUG=skia:1625 R=djsollen@google.com, reed@google.com Author: mtklein@google.com Review URL: https://chromiumcodereview.appspot.com/24075010 git-svn-id: http://skia.googlecode.com/svn/trunk@11472 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add sk_calloc. Remove SkMemory_stdlib, which seems unused.Gravatar mtklein@google.com2013-09-20
| | | | | | | | | | | I'm seeing basically no difference between malloc + bzero and calloc on my desktop, but on a Galaxy Nexus calloc is never slower, and significantly faster once the allocation size becomes large, both for allocation and for _reading_. BUG=skia:1662 R=reed@google.com Review URL: https://codereview.chromium.org/24251008 git-svn-id: http://skia.googlecode.com/svn/trunk@11414 2bbb7eff-a529-9590-31e7-b0007b416f81
* Update Android's FontHost to return NULL if familyName does not matchGravatar djsollen@google.com2013-09-19
| | | | | | | | R=scroggo@google.com, wangxianzhu@chromium.org Review URL: https://codereview.chromium.org/23601041 git-svn-id: http://skia.googlecode.com/svn/trunk@11377 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert r11342 (Add infrastructure for testing the debugger code) due to ↵Gravatar robertphillips@google.com2013-09-18
| | | | | | build breakages git-svn-id: http://skia.googlecode.com/svn/trunk@11343 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add infrastructure for testing the debugger code.Gravatar commit-bot@chromium.org2013-09-18
| | | | | | | | | | | | | | | This creates the necessarily files and GYP targets to start adding tests for the debugger code. There is currently one test added, more will be added once the infrastructure is in place. BUG= R=mtklein@google.com Author: dsinclair@chromium.org Review URL: https://chromiumcodereview.appspot.com/23589007 git-svn-id: http://skia.googlecode.com/svn/trunk@11342 2bbb7eff-a529-9590-31e7-b0007b416f81
* update devicelooper to skip internal tiles that are empty, and unittestsGravatar reed@google.com2013-09-17
| | | | | | | | BUG= Review URL: https://codereview.chromium.org/23463040 git-svn-id: http://skia.googlecode.com/svn/trunk@11331 2bbb7eff-a529-9590-31e7-b0007b416f81
* Create a semi-stable API for capturing the state of an SkCanvas and ↵Gravatar djsollen@google.com2013-08-29
| | | | | | | | | | | | reconstructing that state across different versions of Skia. R=joth@chromium.org, mtklein@google.com, reed@google.com, scroggo@google.com Committed: https://code.google.com/p/skia/source/detail?r=11010 Review URL: https://codereview.chromium.org/23545017 git-svn-id: http://skia.googlecode.com/svn/trunk@11013 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert "Create a semi-stable API for capturing the state of an SkCanvas and ↵Gravatar djsollen@google.com2013-08-29
| | | | | | | | | | reconstructing that state across different versions of Skia." This reverts r11010. Review URL: https://codereview.chromium.org/23757008 git-svn-id: http://skia.googlecode.com/svn/trunk@11011 2bbb7eff-a529-9590-31e7-b0007b416f81
* Create a semi-stable API for capturing the state of an SkCanvas and ↵Gravatar djsollen@google.com2013-08-29
| | | | | | | | | | reconstructing that state across different versions of Skia. R=joth@chromium.org, mtklein@google.com, reed@google.com, scroggo@google.com Review URL: https://codereview.chromium.org/23545017 git-svn-id: http://skia.googlecode.com/svn/trunk@11010 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix crash when querying a runtime config that is defined in environmentGravatar commit-bot@chromium.org2013-08-14
| | | | | | | | | | | | | | | | | | | | Fix crash when querying a runtime config in case when there's no skia.conf file and the config variable is still defined in the environment. Runs the added SkRTConf::UnitTest test as part of new "UnitTest" test. Previous version of the patch failed Windows build due to setenv usage. On Windows, use _putenv_s instead. BUG=skia:1494 R=bsalomon@google.com, humper@google.com Author: kkinnunen@nvidia.com Review URL: https://chromiumcodereview.appspot.com/23174002 git-svn-id: http://skia.googlecode.com/svn/trunk@10715 2bbb7eff-a529-9590-31e7-b0007b416f81
* Reverted r10654 (Fix crash when querying a runtime config that is defined in ↵Gravatar robertphillips@google.com2013-08-11
| | | | | | environment) due to compilation failure on Chromium win_layout bot git-svn-id: http://skia.googlecode.com/svn/trunk@10669 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix crash when querying a runtime config that is defined in environmentGravatar commit-bot@chromium.org2013-08-09
| | | | | | | | | | | | | | | | | Fix crash when querying a runtime config in case when there's no skia.conf file and the config variable is still defined in the environment. Runs the added SkRTConf::UnitTest test as part of new "UnitTest" test. BUG=skia:1494 R=bsalomon@google.com, humper@google.com Author: kkinnunen@nvidia.com Review URL: https://chromiumcodereview.appspot.com/22650007 git-svn-id: http://skia.googlecode.com/svn/trunk@10654 2bbb7eff-a529-9590-31e7-b0007b416f81
* This attempts to replicate some bad cache behavior Mozilla reported.Gravatar commit-bot@chromium.org2013-08-08
| | | | | | | | | | R=bsalomon@google.com Author: robertphillips@google.com Review URL: https://chromiumcodereview.appspot.com/22411005 git-svn-id: http://skia.googlecode.com/svn/trunk@10649 2bbb7eff-a529-9590-31e7-b0007b416f81
* revise SkTDynamicHash and add unit testsGravatar commit-bot@chromium.org2013-08-05
| | | | | | | | | | | BUG= R=reed@google.com Author: mtklein@google.com Review URL: https://chromiumcodereview.appspot.com/22292004 git-svn-id: http://skia.googlecode.com/svn/trunk@10552 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix a crash on stroking empty paths with nv_path_rendering enabledGravatar commit-bot@chromium.org2013-08-05
| | | | | | | | | | | | | | | | Fix the crash by defining that GrPathRenderer::drawPath and GrPathRenderer::stencilPath are called only with non-empty paths. Adds a new test "GpuDrawPath" and tests the condition. BUG=1477 R=bsalomon@google.com Author: kkinnunen@nvidia.com Review URL: https://chromiumcodereview.appspot.com/22173002 git-svn-id: http://skia.googlecode.com/svn/trunk@10528 2bbb7eff-a529-9590-31e7-b0007b416f81
* This patch implements a crop rect for SkImageFilter. It has been implemented ↵Gravatar senorblanco@chromium.org2013-07-24
| | | | | | | | | | | | | | | | | | for SkColorFilterImageFilter and SkBlurImageFilter as examples. In order to preserve the immutability of SkImageFilters, the crop rect is passed as a constructor parameter. If NULL (the default), the bounds of the input image are used, as before. This also tightens up the boundary handling for SkImageBlurFilter on the GPU backend. Where we were previously using clamping semantics, we now respect decal semantics (so we don't oversaturate the edges). This brings the GPU and raster backends into closer alignment, but will require some new baselines for the GPU tests. At a minimum, the following tests will need new baselines: imageblur, imagefiltersbase, imagefilterscropped, spritebitmap. R=reed@google.com Committed: https://code.google.com/p/skia/source/detail?r=10251 Review URL: https://codereview.chromium.org/19775006 git-svn-id: http://skia.googlecode.com/svn/trunk@10338 2bbb7eff-a529-9590-31e7-b0007b416f81
* add scaledimagecacheGravatar reed@google.com2013-07-23
| | | | | | | | BUG= Review URL: https://codereview.chromium.org/20005003 git-svn-id: http://skia.googlecode.com/svn/trunk@10286 2bbb7eff-a529-9590-31e7-b0007b416f81
* pull mipmap class into its own (private) headerGravatar reed@google.com2013-07-18
| | | | | | | | | BUG= R=scroggo@google.com Review URL: https://codereview.chromium.org/19462007 git-svn-id: http://skia.googlecode.com/svn/trunk@10161 2bbb7eff-a529-9590-31e7-b0007b416f81
* R=mtklein@google.comGravatar bungeman@google.com2013-07-12
| | | | | | Review URL: https://codereview.chromium.org/18503009 git-svn-id: http://skia.googlecode.com/svn/trunk@10050 2bbb7eff-a529-9590-31e7-b0007b416f81
* Adding my Bitmap2Path sample for 1on1 meeting.Gravatar commit-bot@chromium.org2013-07-01
| | | | | | | | | | | BUG= R=reed@google.com, borenet@google.com Author: dierk@google.com Review URL: https://chromiumcodereview.appspot.com/16829003 git-svn-id: http://skia.googlecode.com/svn/trunk@9843 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add an option to create unpremultiplied bitmaps.Gravatar scroggo@google.com2013-06-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently they cannot be used directly by Skia, but the pixels can be used elsewhere. SkImageDecoder: Add functions to require unpremultiplied output and query the presence of the requirement SkImageDecoder_libpng: SkImageDecoder_libwebp: SkImageDecoder_WIC: Respect the requirement for unpremultiplied output. TODO: Fix SkImageDecoder_CG. SkScaledBitmapSampler: Add procs to skip premultiplication and a boolean parameter to use those procs. ImageDecodingTest: Test unpremultiplied bitmap decoding. SampleUnpremul: Add a sample which allows visually comparing between the unpremultiplied version (copied into a premultiplied bitmap, since drawing unpremultiplied is not currently supported) and a premultiplied version of image files. gm.h: Add a getter for the resource path, so Samples can use it. As of patch set 13, https://codereview.chromium.org/16816016/ and https://codereview.chromium.org/16983004/, which were approved separately. R=reed@google.com Review URL: https://codereview.chromium.org/16410009 git-svn-id: http://skia.googlecode.com/svn/trunk@9612 2bbb7eff-a529-9590-31e7-b0007b416f81
* Prepare skia for shared library build on androidGravatar djsollen@google.com2013-06-03
| | | | | | | | | | This reapplies revision 9378 after the buildbot has been updated. R=borenet@google.com, djsollen@google.com Review URL: https://codereview.chromium.org/15855006 git-svn-id: http://skia.googlecode.com/svn/trunk@9395 2bbb7eff-a529-9590-31e7-b0007b416f81
* prepare skia for shared library build on androidGravatar djsollen@google.com2013-05-31
| | | | | | | | | | R=borenet@google.com, djsollen@google.com Committed: https://code.google.com/p/skia/source/detail?r=9378 Review URL: https://codereview.chromium.org/15855006 git-svn-id: http://skia.googlecode.com/svn/trunk@9379 2bbb7eff-a529-9590-31e7-b0007b416f81
* prepare skia for shared library build on androidGravatar djsollen@google.com2013-05-31
| | | | | | | | R=borenet@google.com, djsollen@google.com Review URL: https://codereview.chromium.org/15855006 git-svn-id: http://skia.googlecode.com/svn/trunk@9378 2bbb7eff-a529-9590-31e7-b0007b416f81
* Reland 'Add path utils, plus a test for it.'Gravatar scroggo@google.com2013-05-28
| | | | | | | | | | | | | | | Build SkPathJoin and SkBasename on windows also. Previous CL did not build on Windows because the two functions were accidentally placed inside an ifdef that did not include windows. Move the functions to the top of the file, and add a comment by the endif for clarity. Previously reviewed at https://codereview.chromium.org/15747004/ Review URL: https://codereview.chromium.org/15740024 git-svn-id: http://skia.googlecode.com/svn/trunk@9295 2bbb7eff-a529-9590-31e7-b0007b416f81
* Revert "Add path utils, plus a test for it."Gravatar scroggo@google.com2013-05-24
| | | | | | | | | | This reverts commit d172374b46cae0bd5d7c024b9848f5bdafcc6a16. This CL broke on Windows. Review URL: https://codereview.chromium.org/15986004 git-svn-id: http://skia.googlecode.com/svn/trunk@9278 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add path utils, plus a test for it.Gravatar scroggo@google.com2013-05-24
| | | | | | | | | | | | | | | | | | | | | | | | SkOSFile: Added class SkOSPath with functions for modifying strings representing path names. OSPathTest.cpp: Test of the new utilities. factory.cpp: Use SkPathJoin. gmmain and gm_expectations: Use SkOSPath::SkPathJoin instead of a local version. skimage_main.cpp: Use the new location of SkPathJoin and SkBasename. R=epoger@google.com Review URL: https://codereview.chromium.org/15747004 git-svn-id: http://skia.googlecode.com/svn/trunk@9277 2bbb7eff-a529-9590-31e7-b0007b416f81