aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/effects
Commit message (Collapse)AuthorAge
* Move filter/wrap out of GrSamplerState into GrTextureParamsGravatar bsalomon@google.com2012-07-25
| | | | | | | | | Review URL: http://codereview.appspot.com/6440046/ git-svn-id: http://skia.googlecode.com/svn/trunk@4773 2bbb7eff-a529-9590-31e7-b0007b416f81
* Remove uniform names from top of GrGLProgram.cpp, builder responsible for ↵Gravatar bsalomon@google.com2012-07-25
| | | | | | | | | | | | "u" and stage num tags. Also add LF eol-style property to some files in src/gpu/effects. Review URL: http://codereview.appspot.com/6448049/ git-svn-id: http://skia.googlecode.com/svn/trunk@4770 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix static assert on non-windows compilers(?)Gravatar bsalomon@google.com2012-07-25
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@4759 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add GL uniform managerGravatar bsalomon@google.com2012-07-25
| | | | | | | | Review URL: http://codereview.appspot.com/6423066/ git-svn-id: http://skia.googlecode.com/svn/trunk@4758 2bbb7eff-a529-9590-31e7-b0007b416f81
* Use asNewCustomStage instead of asABitmap in SkGpuDevice, also removed ↵Gravatar rileya@google.com2012-07-25
| | | | | | | | | now-unecessary twoPointRadialParams parameter from asABitmap. In SkGpuDevice we still fall back on using asABitmap for effects that don't have asNewCustomStage implemented, but it still simplifies things a fair amount. Review URL: https://codereview.appspot.com/6430060 git-svn-id: http://skia.googlecode.com/svn/trunk@4755 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add SkScalarPow.Gravatar bungeman@google.com2012-07-25
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@4754 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix TableColorFilter memory leak.Gravatar tomhudson@google.com2012-07-24
| | | | | | | | http://codereview.appspot.com/6437045/ git-svn-id: http://skia.googlecode.com/svn/trunk@4733 2bbb7eff-a529-9590-31e7-b0007b416f81
* Replace new with SkNEW in more effects classes.Gravatar tomhudson@google.com2012-07-24
| | | | | | | | http://codereview.appspot.com/6431052/ git-svn-id: http://skia.googlecode.com/svn/trunk@4727 2bbb7eff-a529-9590-31e7-b0007b416f81
* Added asNewCustomStage to SkShader and implemented it for all the gradient ↵Gravatar rileya@google.com2012-07-20
| | | | | | | | | shaders. Not actually hooked up yet, but it should be ready to replace asABitmap for a future CL. Review URL: https://codereview.appspot.com/6351113 git-svn-id: http://skia.googlecode.com/svn/trunk@4702 2bbb7eff-a529-9590-31e7-b0007b416f81
* SkNEW instead of new for lighting effects.Gravatar tomhudson@google.com2012-07-20
| | | | | | | | http://codereview.appspot.com/6351112/ git-svn-id: http://skia.googlecode.com/svn/trunk@4689 2bbb7eff-a529-9590-31e7-b0007b416f81
* New subclasses for both Gr and GrGL gradient effect classes. Gravatar rileya@google.com2012-07-19
| | | | | | | | | This replaces GrSingleTextureEffect as the base for gradient effects (so we'll be able to do gradient effects without textures), and adds a base class to the GL gradient custom stage implementations (which will soon handle generating the appropriate code to pass colors in and lerp instead of using a cached texture for simpler gradient cases). Also added a custom stage for linear gradients. Review URL: https://codereview.appspot.com/6426049 git-svn-id: http://skia.googlecode.com/svn/trunk@4674 2bbb7eff-a529-9590-31e7-b0007b416f81
* This CL implements the Ganesh path for the SkTable_ColorFilter color ↵Gravatar twiz@google.com2012-07-18
| | | | | | | | | transformation. A new texture stage dedicated to color transforms has been added, along with the new custom stage implementing the LUT. Review URL: https://codereview.appspot.com/6351081 git-svn-id: http://skia.googlecode.com/svn/trunk@4663 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fix bad allocator access in r4616Gravatar bsalomon@google.com2012-07-16
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@4619 2bbb7eff-a529-9590-31e7-b0007b416f81
* Remove uniform var pointers from custom effectsGravatar bsalomon@google.com2012-07-16
| | | | | | | | Review URL: http://codereview.appspot.com/6374067/ git-svn-id: http://skia.googlecode.com/svn/trunk@4616 2bbb7eff-a529-9590-31e7-b0007b416f81
* There were three different problems with lighting filters:Gravatar senorblanco@chromium.org2012-07-13
| | | | | | | | | | | | | | | | | | | | | | | 1) Texture offsets (fImageIncrement) have to be signed depending on whether the texture is "right way up" (texture upload) or "upside down" (render target), so the surface normals were coming out upside down. 2) Light normals have to y-negated on upload These two bugs were cancelling each other out in SampleApp, (where we were testing w/textures) but not in Chrome (where we were testing w/render targets). 3) The extract-the-height-from-the-view-matrix hack I was using to compare light positions vs. gl_FragCoord doesn't work in Chrome where we compile with GR_STATIC_RECT_VB, and the view matrix contains more than the viewport transform (to accomodate the canonical vertex buffer). Fixed by passing the destination render target to GrGLProgramStage::setData(), so it can flip the light positions in Y on the CPU. Review URL: http://codereview.appspot.com/6343109/ git-svn-id: http://skia.googlecode.com/svn/trunk@4605 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
* Fix lighting filters on Windows, and re-enable the GPU path.Gravatar senorblanco@chromium.org2012-07-11
| | | | | | | | Review URL: http://codereview.appspot.com/6354094/ git-svn-id: http://skia.googlecode.com/svn/trunk@4557 2bbb7eff-a529-9590-31e7-b0007b416f81
* Disable GPU path for lighting filters, due to Windows weirdness. Unreviewed.Gravatar senorblanco@chromium.org2012-07-11
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@4547 2bbb7eff-a529-9590-31e7-b0007b416f81
* Mac GLSL fixes; unreviewed.Gravatar senorblanco@chromium.org2012-07-11
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@4539 2bbb7eff-a529-9590-31e7-b0007b416f81
* More build fixes; unreviewed.Gravatar senorblanco@chromium.org2012-07-11
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@4537 2bbb7eff-a529-9590-31e7-b0007b416f81
* Mac build fix; unreviewed.Gravatar senorblanco@chromium.org2012-07-11
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@4536 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
* Minor cleanup in lighting image filters: Made the light color a member of theGravatar senorblanco@chromium.org2012-07-09
| | | | | | | | | | | light, rather than the filter, so computation is localized. Changed a couple of non-const refs in the image filter creation API const refs. Changed "const SkColor&" to "SkColor", since it's just a uint32_t anyway. Review URL: http://codereview.appspot.com/6352071/ git-svn-id: http://skia.googlecode.com/svn/trunk@4466 2bbb7eff-a529-9590-31e7-b0007b416f81
* Added GPU implementation of 2-point conical gradient.Gravatar rileya@google.com2012-07-03
| | | | | | Review URL: https://codereview.appspot.com/6354062 git-svn-id: http://skia.googlecode.com/svn/trunk@4442 2bbb7eff-a529-9590-31e7-b0007b416f81
* fix leak of Light object (in this private instance, the caller is transferringGravatar reed@google.com2012-06-27
| | | | | | | ownership of the object, so the receive does not need to call ref). Review URL: https://codereview.appspot.com/6348045 git-svn-id: http://skia.googlecode.com/svn/trunk@4360 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
* Cleanup flattening code to properly serialize lighting image filters.Gravatar djsollen@google.com2012-06-26
| | | | | | Review URL: https://codereview.appspot.com/6333070 git-svn-id: http://skia.googlecode.com/svn/trunk@4340 2bbb7eff-a529-9590-31e7-b0007b416f81
* Register some flattenable factories.Gravatar scroggo@google.com2012-06-25
| | | | | | | | | | | Now, SkComposeShaders, SkDiscreteMapper, SkCosineMapper, Line2DPathEffect, and SkTransparentShader can be flattened and unflattened. This makes more of our samples work when using a pipe. Review URL: https://codereview.appspot.com/6338064 git-svn-id: http://skia.googlecode.com/svn/trunk@4334 2bbb7eff-a529-9590-31e7-b0007b416f81
* Raster implementation of diffuse and specular lighting filters. Externally,Gravatar senorblanco@chromium.org2012-06-22
| | | | | | | | | | | | | the caller instantiates a light (distant, point or spot), and an SkDiffuseLightingFilter or SkSpecularLightingImageFilter with that light. A Sobel edge detection filter is applied to the alpha of the incoming bitmap, and the result is used as a height map for lighting calculations. Review URL: http://codereview.appspot.com/6302101/ git-svn-id: http://skia.googlecode.com/svn/trunk@4314 2bbb7eff-a529-9590-31e7-b0007b416f81
* Move SkColorTable into its own header and reduce includes in SkFlattenable.hGravatar djsollen@google.com2012-06-12
| | | | | | Review URL: https://codereview.appspot.com/6299072 git-svn-id: http://skia.googlecode.com/svn/trunk@4236 2bbb7eff-a529-9590-31e7-b0007b416f81
* Register Two_Point_Conical_Gradient for flattening.Gravatar scroggo@google.com2012-06-11
| | | | | | | | | Without being registered, the twopointconical GM fails when using --pipe or --serialize, since this gradient will not be flattened/unflattened. Review URL: https://codereview.appspot.com/6294060 git-svn-id: http://skia.googlecode.com/svn/trunk@4226 2bbb7eff-a529-9590-31e7-b0007b416f81
* fix typo: fA is dx^2 + dx^2 - dr^2, not dx^2 - dy^2 - dr^2Gravatar mike@reedtribe.org2012-06-09
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@4217 2bbb7eff-a529-9590-31e7-b0007b416f81
* extend asAGradient for Conical type (to be implemented by PDF and XPS)Gravatar reed@google.com2012-06-07
| | | | | | Review URL: https://codereview.appspot.com/6308051 git-svn-id: http://skia.googlecode.com/svn/trunk@4207 2bbb7eff-a529-9590-31e7-b0007b416f81
* optimize quad-root for conical gradientsGravatar reed@google.com2012-06-07
| | | | | | Review URL: https://codereview.appspot.com/6307052 git-svn-id: http://skia.googlecode.com/svn/trunk@4204 2bbb7eff-a529-9590-31e7-b0007b416f81
* Add new gradient to support HTML Canvas2D two-point-radial-gradient. Ours isGravatar reed@google.com2012-06-06
| | | | | | | | | | | | called (for now at least) TwoPointConical, to distinguish it from the existing one (TwoPointRadial), and to reflect its odd behavior where it draws transparent outside the boundary of the "cone" between the two circles. This impl is unsupported by GPU and Printing at the moment, and Chrome does not yet invoke it. Review URL: https://codereview.appspot.com/6299051 git-svn-id: http://skia.googlecode.com/svn/trunk@4197 2bbb7eff-a529-9590-31e7-b0007b416f81
* fix warnings on Mac in src/effectsGravatar caryclark@google.com2012-06-06
| | | | | | | | | | | | | | | | | | Fix these class of warnings: - unused functions - unused locals - sign mismatch - missing function prototypes - missing newline at end of file - 64 to 32 bit truncation The changes prefer to link in dead code in the debug build with 'if (false)' than to comment it out, but trivial cases are commented out or sometimes deleted if it appears to be a copy/paste error. Review URL: https://codereview.appspot.com/6299049 git-svn-id: http://skia.googlecode.com/svn/trunk@4181 2bbb7eff-a529-9590-31e7-b0007b416f81
* temporary avoid zero-divide (to avoid assert in fixedpoint build)Gravatar reed@google.com2012-06-05
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@4166 2bbb7eff-a529-9590-31e7-b0007b416f81
* temporary:Gravatar reed@google.com2012-06-05
| | | | | | | | | - suppress PDF for twopointradial GM until we fix its assert/failure (vandebo) - detect divide-by-zero and abort for now (reed) git-svn-id: http://skia.googlecode.com/svn/trunk@4165 2bbb7eff-a529-9590-31e7-b0007b416f81
* Fixed flattening of SkStippleMaskFilterGravatar robertphillips@google.com2012-06-05
| | | | | | | | http://codereview.appspot.com/6279052/ git-svn-id: http://skia.googlecode.com/svn/trunk@4154 2bbb7eff-a529-9590-31e7-b0007b416f81
* remove mutable apis on SkColorMatrixFilter, must use constructor.Gravatar reed@google.com2012-06-04
| | | | | | | | | | fix flattening to not write function-ptrs (no go for serialization), so we store the raw float values now. Slight change to GM/DRT images for GPU possible. Just rebaseline. Review URL: https://codereview.appspot.com/6273052 git-svn-id: http://skia.googlecode.com/svn/trunk@4143 2bbb7eff-a529-9590-31e7-b0007b416f81
* remove public function-ptr based colorfilterGravatar reed@google.com2012-06-04
| | | | | | Review URL: https://codereview.appspot.com/6286046 git-svn-id: http://skia.googlecode.com/svn/trunk@4141 2bbb7eff-a529-9590-31e7-b0007b416f81
* Windows compiler complaint cleanupGravatar robertphillips@google.com2012-05-31
| | | | | | | | http://codereview.appspot.com/6262047/ git-svn-id: http://skia.googlecode.com/svn/trunk@4098 2bbb7eff-a529-9590-31e7-b0007b416f81
* Refactor dictionaries for use by entities other than just SkPictureGravatar djsollen@google.com2012-05-30
| | | | | | Review URL: https://codereview.appspot.com/6101043 git-svn-id: http://skia.googlecode.com/svn/trunk@4077 2bbb7eff-a529-9590-31e7-b0007b416f81
* special-case dashing a single line-segment. We can go much faster since weGravatar reed@google.com2012-05-29
| | | | | | | can apply the stroke as we go, eliminating the generic stroker. Review URL: https://codereview.appspot.com/6250070 git-svn-id: http://skia.googlecode.com/svn/trunk@4062 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
* Iter::next takes a bool (defaults to true for now) if we want to consume ↵Gravatar reed@google.com2012-05-16
| | | | | | | | | | degenerates. path-filling and stroking pass false, as they already are written to handle small segments (and it makes next() run 2x faster if you pass false). Review URL: https://codereview.appspot.com/6214049 git-svn-id: http://skia.googlecode.com/svn/trunk@3974 2bbb7eff-a529-9590-31e7-b0007b416f81
* fix SK_RESTRICT warnings related to overrides on windowsGravatar reed@google.com2012-05-11
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@3913 2bbb7eff-a529-9590-31e7-b0007b416f81
* move SkStrokePathEffect into hiding for now, as its functionality is rethought.Gravatar reed@google.com2012-05-10
| | | | git-svn-id: http://skia.googlecode.com/svn/trunk@3890 2bbb7eff-a529-9590-31e7-b0007b416f81