| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[raster] Don't use lowp when sampling outside range [-32,768, 32,767] Uses highp for bilerp if we know we will be sampling points too large for int16_t. Examples of this happening are in the GM's in [1] and the raster pipeline version of [2]. Added fDstBounds to SkStageRec struct, so that I could pass in the bounds of geometry in device space to use to check if we can use lowp. This is done by transforming with the baseInv matrix in SkImageShader.cpp which goes from device space to shader space. Then we can check the transformed device to shader bounds pts. Review suggestion: Entry point to adding geometry bounds to the blitter: -SkDraw.cpp/h Had to add parameter to SkAutoBlitterChoose, SkBlitter::Choose, and SkCreateRasterPipelineBlitter: -SkAutoBlitterChoose.h -SkBlitter.h/cpp -SkBlitter_A8.h/cpp -SkCoreBlitters.h Field added to SkStageRec to pass the bounds to the raster pipeline blitter: -SkEffectPriv.h -SkRasterPipelineBlitter.cpp -SkDraw_atlas.cpp -SkDraw_text.cpp -SkRuntimeEffectPriv.h -SkColorFilterBase.cpp -SkWorkingFormatColorFilter.cpp -SkWorkingColorSpaceShader.cpp -SkDraw_vertices.cpp Logic for forcing to highp when needed: -SkImageShader.cpp -SkRasterPipeline_opts.h -SkRasterPipelineOpList.h [1] https://skia-review.googlesource.com/c/skia/+/1030356 [2] https://skia-review.googlesource.com/c/skia/+/1043716 Bug: 404394639 Change-Id: Ic72d6e0418c259d2e8f2931e35c1476e997f4deb Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1043476 Auto-Submit: Daniel Dilan <danieldilan@google.com> Commit-Queue: Daniel Dilan <danieldilan@google.com> Reviewed-by: Kaylee Lubick <kjlubick@google.com> | 9 个月前 | |
Replace SkScalarAve with sk_float_midpoint After [1], SkScalarAve can underflow with denormalized values and yield results outside the input range. Instead of attempting to further tweak SkScalarAve, use the existing sk_float_midpoint which avoids these issues by using double precision. [1] https://skia-review.googlesource.com/c/skia/+/1073436 Bug: b/452701616 Change-Id: I2ed47c6fc91f32ef7b14411af3c5f9a68b36a7d2 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1078076 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Florin Malita <fmalita@google.com> | 8 个月前 | |
Delete all filegroups that supported legacy (non-buffet) Bazel build We don't need most of the flags and all these file groups which had made a big "ball o mud" build. Change-Id: I690f38c3555e390b7c8d459b4649a270c3e03ce2 Bug: b/40045064 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/889266 Commit-Queue: Kaylee Lubick <kjlubick@google.com> Reviewed-by: Ben Wagner <bungeman@google.com> | 1 年前 | |
Replace SkScalarAve with sk_float_midpoint After [1], SkScalarAve can underflow with denormalized values and yield results outside the input range. Instead of attempting to further tweak SkScalarAve, use the existing sk_float_midpoint which avoids these issues by using double precision. [1] https://skia-review.googlesource.com/c/skia/+/1073436 Bug: b/452701616 Change-Id: I2ed47c6fc91f32ef7b14411af3c5f9a68b36a7d2 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1078076 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Florin Malita <fmalita@google.com> | 8 个月前 | |
Use pathbuilder to keep path immutable Change-Id: I1116a203d28a530dfda590964e5ce54bcaf1876f Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1056716 Reviewed-by: Kaylee Lubick <kjlubick@google.com> Commit-Queue: Mike Reed <mike@reedtribe.org> Reviewed-by: Florin Malita <fmalita@google.com> | 9 个月前 | |
Replace SkIsFinite with a parameter-pack implementation. This should be more ergonomic, and will generate slightly better code than SkIsFinite(a, b) && SkIsFinite(c, d). The algorithm has been slightly tweaked; it's now a hybrid of the previous approaches. The first element of the list is subtracted from itself (yielding zero or NAN) and multiplied against all the subsequent elements. Finally the value is compared against itself. This gives us one instruction per value, plus one comparison op, and does not require us to synthesize a constant zero. Change-Id: I7f87c09a74bc847f0afc10346b51211b17811c1c Reviewed-on: https://skia-review.googlesource.com/c/skia/+/842484 Commit-Queue: Brian Osman <brianosman@google.com> Auto-Submit: John Stiles <johnstiles@google.com> Reviewed-by: Michael Ludwig <michaelludwig@google.com> Reviewed-by: Brian Osman <brianosman@google.com> | 2 年前 | |
Replace some includes with forward declares in public headers Follow-up from https://skia-review.googlesource.com/c/skia/+/594807 These work as-is with my local Chrome build at least, so that's a good sign. Change-Id: Iaf459eae20e749c83fe73a14341979b68e14ab69 Bug: skia:13052 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/596076 Commit-Queue: Kevin Lubick <kjlubick@google.com> Owners-Override: Kevin Lubick <kjlubick@google.com> Reviewed-by: Ben Wagner <bungeman@google.com> | 3 年前 | |
[base] Move many files into base Moved from include/private into include/private/base: - SkAlignedStorage.h - SkContainers.h - SkFloatBits.h - SkPathEnums.h - SkTArray.h - SkTDArray.h - SkTypeTraits.h - SkVx.h - SkCPUTypes.h* Moved from include/core into include/private/base: - SkMath.h - SkSpan.h We still want SkSpan.h to be a part of the public API, so include/core/SkSpan.h still exists, it just includes include/private/base/SkSpan_impl.h We want to remove SkMath.h from the public API (most client uses have been removed already), but for now it too has a shim header file in include/core/SkMath.h As per the design of base, there are no includes inside of base on Skia files not also in base. SkLeftShift moved out of SkTypes.h and into SkMath.h, as that seemed like a better fit. U8CPU and U16CPU moved into their own file, SkCPUTypes.h while we decide where their future lies. Suggested review order: - include/private/base/BUILD.bazel - include/private/BUILD.bazel - include/BUILD.bazel - gn/*.gni (these are generated from the BUILD.bazel files) - BUILD.gn - public.bzl - Everything else, mostly done with find and replace and cleaned up with the rewrite_includes.py script. Change-Id: Icce0d0c445863c6908b63ec31b9595de400988dc Bug: skia:13983 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/629317 Reviewed-by: Ben Wagner <bungeman@google.com> Commit-Queue: Kevin Lubick <kjlubick@google.com> Owners-Override: Kevin Lubick <kjlubick@google.com> | 3 年前 | |
Use new path::iter - also add assert when accessing conicWeight() Change-Id: I093da54fa80b92ee41f00f81ac7a8b45102afc47 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1035518 Reviewed-by: Florin Malita <fmalita@google.com> Reviewed-by: Eric Boren <borenet@google.com> Commit-Queue: Mike Reed <mike@reedtribe.org> | 10 个月前 | |
Change patheffect's virtual to take pathbuilder - this rippled into pathmeasure and stroking Plenty more to do after this: - more sites (internal) that can change to take builders - we might start passing PathRaw as const src&, so that the builder itself can be an input, rather than first snapping off a path. Change-Id: I689da01f58d4829a6cde0c60d18b2deaafa5a6fd Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1012818 Reviewed-by: Florin Malita <fmalita@google.com> Commit-Queue: Mike Reed <mike@reedtribe.org> Reviewed-by: Daniel Dilan <danieldilan@google.com> | 1 年前 | |
Convert gms to use pathbuilder Change-Id: I2bf56b822e2c8b5e21068ad3ac4479835dd0fc4d Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1058796 Reviewed-by: Daniel Dilan <danieldilan@google.com> Reviewed-by: Kaylee Lubick <kjlubick@google.com> | 9 个月前 | |
Change patheffect's virtual to take pathbuilder - this rippled into pathmeasure and stroking Plenty more to do after this: - more sites (internal) that can change to take builders - we might start passing PathRaw as const src&, so that the builder itself can be an input, rather than first snapping off a path. Change-Id: I689da01f58d4829a6cde0c60d18b2deaafa5a6fd Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1012818 Reviewed-by: Florin Malita <fmalita@google.com> Commit-Queue: Mike Reed <mike@reedtribe.org> Reviewed-by: Daniel Dilan <danieldilan@google.com> | 1 年前 | |
Rename SkEmbossMaskFilter::EmbossLight back to SkEmbossMaskFilter::Light Suggestion from michaelludwig@ to fix Android roll Change-Id: I2ccd45ba7622d5b585907ed370bd984eef02302f Reviewed-on: https://skia-review.googlesource.com/c/skia/+/986356 Reviewed-by: Michael Ludwig <michaelludwig@google.com> Commit-Queue: Noelle Scobie <nscobie@google.com> Reviewed-by: Daniel Dilan <danieldilan@google.com> | 1 年前 | |
Rename SkEmbossMaskFilter::EmbossLight back to SkEmbossMaskFilter::Light Suggestion from michaelludwig@ to fix Android roll Change-Id: I2ccd45ba7622d5b585907ed370bd984eef02302f Reviewed-on: https://skia-review.googlesource.com/c/skia/+/986356 Reviewed-by: Michael Ludwig <michaelludwig@google.com> Commit-Queue: Noelle Scobie <nscobie@google.com> Reviewed-by: Daniel Dilan <danieldilan@google.com> | 1 年前 | |
use SkSpan in SkMatrix API Change-Id: I6c7f0fbac16063062f0d30a5394413cf812afcee Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1002459 Reviewed-by: Florin Malita <fmalita@google.com> Reviewed-by: Daniel Dilan <danieldilan@google.com> Commit-Queue: Mike Reed <mike@reedtribe.org> | 1 年前 | |
Rename SkEmbossMaskFilter::EmbossLight back to SkEmbossMaskFilter::Light Suggestion from michaelludwig@ to fix Android roll Change-Id: I2ccd45ba7622d5b585907ed370bd984eef02302f Reviewed-on: https://skia-review.googlesource.com/c/skia/+/986356 Reviewed-by: Michael Ludwig <michaelludwig@google.com> Commit-Queue: Noelle Scobie <nscobie@google.com> Reviewed-by: Daniel Dilan <danieldilan@google.com> | 1 年前 | |
[graphite] Add HighContrast and Overdraw colorFilters to Precompilation system These are the last two colorFilters. Bug: b/259548724 Change-Id: I565674594402e1aee0671e413d4c6d2ca507296f Reviewed-on: https://skia-review.googlesource.com/c/skia/+/856264 Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Jim Van Verth <jvanverth@google.com> | 2 年前 | |
Allow mask filters to effect shading properties for autolayer In order to implement embossMaskFilter, we needed a way to have the output of the maskfilter affect the shading of a layer, before the image filter, in order to replicate current behavior. To do this we have the the maskfilter asImageFilter() function return whether it is just the coverage or if it will return an rgba image after the filter. When restoring the layer, this will draw that result into the dst [1]. The new impl for asImageFilter() takes in a paint that it uses to determine the original color/shading properties. It can then apply filters to it and mask it by the original or a different coverage. Although embossMaskFilter is technically deprecated, this is necessary because some clients still rely on the raster version of it, and we don't want to break them when we deprecate the old mask filter implementations. Due to the fact that we are now blending the coverage to the shading in the mask filter, results may look incorrect for draws with certain blend modes for emboss. This is a tradeoff we are willing to make due to the fact that this function is technically deprecated, as well as in java for android. This will look correct for SrcOver blends, which is the only usages for this mask filter in Android Apps as far as we can tell. Two more caveats to this implementation: - In order to replicate the original effect we extended the current lighting shader. This is still going to be slightly different than the original due to coverage blur calculation, normal vector calculation, and precision being different. - SkImageFilters.h - SKLightingImageFilter.cpp - sksl_rt_shader.sksl - sksl_rt_shader.minified.sksl - sksl_rt_shader.unoptimized.sksl - Small text with this mask filter will be drawn as a path so that the autolayer is applied and gets the mask filter effect, otherwise we don't currently have a way to apply it internally and cache it yet, but will be done in the future. - SubRunContainer.cpp [1] https://source.chromium.org/chromium/chromium/src/+/main:third_party/skia/src/core/SkCanvas.cpp;drc=26fa5b6a22b36be60bc17cccd5754c44dcff3334;l=872 Bug: 304823483 Change-Id: Ie41818a630e7fd4ecb66fca5e2afa67a9a5f1195 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/978432 Reviewed-by: Michael Ludwig <michaelludwig@google.com> Commit-Queue: Daniel Dilan <danieldilan@google.com> | 1 年前 | |
Mark more single argument constructors explicit I had a more expansive search pattern and found a few more candidates this time around. Gemini CLI did most of the work here and it does not appear we were implicitly using the conversion. Change-Id: Ia51d127a099dca4f76f7e13012d9f19dd1038e50 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1076816 Auto-Submit: Kaylee Lubick <kjlubick@google.com> Reviewed-by: Florin Malita <fmalita@google.com> Commit-Queue: Florin Malita <fmalita@google.com> | 8 个月前 | |
Allow mask filters to effect shading properties for autolayer In order to implement embossMaskFilter, we needed a way to have the output of the maskfilter affect the shading of a layer, before the image filter, in order to replicate current behavior. To do this we have the the maskfilter asImageFilter() function return whether it is just the coverage or if it will return an rgba image after the filter. When restoring the layer, this will draw that result into the dst [1]. The new impl for asImageFilter() takes in a paint that it uses to determine the original color/shading properties. It can then apply filters to it and mask it by the original or a different coverage. Although embossMaskFilter is technically deprecated, this is necessary because some clients still rely on the raster version of it, and we don't want to break them when we deprecate the old mask filter implementations. Due to the fact that we are now blending the coverage to the shading in the mask filter, results may look incorrect for draws with certain blend modes for emboss. This is a tradeoff we are willing to make due to the fact that this function is technically deprecated, as well as in java for android. This will look correct for SrcOver blends, which is the only usages for this mask filter in Android Apps as far as we can tell. Two more caveats to this implementation: - In order to replicate the original effect we extended the current lighting shader. This is still going to be slightly different than the original due to coverage blur calculation, normal vector calculation, and precision being different. - SkImageFilters.h - SKLightingImageFilter.cpp - sksl_rt_shader.sksl - sksl_rt_shader.minified.sksl - sksl_rt_shader.unoptimized.sksl - Small text with this mask filter will be drawn as a path so that the autolayer is applied and gets the mask filter effect, otherwise we don't currently have a way to apply it internally and cache it yet, but will be done in the future. - SubRunContainer.cpp [1] https://source.chromium.org/chromium/chromium/src/+/main:third_party/skia/src/core/SkCanvas.cpp;drc=26fa5b6a22b36be60bc17cccd5754c44dcff3334;l=872 Bug: 304823483 Change-Id: Ie41818a630e7fd4ecb66fca5e2afa67a9a5f1195 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/978432 Reviewed-by: Michael Ludwig <michaelludwig@google.com> Commit-Queue: Daniel Dilan <danieldilan@google.com> | 1 年前 | |
Change patheffect's virtual to take pathbuilder - this rippled into pathmeasure and stroking Plenty more to do after this: - more sites (internal) that can change to take builders - we might start passing PathRaw as const src&, so that the builder itself can be an input, rather than first snapping off a path. Change-Id: I689da01f58d4829a6cde0c60d18b2deaafa5a6fd Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1012818 Reviewed-by: Florin Malita <fmalita@google.com> Commit-Queue: Mike Reed <mike@reedtribe.org> Reviewed-by: Daniel Dilan <danieldilan@google.com> | 1 年前 | |
Change patheffect's virtual to take pathbuilder - this rippled into pathmeasure and stroking Plenty more to do after this: - more sites (internal) that can change to take builders - we might start passing PathRaw as const src&, so that the builder itself can be an input, rather than first snapping off a path. Change-Id: I689da01f58d4829a6cde0c60d18b2deaafa5a6fd Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1012818 Reviewed-by: Florin Malita <fmalita@google.com> Commit-Queue: Mike Reed <mike@reedtribe.org> Reviewed-by: Daniel Dilan <danieldilan@google.com> | 1 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 9 个月前 | ||
| 8 个月前 | ||
| 1 年前 | ||
| 8 个月前 | ||
| 9 个月前 | ||
| 2 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 10 个月前 | ||
| 1 年前 | ||
| 9 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 8 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 |