aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/core
Commit message (Collapse)AuthorAge
* bump SkStrAppendScalar_MaxSize to 14 to accomodate the largest string now thatGravatar reed@google.com2011-03-01
| | | | | | | | | | | scalar->string uses %.8g. Floats have at most 8 significant digits, plus we add more space for sign, decimal point and exponent. add tests to check these limits. git-svn-id: http://skia.googlecode.com/svn/trunk@872 2bbb7eff-a529-9590-31e7-b0007b416f81
* http://codereview.appspot.com/4233041/Gravatar reed@google.com2011-02-25
| | | | | | | | | | Add templated version of SkAutoTUnref. Add unittests for it. Remove unused helper apis on SkAutoUnref. git-svn-id: http://skia.googlecode.com/svn/trunk@858 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add SkBitmap::getColor(int x, int y) - return the color of a pixel in a bitmap.Gravatar vandebo@chromium.org2011-02-24
| | | | | | Review URL: http://codereview.appspot.com/4230041 git-svn-id: http://skia.googlecode.com/svn/trunk@854 2bbb7eff-a529-9590-31e7-b0007b416f81
* Guard globalRef() virtual with #ifdef ANDROID, as these are not implementedGravatar reed@google.com2011-02-24
| | | | | | | | nor called by Skia proper. git-svn-id: http://skia.googlecode.com/svn/trunk@850 2bbb7eff-a529-9590-31e7-b0007b416f81
* add isFixedWidth() to expose the newly added attributeGravatar reed@google.com2011-02-24
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@849 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add asAGradient shader extraction API.Gravatar vandebo@chromium.org2011-02-24
| | | | | | | | | Store initial gradient parameters. Add compile asserts in GPU code for BitmapType ordering. Review URL: http://codereview.appspot.com/4178063 git-svn-id: http://skia.googlecode.com/svn/trunk@845 2bbb7eff-a529-9590-31e7-b0007b416f81
* add fClipStack optional field to SkDraw (it is always set by canvas)Gravatar reed@google.com2011-02-23
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@844 2bbb7eff-a529-9590-31e7-b0007b416f81
* merge from android tree:Gravatar djsollen@google.com2011-02-23
| | | | | | | | | | | | | - optional parameters added to descriptorProc and allocPixels - clip options to image decoders - check for xfermode in blitter_a8 - UNROLL loops in blitrow reviewed by reed@google.com git-svn-id: http://skia.googlecode.com/svn/trunk@841 2bbb7eff-a529-9590-31e7-b0007b416f81
* add fixed-width attribute to typefaceGravatar reed@google.com2011-02-23
| | | | | | | | (patch from russellbrenner) git-svn-id: http://skia.googlecode.com/svn/trunk@837 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix warnings about struct being forward declared as a classGravatar bsalomon@google.com2011-02-22
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@833 2bbb7eff-a529-9590-31e7-b0007b416f81
* change virtual setMatrixClip() to take a SkClipStack parameter.Gravatar reed@google.com2011-02-22
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@831 2bbb7eff-a529-9590-31e7-b0007b416f81
* add clipstack to canvas. not used yet, but will be for devices (e.g. gpu) thatGravatar reed@google.com2011-02-22
| | | | | | | | want to see how the clip was built git-svn-id: http://skia.googlecode.com/svn/trunk@824 2bbb7eff-a529-9590-31e7-b0007b416f81
* rename SkDeque::Iter to SkDeque::F2BIter, since it runs front-to-back (in ↵Gravatar reed@google.com2011-02-22
| | | | | | | | | | | | preparation for another iter that runs back-to-front (B2FIter). add unittest for Deque git-svn-id: http://skia.googlecode.com/svn/trunk@821 2bbb7eff-a529-9590-31e7-b0007b416f81
* remove dead conditional codeGravatar reed@google.com2011-02-18
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@811 2bbb7eff-a529-9590-31e7-b0007b416f81
* add no-check version of SkPackARGB32, for callers that want to deliberatelyGravatar reed@google.com2011-02-15
| | | | | | | | | | | build a SkPMColor that may not be valid premultiplied (e.g. compatibility with webgl) see https://bugs.webkit.org/show_bug.cgi?id=54023 git-svn-id: http://skia.googlecode.com/svn/trunk@796 2bbb7eff-a529-9590-31e7-b0007b416f81
* Provide windows font host implementation needed to support TrueType text in ↵Gravatar vandebo@chromium.org2011-02-14
| | | | | | | | | | pdf backend. - Move AdvanceMetric template functions into new file SkAdvancedTypefaceMetrics.cpp Review URL: http://codereview.appspot.com/4174041 git-svn-id: http://skia.googlecode.com/svn/trunk@789 2bbb7eff-a529-9590-31e7-b0007b416f81
* add SkScalarIsFinite(), and use it for a more portable impl of ↵Gravatar reed@google.com2011-02-08
| | | | | | SkRect::isValidCoords() git-svn-id: http://skia.googlecode.com/svn/trunk@775 2bbb7eff-a529-9590-31e7-b0007b416f81
* [PDF] Add support for xfermodes / blend modes.Gravatar vandebo@chromium.org2011-02-08
| | | | | | | | | | | | - Change SkGraphicState to track and set the blend mode (xfermode) for modes built in to PDF (non porter duff modes + src over). - Add SkXfermode::asMode() to retrieve xfermode as an enum for non porter duff modes. - Move SkXfermode.cpp around a bit to support asMode() -- Generally move utility functions toward the top of the file. - Make SkPDFFormXObject an isolated transparency group, as it used for saveLayer, which draws on transparent, not the device background. - Set the graphic state in drawDevice and drawBitmap in order to get the right xfermode and alpha. Review URL: http://codereview.appspot.com/4131043 git-svn-id: http://skia.googlecode.com/svn/trunk@774 2bbb7eff-a529-9590-31e7-b0007b416f81
* update dox for readPixels()Gravatar reed@google.com2011-02-07
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@772 2bbb7eff-a529-9590-31e7-b0007b416f81
* check for SK_BUILD_FOR_BREWGravatar reed@google.com2011-02-07
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@771 2bbb7eff-a529-9590-31e7-b0007b416f81
* Proposed fix for crash in Cr70244.Gravatar wjmaclean@chromium.org2011-02-07
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@764 2bbb7eff-a529-9590-31e7-b0007b416f81
* remove SkRefCnt safeRef() and safeUnref(), and replace the call-sites withGravatar reed@google.com2011-02-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SkSafeRef() and SkSafeUnref(). This is basically a bug waiting to happen. An optimizing compiler can remove checks for null on "this" if it chooses. However, SkRefCnt::safeRef() relies on precisely this check... void SkRefCnt::safeRef() { if (this) { this->ref(); } } Since a compiler might skip the if-clause, it breaks the intention of this method, hence its removal. static inline void SkSafeRef(SkRefCnt* obj) { if (obj) { obj->ref(); } } This form is not ignored by an optimizing compile, so we use it instead. git-svn-id: http://skia.googlecode.com/svn/trunk@762 2bbb7eff-a529-9590-31e7-b0007b416f81
* Cleanup SkPDFTypfaceInfo and make it more generic.Gravatar vandebo@chromium.org2011-02-02
| | | | | | | | | | | | Renamed to SkAdvancedTypefaceMetrics. Include Em size and return all metrics in unscaled font units. Make retrieval of advances optional. Reorder SkAdvancedTypefaceMetrics to be somewhat logical. Change the types of fields in SkAdvancedTypefaceMetrics to their minimum required size. Review URL: http://codereview.appspot.com/4121049 git-svn-id: http://skia.googlecode.com/svn/trunk@752 2bbb7eff-a529-9590-31e7-b0007b416f81
* update dox on bitmap configsGravatar reed@google.com2011-01-28
| | | | | | | | document testing build-flag for large bitmaps git-svn-id: http://skia.googlecode.com/svn/trunk@744 2bbb7eff-a529-9590-31e7-b0007b416f81
* move into core for now, so we can build SkFontHost_FreeType.cppGravatar reed@google.com2011-01-26
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@738 2bbb7eff-a529-9590-31e7-b0007b416f81
* embed a refdict inside SkDeviceGravatar reed@google.com2011-01-25
| | | | | | | | udate unittests to test refdict's destructor git-svn-id: http://skia.googlecode.com/svn/trunk@731 2bbb7eff-a529-9590-31e7-b0007b416f81
* add refdict class, for holding a dictionary of reference-counted objectsGravatar reed@google.com2011-01-25
| | | | | | | | -- experimental git-svn-id: http://skia.googlecode.com/svn/trunk@730 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add Truetype and Type 1 font embedding supportGravatar vandebo@chromium.org2011-01-25
| | | | | | | | | | | | | | | | | | | | | | | | | Sorry this is such a large CL. It was very exploratory for me to make this work. - Add an interface to SkFontHost to retrieve font information and provide NULL implementations on all platforms except Linux. - Segment large Type 1 fonts into fonts with shared resources with 255 glyphs each. - Convert the various Type 1 formats to the form PDF wants. - Update font as we draw text instead of as part of the graphical state. - Remove built-in font support, we can't really use it. Other changes I can pull out to a separate CL if you like. - Add SkTScopedPtr class. - Fix double free of resources. - Fix bug in resource unique-ifying code. - Don't print anything for any empty clip path. - Fix copy paste error - MiterLimit. - Fix sign extension bug in SkPDFString - Fix FlateTest rename that was missed on a previous commit. Review URL: http://codereview.appspot.com/4082042 git-svn-id: http://skia.googlecode.com/svn/trunk@728 2bbb7eff-a529-9590-31e7-b0007b416f81
* fix comments for U8CPU and S16CPUGravatar reed@google.com2011-01-25
| | | | | | | | http://code.google.com/p/skia/issues/detail?id=113 git-svn-id: http://skia.googlecode.com/svn/trunk@723 2bbb7eff-a529-9590-31e7-b0007b416f81
* initialize SkGlyph::fMaskFormat to avoid valgrind warningsGravatar reed@google.com2011-01-13
| | | | | | | | rebaseline gradients now that we dither our 32bit src git-svn-id: http://skia.googlecode.com/svn/trunk@692 2bbb7eff-a529-9590-31e7-b0007b416f81
* add getter/setter for device-factory on canvasGravatar reed@google.com2011-01-11
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@683 2bbb7eff-a529-9590-31e7-b0007b416f81
* add template macro to "safely" perform casts w/o breaking strict-aliasingGravatar reed@google.com2011-01-05
| | | | | | | | fix aliasing warnings git-svn-id: http://skia.googlecode.com/svn/trunk@674 2bbb7eff-a529-9590-31e7-b0007b416f81
* fix build for scalar==fixedGravatar reed@google.com2011-01-04
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@671 2bbb7eff-a529-9590-31e7-b0007b416f81
* add gpu to gm toolGravatar reed@google.com2010-12-23
| | | | | | | | add pass-through read/write pixels API to canvas git-svn-id: http://skia.googlecode.com/svn/trunk@660 2bbb7eff-a529-9590-31e7-b0007b416f81
* merge with changes for GPU backendGravatar reed@android.com2010-12-20
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@637 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix perf regression in Color32.Gravatar senorblanco@chromium.org2010-12-16
| | | | | | | | | | | | | | | | The regression was due to the fact that we were calling PlatformColorProc() for every span (which in turns makes CPUID, a fairly expensive call). Since we draw a lot of rects, and rects have 1-pixel wide spans for the vertical segments, that's a lot of CPUID. Fixed by cacheing the result of PlatformColorProc(), as is done for the other platform-specific blitters. Review URL: http://codereview.appspot.com/3669042/ git-svn-id: http://skia.googlecode.com/svn/trunk@636 2bbb7eff-a529-9590-31e7-b0007b416f81
* SSE2 optimizations for 32bit Color operation.Gravatar senorblanco@chromium.org2010-12-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | [Patch from weiwei.li@intel.com] SSE2 optimization has been added by Stephen White before, this improves the skia performance on SSE2-supporting platform. (please refer to below issues) Issue 171055: More SSE2ification Issue 157141: More SSE2ification Issue 150060: minor tweaks to SSE2 code for -fPIC Issue 144072: SSE2 optimizations for 32bit blending blitters This CL implements SSE2 optimizations for the 32bit Color operation. Like above issues, it uses CPUID to detect for SSE2 and changes the platform procs at runtime as well. The 32bit Color operation is heavily used on Chrome HTML5 canvas operations. Take Microsoft IE test drives Pulsating Bubbles as example (http://ie.microsoft.com/testdrive/Performance/PulsatingBubbles/Default.xhtml), if running this cases on Chrome, the overhead of 32bit Color operation is about 40~50%. So this CL will make skia performance more better, and also make Chrome HTML5 canvas performance more better. Additional, this CL has passed the skia bench & tests validation, the result is pretty good. We also apply this CL to the latest chromium, and re-run Microsoft IE test drives Pulsating Bubbles, the performance is improved by almost 9~10%. git-svn-id: http://skia.googlecode.com/svn/trunk@633 2bbb7eff-a529-9590-31e7-b0007b416f81
* Upstream mulDiv255Ceil() from WebKit to the skia repository.Gravatar senorblanco@chromium.org2010-12-07
| | | | | | | | | | (Patch by Noel Gordon (noel.gordon@gmail.com)) Review URL: http://codereview.appspot.com/3466042 git-svn-id: http://skia.googlecode.com/svn/trunk@632 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add deflate support to SkPDFStream.Gravatar vandebo@chromium.org2010-12-01
| | | | | | Review URL: http://codereview.appspot.com/3326043 git-svn-id: http://skia.googlecode.com/svn/trunk@627 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add safe size/copy functions to Skia.Gravatar wjmaclean@chromium.org2010-11-16
| | | | | | | | | | | | | | | | | | | | | | This patch adds four methods to SkBitmap. There are two functions to return "safe size", defined as the number of pixels from the value returned by getPixels() to the end of the allocated buffer. There is one version of fillPixels() to copy the bitmap instance into an external buffer (with specified size, and using specified stride), and another fillPixels() to copy from an external buffer to the instance bitmap. In the latter case the specified height, width and pixel format must match that used by the bitmap instance, although the specified stride may be any value at least as large as the minimum stride for the specified geometry. It is assumed that the external buffer is of size at least (height - 1)*stride + width * bytesPerPixel. Both fillPixels() functions return false if the copy is not possible with the specified parameters. Review URL: http://codereview.appspot.com/2837041/ git-svn-id: http://skia.googlecode.com/svn/trunk@625 2bbb7eff-a529-9590-31e7-b0007b416f81
* PDF: Add text support with a font framework (font embedding to come).Gravatar vandebo@chromium.org2010-11-11
| | | | | | | | | | | | Supports fakeBold, underline, strikethrough, mode (fill, stroke, both), size, skew, alignment (left, center, right). Missing is drawFontOnPath and font lookup and embedding. Changed SkPDFString to support how it is used from drawText methods. Moved compile assert into SkTypes. Moved constants and utility function used to support fakeBold, underline, and strikethrough into higher level locations. Review URL: http://codereview.appspot.com/2946041 git-svn-id: http://skia.googlecode.com/svn/trunk@624 2bbb7eff-a529-9590-31e7-b0007b416f81
* Remove include of SkGLDevice.h from SkGLCanvas.hGravatar vandebo@chromium.org2010-11-11
| | | | | | | | | | | | | | | | The '#include "SkGLDevice.h"' from include/core/SkDevice.h requires internal Skia code to be added to the include search paths when using the deprecated API. This change adds back SkGLCanvas.cpp to avoid exposing SkGLDevice.h to the public API. The change also includes an explicit virtual destructor on SkDeviceFactory to silence a -Wnon-virtual-dtor warning and allow for -Werror. Original Issue: http://codereview.appspot.com/3009041/ Review URL: http://codereview.appspot.com/2994042 git-svn-id: http://skia.googlecode.com/svn/trunk@623 2bbb7eff-a529-9590-31e7-b0007b416f81
* Several cleanups:Gravatar vandebo@chromium.org2010-10-26
| | | | | | | | | | | Fix the spelling of resource in several places Make getResouce(resourceList) part of SkPDFObject make SkDynamicMemoryWStream::getOffset and SkPDFPage::getMediaBox const Add a temporary NOT_IMPLEMENTED macro instead of using SkASSERT Review URL: http://codereview.appspot.com/2721041 git-svn-id: http://skia.googlecode.com/svn/trunk@619 2bbb7eff-a529-9590-31e7-b0007b416f81
* Move the device capability method to SkDevice.Gravatar vandebo@chromium.org2010-10-26
| | | | | | | | These are not the capabilities of the factory, but of the device. Additionally, it is more often needed when you have a device then when you have a factory, which caused creating of a new factory. Review URL: http://codereview.appspot.com/2720041 git-svn-id: http://skia.googlecode.com/svn/trunk@618 2bbb7eff-a529-9590-31e7-b0007b416f81
* Cleanup/unify matrix transform for PDF backend.Gravatar vandebo@chromium.org2010-10-26
| | | | | | Review URL: http://codereview.appspot.com/2719041 git-svn-id: http://skia.googlecode.com/svn/trunk@617 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix SkDraw::validate to work with vector Devices.Gravatar vandebo@chromium.org2010-10-26
| | | | | | | | Vector devices don't have a (valid) fBitmap, so pass in width and height. Review URL: http://codereview.appspot.com/2718041 git-svn-id: http://skia.googlecode.com/svn/trunk@616 2bbb7eff-a529-9590-31e7-b0007b416f81
* First pieces of SkPDFDevice. Supports:Gravatar vandebo@chromium.org2010-10-20
| | | | | | | | | | | | Matrix transforms. Rendering bitmaps. Basic paint parameters. Rendering rectangles, points, lines, polygons. Render a paint to the page. Review URL: http://codereview.appspot.com/2584041 git-svn-id: http://skia.googlecode.com/svn/trunk@614 2bbb7eff-a529-9590-31e7-b0007b416f81
* Clamp the maximum size of glyph width we will attempt to render.Gravatar scarybeasts@gmail.com2010-10-18
| | | | | | | | Review URL: http://codereview.appspot.com/2519045 git-svn-id: http://skia.googlecode.com/svn/trunk@607 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix a memory leak in the new Canvas/Device workflow.Gravatar vandebo@chromium.org2010-10-15
| | | | | | | | The previous change made it difficult to inherit from SkCanvas without leaking memory. By making SkDeviceFactory not reference counted, the right thing happens more naturally, just NewCanvas : public SkCanvas(new NewDeviceFactory()) {...} Review URL: http://codereview.appspot.com/2530042 git-svn-id: http://skia.googlecode.com/svn/trunk@605 2bbb7eff-a529-9590-31e7-b0007b416f81
* Refactor SkCanvas so that backends don't need to override it.Gravatar vandebo@chromium.org2010-10-13
| | | | | | | | Methods or classes that should go away are marked deprecated. The only thing I know of that breaks backward compatibility is SkCanvas((SkDevice*)NULL), but that is fairly unlikely to occur in the wild because that constructor had a default value of NULL. Review URL: http://codereview.appspot.com/2103045 git-svn-id: http://skia.googlecode.com/svn/trunk@604 2bbb7eff-a529-9590-31e7-b0007b416f81