aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkPaint.cpp
Commit message (Collapse)AuthorAge
* Update SkFlattenable buffers to be more modular.Gravatar djsollen@google.com2012-08-07
| | | | | | | | | | | | | | | | | This CL is an effort to stage the conversion to named parameters for all SkFlattenable commands. This particular stage only does the following two things... 1. Move flattenable buffers from SkFlattenable.h into their own header. 2. Update and Add new read write methods for better clarity and convenience. BUG= Review URL: https://codereview.appspot.com/6448095 git-svn-id: http://skia.googlecode.com/svn/trunk@4980 2bbb7eff-a529-9590-31e7-b0007b416f81
* change SkTextToPathIter to allow continuation even when there is no path forGravatar reed@google.com2012-08-07
| | | | | | | | | | the current glyph. Fixes bug in getTextPath() if there are spaces in the text. Update gm to add space-characters, so images will have to be rebaselined. git-svn-id: http://skia.googlecode.com/svn/trunk@4979 2bbb7eff-a529-9590-31e7-b0007b416f81
* move SkTextToPathIter into private headerGravatar reed@google.com2012-08-07
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@4977 2bbb7eff-a529-9590-31e7-b0007b416f81
* Set fReservedAlign to 0.Gravatar bungeman@google.com2012-08-02
| | | | | | | Cleans scalar context key and should fix http://code.google.com/p/chromium/issues/detail?id=140196 git-svn-id: http://skia.googlecode.com/svn/trunk@4904 2bbb7eff-a529-9590-31e7-b0007b416f81
* Replace the asAFoo() functions in SkImageFilter with canFilterImageGPU() andGravatar senorblanco@chromium.org2012-08-01
| | | | | | | | | | | onFilterImageGPU() virtuals. This allows each filter to implement its own GPU processing code, even for multi-pass filters. Review URL: http://codereview.appspot.com/6449075/ git-svn-id: http://skia.googlecode.com/svn/trunk@4900 2bbb7eff-a529-9590-31e7-b0007b416f81
* Gamma correcting masks.Gravatar bungeman@google.com2012-07-30
| | | | | | | https://codereview.appspot.com/6244068/ git-svn-id: http://skia.googlecode.com/svn/trunk@4841 2bbb7eff-a529-9590-31e7-b0007b416f81
* add SkPaint::getPosTextPath(), with gm to test itGravatar reed@google.com2012-07-20
| | | | | | Review URL: https://codereview.appspot.com/6427055 git-svn-id: http://skia.googlecode.com/svn/trunk@4684 2bbb7eff-a529-9590-31e7-b0007b416f81
* Introduces new SingleTextureEffect base class for GrCustomStage objects.Gravatar tomhudson@google.com2012-07-12
| | | | | | | | | | | | | | This class tracks the texture that the object uses. A future commit will get rid of the GrTexture pointer currenty stored in the GrDrawState, allowing us to have CustomStages *without* textures. Requires gyp change on next roll. http://codereview.appspot.com/6306097/ git-svn-id: http://skia.googlecode.com/svn/trunk@4576 2bbb7eff-a529-9590-31e7-b0007b416f81
* idea: add annotation to SkPaintGravatar reed@google.com2012-07-11
| | | | | | Review URL: https://codereview.appspot.com/6355050 git-svn-id: http://skia.googlecode.com/svn/trunk@4555 2bbb7eff-a529-9590-31e7-b0007b416f81
* This patch implements the diffuse and specular lighting filters in Ganesh. Gravatar senorblanco@chromium.org2012-07-11
| | | | | | | | | | | | | | | | | | | | | | | | | There are three light types for each: distant, point and spot, whose code generation lives in a GrGLLight class hierarchy. This similar to the CPU implementation, where each light type provides a function to compute the vector from the surface plane to the light (surfaceToLight) and to compute the light colour (emitLightColour). Instead of templated member functions, as in the CPU implementation, these are virtual functions to emit the light-specific GLSL code. All of the code for the GPU path lives in the same file as that for the CPU path, SkLightingImageFilter.cpp. In order to provide Ganesh a hook to access it, SkImageFilter now has a asNewCustomStage() virtual, which allows an image filter to return a GrCustomStage representing that filter. Note that this patch does not handle the border conditions correctly (the [top|bottom][Left|Right]Normal() functions in the CPU implementation). That will come in a future patch. Review URL: http://codereview.appspot.com/6345081/ git-svn-id: http://skia.googlecode.com/svn/trunk@4535 2bbb7eff-a529-9590-31e7-b0007b416f81
* Added Inst counting to SkFlattenable-derived classesGravatar robertphillips@google.com2012-06-27
| | | | | | | | http://codereview.appspot.com/6355043/ git-svn-id: http://skia.googlecode.com/svn/trunk@4359 2bbb7eff-a529-9590-31e7-b0007b416f81
* Removing redundant calls to GEN_ID_INC_EVAL in SkPaint.cppGravatar junov@chromium.org2012-06-22
| | | | | | | | Review URL: http://codereview.appspot.com/6302099/ git-svn-id: http://skia.googlecode.com/svn/trunk@4305 2bbb7eff-a529-9590-31e7-b0007b416f81
* Change patheffect to take a (new) StrokeRec object, which encapsulates the fillGravatar reed@google.com2012-05-25
| | | | | | | | | | | | | | | | | | | or stroke parameters for a path. Today, the patheffect only sees if the caller was going to stroke or fill, and if stroke, it just sees the width. With this change, the effect can see all of the related parameters (e.g. cap/join/miter). No other change is intended at this time. After this change, I hope to use this additional data to allow SkDashPathEffect to, at times, apply the stroke as part of its effect, which may be much more efficient than first dashing, and then reading that and stroking it. Most of these files changed just because of the new parameter to filterPath. The key changes are in SkPathEffect.[h,cpp], SkPaint.cpp and SkScalerContext.cpp Review URL: https://codereview.appspot.com/6250051 git-svn-id: http://skia.googlecode.com/svn/trunk@4048 2bbb7eff-a529-9590-31e7-b0007b416f81
* revert 4046 -- GM:pathfill failed on one bot, maybe uninitialized memory ↵Gravatar reed@google.com2012-05-24
| | | | | | somewhere? git-svn-id: http://skia.googlecode.com/svn/trunk@4047 2bbb7eff-a529-9590-31e7-b0007b416f81
* Change patheffect to take a (new) StrokeRec object, which encapsulates the fillGravatar reed@google.com2012-05-24
| | | | | | | | | | | | | | | | | | | or stroke parameters for a path. Today, the patheffect only sees if the caller was going to stroke or fill, and if stroke, it just sees the width. With this change, the effect can see all of the related parameters (e.g. cap/join/miter). No other change is intended at this time. After this change, I hope to use this additional data to allow SkDashPathEffect to, at times, apply the stroke as part of its effect, which may be much more efficient than first dashing, and then reading that and stroking it. Most of these files changed just because of the new parameter to filterPath. The key changes are in SkPathEffect.[h,cpp], SkPaint.cpp and SkScalerContext.cpp Review URL: https://codereview.appspot.com/6249050 git-svn-id: http://skia.googlecode.com/svn/trunk@4046 2bbb7eff-a529-9590-31e7-b0007b416f81
* perform quickReject in drawPoints (which is called by drawLine) just like weGravatar reed@google.com2012-05-16
| | | | | | | | already did in drawRect and drawPath git-svn-id: http://skia.googlecode.com/svn/trunk@3968 2bbb7eff-a529-9590-31e7-b0007b416f81
* add computeFastBounds to SkPathEffect, so we can attempt quickRejectGravatar reed@google.com2012-05-15
| | | | | | Review URL: https://codereview.appspot.com/6209070 git-svn-id: http://skia.googlecode.com/svn/trunk@3964 2bbb7eff-a529-9590-31e7-b0007b416f81
* Decouple the SkFlattenable from SkReader32/SkWriter32.Gravatar djsollen@google.com2012-04-12
| | | | | | | | | | The current impl for SkFlattenable read/write buffers is that they extend from SkReader32 and SkWriter32, but that dependency must be abstract if we are to add any other serialization format. Review URL: https://codereview.appspot.com/5999045 git-svn-id: http://skia.googlecode.com/svn/trunk@3654 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix scaling issue when drawing text on a path.Gravatar djsollen@google.com2012-03-20
| | | | | | | | If the paint is stroked and the font size is small we were incorrectly rendering the sample text. Review URL: https://codereview.appspot.com/5844060 git-svn-id: http://skia.googlecode.com/svn/trunk@3437 2bbb7eff-a529-9590-31e7-b0007b416f81
* add kUTF32_TextEncodingGravatar reed@google.com2012-03-14
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@3387 2bbb7eff-a529-9590-31e7-b0007b416f81
* Erode and dilate image filter effects, CPU and GPU implementations.Gravatar senorblanco@chromium.org2012-03-02
| | | | | | | | Review URL: http://codereview.appspot.com/5656067/ git-svn-id: http://skia.googlecode.com/svn/trunk@3310 2bbb7eff-a529-9590-31e7-b0007b416f81
* move the post cleanup of the rec until after we wack it for maskfilterGravatar reed@google.com2012-03-01
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@3297 2bbb7eff-a529-9590-31e7-b0007b416f81
* move SKPaint's defaults (that might be configurable) into a headerGravatar reed@google.com2012-02-29
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@3280 2bbb7eff-a529-9590-31e7-b0007b416f81
* Merge changes from the android repo upstream to SkiaGravatar djsollen@google.com2012-02-15
| | | | | | Review URL: https://codereview.appspot.com/5545070 git-svn-id: http://skia.googlecode.com/svn/trunk@3199 2bbb7eff-a529-9590-31e7-b0007b416f81
* suport A8 grayscale text with COLOR_LUMINANCE build optionGravatar reed@google.com2012-02-15
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@3197 2bbb7eff-a529-9590-31e7-b0007b416f81
* if SK_USE_COLOR_LUMINANCE is defined, then we store 2 bits of each componentGravatar reed@google.com2012-02-13
| | | | | | | | | to create a per-component-luminance value for the fonthost to use. Only supported on Mac at the moment (but still disabled by default) git-svn-id: http://skia.googlecode.com/svn/trunk@3180 2bbb7eff-a529-9590-31e7-b0007b416f81
* enable color-luminance in font cache (disabled by default)Gravatar reed@google.com2012-02-10
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@3168 2bbb7eff-a529-9590-31e7-b0007b416f81
* extend fastbounds impls to include maskfilters and drawloopers. This allowsGravatar reed@google.com2012-01-30
| | | | | | | | | | us to perform quick-rejects when drawing objects with shadows (esp. text). WebKit draws shadows w/ a looper (fg and shadow) and a maskfilter on the shadow layer. git-svn-id: http://skia.googlecode.com/svn/trunk@3103 2bbb7eff-a529-9590-31e7-b0007b416f81
* add GenA8FromLCD as a hack to force GDI to create the A8 mask from the LCDGravatar reed@google.com2012-01-18
| | | | | | | | | results, rather than asking GDI directly for A8 (which it sometimes decides to interpret as BW) git-svn-id: http://skia.googlecode.com/svn/trunk@3061 2bbb7eff-a529-9590-31e7-b0007b416f81
* add filterImage() entry-point to SkDevice, to allow it to specialize on ↵Gravatar reed@google.com2012-01-05
| | | | | | | | | | subclasses of SkImageFilter. If that returns false, then the filter itself is invoked. git-svn-id: http://skia.googlecode.com/svn/trunk@2977 2bbb7eff-a529-9590-31e7-b0007b416f81
* Allow 0 as a valid text size in SkPaint.Gravatar djsollen@google.com2012-01-04
| | | | | | Review URL: http://codereview.appspot.com/5514043 git-svn-id: http://skia.googlecode.com/svn/trunk@2961 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add SkDEBUGFAIL to clean up use of SkASSERT(!"text");Gravatar tomhudson@google.com2011-12-28
| | | | | | | | | | catch a couple of latent SkASSERT("text") bugs. http://codereview.appspot.com/5504090/ git-svn-id: http://skia.googlecode.com/svn/trunk@2926 2bbb7eff-a529-9590-31e7-b0007b416f81
* initial impl of SkImageFilters : virtual signature will change!Gravatar reed@google.com2011-12-20
| | | | | | | | Do not invest too much in other subclasses until this API solidifies. git-svn-id: http://skia.googlecode.com/svn/trunk@2903 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix Paint == comparison on Android.Gravatar djsollen@google.com2011-12-01
| | | | | | | | | The == operator was incorrect because of Androids use of fGenerationID. This change moves the ID to the end of the paint struct and omits it from the == comparison. Review URL: http://codereview.appspot.com/5437098 git-svn-id: http://skia.googlecode.com/svn/trunk@2780 2bbb7eff-a529-9590-31e7-b0007b416f81
* improve accuracy for luminance coefficientsGravatar reed@google.com2011-11-22
| | | | | | | | rebaseline image in response to that. git-svn-id: http://skia.googlecode.com/svn/trunk@2735 2bbb7eff-a529-9590-31e7-b0007b416f81
* store 3 bits of luminance, but (for now) discretize that in fonthost::filterecGravatar reed@google.com2011-11-22
| | | | | | | | for backward compatibility git-svn-id: http://skia.googlecode.com/svn/trunk@2732 2bbb7eff-a529-9590-31e7-b0007b416f81
* remove GetGammaFlag from SkFontHostGravatar reed@google.com2011-11-22
| | | | | | | | prep for retooling of gamma support git-svn-id: http://skia.googlecode.com/svn/trunk@2730 2bbb7eff-a529-9590-31e7-b0007b416f81
* reorder bits and remove obsolete kForceAA experimental bitGravatar reed@google.com2011-11-21
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@2725 2bbb7eff-a529-9590-31e7-b0007b416f81
* This change makes SkImageFilter and SkBlurImageFilter flattenable/unflattenable.Gravatar senorblanco@chromium.org2011-11-16
| | | | | | | | | The imageblur test also needed to stop calling getDeviceSize(), since it was returning 99999x99999 for the SkPicture case. git-svn-id: http://skia.googlecode.com/svn/trunk@2699 2bbb7eff-a529-9590-31e7-b0007b416f81
* have paint's measure calls respect verticalGravatar reed@google.com2011-11-10
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@2660 2bbb7eff-a529-9590-31e7-b0007b416f81
* add vertical-text bit to paint (not supported yet)Gravatar reed@google.com2011-11-10
| | | | | | | | check-point for using freetype on mac (not enabled yet) git-svn-id: http://skia.googlecode.com/svn/trunk@2657 2bbb7eff-a529-9590-31e7-b0007b416f81
* Update files to use SK_BUILD_FOR_ANDROID.Gravatar djsollen@google.com2011-11-08
| | | | | | | | This CL also removes any unecessary references to the ANDROID definition. Review URL: http://codereview.appspot.com/5354049 git-svn-id: http://skia.googlecode.com/svn/trunk@2629 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add font scaler gm.Gravatar bungeman@google.com2011-11-07
| | | | | | | http://codereview.appspot.com/5337044/ git-svn-id: http://skia.googlecode.com/svn/trunk@2619 2bbb7eff-a529-9590-31e7-b0007b416f81
* experimental -- add SkImageFilter to paint. Not called yet.Gravatar reed@google.com2011-11-03
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@2599 2bbb7eff-a529-9590-31e7-b0007b416f81
* make no promises if we see a looperGravatar reed@google.com2011-10-06
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@2422 2bbb7eff-a529-9590-31e7-b0007b416f81
* quick-rejects based on xfermode, using SkPaint::nothingToDraw()Gravatar reed@google.com2011-10-04
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@2402 2bbb7eff-a529-9590-31e7-b0007b416f81
* Detect that we're drawing to a device that has per-pixel alpha, and if so,Gravatar reed@google.com2011-09-30
| | | | | | | | | | | disable LCD text. Add experimental flag to force AA in fontscaler (windows-only). Hope to remove this later. git-svn-id: http://skia.googlecode.com/svn/trunk@2387 2bbb7eff-a529-9590-31e7-b0007b416f81
* move specialization of 16 -vs- 32 lcd format to the fonthostGravatar reed@google.com2011-09-28
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@2351 2bbb7eff-a529-9590-31e7-b0007b416f81
* kill gamma flags if we're drawing BWGravatar reed@google.com2011-09-28
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@2349 2bbb7eff-a529-9590-31e7-b0007b416f81
* add override for max-text-size for lcdGravatar reed@google.com2011-09-13
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@2258 2bbb7eff-a529-9590-31e7-b0007b416f81