Граф коммитов

28 Коммитов

Автор SHA1 Сообщение Дата
Jeff Muizelaar c1d05774cc Bug 1804952. Translate rectangle PushClip() to PushClipRect() r=lsalzman
This helps out when clipping to rects with canvas2d. It reduces GPU
usage on the React-Stockcharts benchmark from ~70% down to ~45% on
a desktop gen9 Intel GPU.

It would be better to handle this in the D2D backend like we do in other
backends, but there's not an easy way to detect rectangle paths there.
This was the easiest place to slot it in and shouldn't have too high a
cost for the other places we use the recording backend.

Differential Revision: https://phabricator.services.mozilla.com/D164764
2022-12-16 04:04:39 +00:00
Lee Salzman bc333ceb93 Bug 1761404 - Add DrawTarget DrawShadow API call. r=jrmuizel,gfx-reviewers
This implements a new DrawTarget API call, DrawShadow. This can be used to draw
the shadow of a given Path and Pattern. Unlike DrawSurfaceWithShadow, this only
draws the shadow to simplify the resulting implementation. DrawTarget provides
a default implementation that will draw a blurred shadow to a transient surface
before handing it off to DrawSurfaceWithShadow, allowing existing DrawTarget
implementations to function without having to implement the new API at all.

Within DrawTargetWebgl, DrawShadow allows direct caching of the shadow in the
existing PathCache mechanism, unlike DrawSurfaceWithShadow which would usually
be called with different transient surfaces every time, even if the input
patterns actually matched.

CanvasRenderingContext2D is modified to call DrawShadow when only a shadow
needs to be applied without any filter. AdjustedTarget is modified to wrap
the necessary DrawTarget draw calls so they can be dispatched appropriately.

Since a lot of redundant shadow parameters are shared between DrawShadow and
DrawSurfaceWithShadow, and since a lot of consumers of these functions need
to also pass around these parameters, this also bundles these into a new
ShadowOptions structure to make this easier.

Differential Revision: https://phabricator.services.mozilla.com/D142026
2022-04-01 19:03:29 +00:00
Lee Salzman f581a9af28 Bug 1745556 - Add support for stroked paths to path cache. r=gfx-reviewers,aosmond
Differential Revision: https://phabricator.services.mozilla.com/D135902
2022-01-14 17:30:22 +00:00
Sylvestre Ledru 131d0c6a02 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D35622

--HG--
extra : moz-landing-system : lando
2019-07-06 08:18:28 +00:00
Nicolas Silva c44ff5af9a Bug 1546894 - Keep track of current and begin points in path objects in case we'll create a builder from them. r=lsalzman
Because of the way the canvas 2D implementation juggles between path builders and paths, we have to keep track of current and first points in the path, in case a builder is created out of it.

Differential Revision: https://phabricator.services.mozilla.com/D33757

--HG--
extra : source : c79b3af2395894b449731fccdd9eb006b4d0189e
2019-06-05 09:55:46 +02:00
Nicolas Silva 082205e739 Bug 1546894 - Fix PathBuilderSkia::CurrentPoint. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D32456

--HG--
extra : source : 566648165de4b80550337e6052f46eba653f0328
2019-05-27 12:36:32 +02:00
Mihai Alexandru Michis 5d91cbb8ef Backed out 2 changesets (bug 1546894) for causing mochitest failures at test_canvas.html CLOSED TREE
Backed out changeset b3176ad6f3a7 (bug 1546894)
Backed out changeset 5bc7f1dbafe5 (bug 1546894)
2019-05-27 15:44:26 +03:00
Nicolas Silva 2f30052cd5 Bug 1546894 - Fix PathBuilderSkia::CurrentPoint. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D32456

--HG--
extra : moz-landing-system : lando
2019-05-27 10:41:40 +00:00
Sylvestre Ledru e226046cb8 Bug 1547143 - Format the tree: Be prescriptive with the pointer style (left) r=Ehsan
# ignore-this-changeset

Depends on D28954

Differential Revision: https://phabricator.services.mozilla.com/D28956

--HG--
extra : moz-landing-system : lando
2019-05-01 08:47:10 +00:00
Jean-Yves Avenard 11ac9e9cf8 Bug 1540581 - P6. Tidy some C++ declarations in gfx/. r=gerald,jrmuizel
* Remove redundant virtual keywords
* Mark all destructors of inheriting classes as virtual for clarity
* Mark all classes without virtual destructor as final (exposed errors)
* Make destructor virtual where it needed to be (some were missing)
* Replace empty ({}) code declaration in header with = default
* Remove virtual unused methods

I probably missed some, it quickly became a rabbit hole.

Differential Revision: https://phabricator.services.mozilla.com/D26060

--HG--
extra : moz-landing-system : lando
2019-04-11 12:36:51 +00:00
Sylvestre Ledru 265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Chris Peterson 37efe4d0e6 Bug 1428535 - Add missing override specifiers to overridden virtual functions. r=froydnj
MozReview-Commit-ID: DCPTnyBooIe

--HG--
extra : rebase_source : cfec2d96faeb11656d86d760a34e0a04cacddb13
extra : intermediate-source : 6176724d63788b0fe8caa3f91607c2d93dbaa7ec
extra : source : eebbb0600447f9b64aae3bcd47b4be66c02a51ea
2017-11-05 19:37:28 -08:00
Daniel Holbert 126bd9e1a4 Bug 1412427 part 8: (automated patch) Switch a bunch of C++ files in gfx to use our standard mode lines. r=jrmuizel
This patch was generated automatically by the "modeline.py" script, available
here: https://github.com/amccreight/moz-source-tools/blob/master/modeline.py

For every file that is modified in this patch, the changes are as follows:
 (1) The patch changes the file to use the exact C++ mode lines from the
     Mozilla coding style guide, available here:
https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Coding_Style#Mode_Line

 (2) The patch deletes any blank lines between the mode line & the MPL
     boilerplate comment.

 (3) If the file previously had the mode lines and MPL boilerplate in a
     single contiguous C++ comment, then the patch splits them into
     separate C++ comments, to match the boilerplate in the coding style.

MozReview-Commit-ID: 77D61xpSmIl

--HG--
extra : rebase_source : c6162fa3cf539a07177a19838324bf368faa162b
2017-10-27 16:10:06 -07:00
Jonathan Watt ed38f5c352 Bug 1245845, part 1 - Stop Moz2D Path::CopyToBuilder/TransformedCopyToBuilder implicitly converting the Path's FillRule. r=Bas 2016-02-08 02:15:54 +00:00
Lee Salzman f15be30759 Bug 1188462 - Fix inclusion of skia headers to use correct directory prefixes. r=jrmuizel 2015-07-29 16:31:40 -04:00
Birunthan Mohanathas a8939590de Bug 1182996 - Fix and add missing namespace comments. rs=ehsan
The bulk of this commit was generated by running:

  run-clang-tidy.py \
    -checks='-*,llvm-namespace-comment' \
    -header-filter=^/.../mozilla-central/.* \
    -fix
2015-07-13 08:25:42 -07:00
Nathan Froyd 974d8120f2 Bug 1161627 - part 2 - machine-convert TemporaryRef<T> to already_AddRefed<T>; r=ehsan
This conversion was done with the script:

  find . -name '*.cpp' -o -name '*.h' -o -name '*.mm' -o -name '*.idl' | \
    egrep -v 'cairo-win32-refptr.h|RefPtr.h|TestRefPtr.cpp' | \
    xargs sed -i -e 's/mozilla::TemporaryRef</already_AddRefed</g' \
                 -e 's/TemporaryRef</already_AddRefed</g'

Manual fixups were performed in the following instances:

- We handled mfbt/RefPtr.h manually so as to not convert TemporaryRef itself
  into already_AddRefed.

- The following files had explicit Move() calls added to make up for the lack
  of a copy constructor on already_AddRefed:

  dom/base/ImageEncoder.cpp
  dom/media/MediaTaskQueue.{h,cpp}
  dom/media/webaudio/PannerNode.cpp

- A redundant overload for MediaTaskQueue::Dispatch was deleted.

- A few manual fixups were required in mfbt/tests/TestRefPtr.cpp.

- Comments, using declarations, and forward declarations relating to
  TemporaryRef in dom/canvas/ and gfx/layers/ were changed to refer to
  already_AddRefed.
2015-06-17 10:00:52 -04:00
Jonathan Watt 2e4b869e2e Bug 1077544 - Add a GetBackendType() method to PathBuilder. r=Bas 2014-10-04 12:13:29 +01:00
Ehsan Akhgari 3cc9664125 Bug 1060802 - Fix some more bad implicit constructors in gfx; r=roc 2014-08-31 23:31:20 -04:00
Ehsan Akhgari e1b60f2947 Bug 935778 - Part 0.6: Add support for MOZ_DECLARE_REFCOUNTED_VIRTUAL_TYPENAME and use it in moz2d
X-Git-Commit-ID: bc256ac44cbba52b04f8f0390965632ec4507608
2014-02-24 08:23:37 -05:00
Benoit Jacob f447d87c57 Bug 958375 - 8/9 - Make remaining Moz2D enums typed - r=Bas
Specifically:
  r=Bas for manual changes
  f=Bas for automatic changes
See attachments on the bug for the specific breakdown.
2014-01-10 14:06:17 -05:00
Benoit Jacob ccaa35314d Bug 958375 - 6/9 - Make BackendType and NativeSurfaceType typed enums - r=Bas
Specifically:
  r=Bas for manual changes
  f=Bas for automatic changes
See attachments on the bug for the specific breakdown.
2014-01-10 14:06:16 -05:00
Kevin Simons 2192973715 Bug 944646 - Implement Skia path in ScaledFontBase::CopyGlyphsToBuilder. r=mattwoodrow
Handle PathBuilderSkia with a separate path specifically for
BACKEND_SKIA DrawTarget instances.
2013-12-12 17:37:00 -05:00
Bas Schouten e4b4010ae6 Bug 935297 - Part 4: Implement new API to allow streaming paths to arbitrary sinks on Skia. r=mattwoodrow 2013-11-07 22:11:48 +13:00
Bas Schouten fb943c7b41 Bug 935297 - Part 1: Add new API to allow streaming paths to arbitrary sinks. r=mattwoodrow 2013-11-07 22:10:12 +13:00
Tobias Schneider 4e7558b2c4 Bug 803124 - Implement mozIsPointInStroke. r=jmuizelaar 2012-10-29 16:54:53 +01:00
Gervase Markham 82ff7027aa Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
Matt Woodrow 4fc2827fb5 Bug 688367 - Add Skia backend to Azure. r=jrmuizel 2011-11-03 08:55:03 +13:00