Commit Graph

126 Commits

Author SHA1 Message Date
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
Bas Schouten
027d1994fb Bug 1526045 - Part 3: Ensure DrawTarget validity inside gfxBlur::InitDrawTarget. r=rhunt
Differential Revision: https://phabricator.services.mozilla.com/D21900

--HG--
extra : rebase_source : 3bba335a9582d706a8c537358ad37b6d1be0e7fc
2019-03-04 10:49:02 +01:00
Ryan Hunt
85ff4bdc33 Bug 1523969 part 8 - Move method definition inline comments to new line in 'gfx/'. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D21108

--HG--
extra : rebase_source : 48a4586f507891f3a2f0f970e9b9a0b15f0f3d61
2019-02-25 16:07:19 -06:00
Chris Peterson
8c5a13370c Bug 1528881 - Part 1: gfx/thebes: Make some global functions static. r=jrmuizel
clang's -Wmissing-prototypes option identifies global functions that can be made static (because they're only called from one compilation unit) or removed (if they're never called).

gfx/thebes/gfxBlur.cpp:444:6 [-Wmissing-prototypes] no previous prototype for function 'CacheBlur'
gfx/thebes/gfxPlatform.cpp:1087:6 [-Wmissing-prototypes] no previous prototype for function 'IsFeatureSupported'
gfx/thebes/gfxPlatform.cpp:1355:6 [-Wmissing-prototypes] no previous prototype for function 'SourceBufferDestroy'
gfx/thebes/gfxPlatform.cpp:1365:6 [-Wmissing-prototypes] no previous prototype for function 'SourceSurfaceDestroyed'
gfx/thebes/gfxPlatform.cpp:2422:6 [-Wmissing-prototypes] no previous prototype for function 'VideoDecodingFailedChangedCallback'
gfx/thebes/gfxPlatform.cpp:559:6 [-Wmissing-prototypes] no previous prototype for function 'WebRenderDebugPrefChangeCallback'

widget/GfxInfoBase.cpp:82:6 [-Wmissing-prototypes] no previous prototype for function 'InitGfxDriverInfoShutdownObserver'

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

--HG--
extra : source : b8333099bca51db166839862e4a3918c5e8874f2
extra : intermediate-source : acb4bb2466df7fb22ca1a76e13c79186ea938bc1
extra : histedit_source : 16cf3a96596046e8111774a147b23ade0676c8e1
2019-02-17 01:18:01 -08:00
Tooru Fujisawa
7983faeb5d Bug 1511393 - Use c-basic-offset: 2 in Emacs mode line for C/C++ code. r=nbp 2018-12-01 04:52:05 +09: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
Lee Salzman
907071413e Bug 1486810 - round sizes in blur assertion. r=rhunt 2018-09-11 14:33:45 -04:00
Nicolas Silva
514e74387d Bug 1474722 - Prevent large rect integer overflows without forbidding large nine-patches. r=Bas 2018-08-01 17:13:12 +02:00
Nicolas Silva
dae63b2e5b Bug 1464243 - Early return when running into blur rects that are way too large. r=Bas 2018-06-20 11:23:09 +02:00
Emilio Cobos Álvarez
fffb25b74f Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj
This was done automatically replacing:

  s/mozilla::Move/std::move/
  s/ Move(/ std::move(/
  s/(Move(/(std::move(/

Removing the 'using mozilla::Move;' lines.

And then with a few manual fixups, see the bug for the split series..

MozReview-Commit-ID: Jxze3adipUh
2018-06-01 10:45:27 +02: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
Milan Sreckovic
099cfc4242 Bug 1423570: Use BaseRect access methods instead of member variables in gfx/ r=bas.schouten
MozReview-Commit-ID: ZGySgc9oP3

--HG--
extra : rebase_source : 23aadc10e9885002290155684b2c495780d979ce
2017-12-19 15:48:39 -05:00
Andreea Pavel
7fb4cc447c Merge inbound to mozilla-central r=merge a=merge 2017-11-11 11:59:20 +02:00
Nathan Froyd
68ce6c6d2a Bug 1415961 - construct {Blur,Gradient}CacheData more efficiently; r=jrmuizel
We pass in `const {Blur,Gradient}CacheKey&` to these functions.  There's
no need to copy the cache keys here; we can just Move() the existing
objects in instead.  Doing this saves unnecessary allocations and/or
refcounting.
2017-11-10 16:43:54 -05:00
Kartikaya Gupta
00ef028ed3 Bug 1416267 - Update gfxContext matrix functions to avoid flip-flopping between float and double matrices. r=jrmuizel
The core of this change is in gfxContext.*:
- change gfxContext::CurrentMatrix() and gfxContext::SetMatrix() to
  return and take a Matrix respectively, instead of converting to
  and from a gfxMatrix (which uses doubles). These functions therefore
  will now match the native representation of the transform in gfxContext.
- add two new functions CurrentMatrixDouble() and SetMatrixDouble() that
  do what the old CurrentMatrix() and SetMatrix() used to do, i.e.
  convert between the float matrix and the double matrix.

The rest of the change is just updating the call sites to avoid round-
tripping between floats and doubles where possible. Call sites that are
hard to fix are migrated to the new XXXDouble functions which preserves
the existing behaviour.

MozReview-Commit-ID: 5sbBpLUus3U
2017-11-10 21:14:09 -05:00
Sebastian Hengst
8c31f6f143 Backed out changeset d0ddd9a98e74 (bug 1415961) for bustage in thebes. r=backout on a CLOSED TREE 2017-11-10 00:11:59 +02:00
Nathan Froyd
d553d84aeb Bug 1415961 - construct {Blur,Gradient}CacheData more efficiently; r=jrmuizel
We pass in `const {Blur,Gradient}CacheKey&` to these functions.  There's
no need to copy the cache keys here; we can just Move() the existing
objects in instead.  Doing this saves unnecessary allocations and/or
refcounting.
2017-11-09 17:03:11 -05:00
David Anderson
94d1c71ca2 Create DrawTargetCaptures for blur operations when OMTP is enabled. (bug 1395478 part 3, r=mattwoodrow)
--HG--
extra : rebase_source : 902e1d5238b831c3ce4a0f1da98741b3aa040b6d
2017-10-31 12:02:30 -07:00
Mason Chang
b4e1afb9e9 Bug 1365876. Blur text shadows on the CPU. r=lsalzman 2017-07-24 13:48:14 -07:00
Mason Chang
7e5e3ec643 Bug 1379029 AddUserData to hold onto the calloc blur memory. r=lsalzman 2017-07-11 08:05:53 -07:00
Bill McCloskey
548982bb83 Bug 1350676 - Label nsExiprationTracker subclasses BlurCache & GradientCache (r=dvander)
MozReview-Commit-ID: 6O1gGQAIYJQ
2017-07-03 16:19:58 -07:00
Lee Salzman
e4cbb5aad8 Bug 1365794 - optimize box blur surfaces for destination draw target. r=mchang
MozReview-Commit-ID: CfAwZZy6v5M
2017-06-16 16:50:39 -04:00
Mason Chang
844f99874d Bug 1361787. Don't use the minimum box shadow when printing box shadows. r=lsalzman 2017-05-11 09:56:15 -07:00
Lee Salzman
8b90fc84ee Bug 1357692 - only accelerate gfxAlphaBoxBlur when blur area is large enough to balance resource creation costs. r=mchang
MozReview-Commit-ID: HcRahaq8ORa
2017-05-09 12:59:08 -04:00
Lee Salzman
f72fa46b41 bug 1333749 - verify that inset box shadows are symmetric before attempting to mirror them. r=mchang
MozReview-Commit-ID: 2q3WH25PWSs
2017-01-25 14:53:38 -05:00
Ting-Yu Lin
e857e2115f Bug 1320014 Part 15 - Replace RectCorner with Corner. r=mats
Rewrite RectCornerRadii::operator==() and RectCornerRadii::AreRadiiSame() by
explicitly expand all the comparisons, and rewrite other explicit for-loops
with NS_FOR_CSS_FULL_CORNERS.

MozReview-Commit-ID: BLBJHla8kyk

--HG--
extra : rebase_source : 464d8973eae6fa58e6931cc65d61900605926b85
2017-01-05 17:07:07 +08:00
Lee Salzman
2b779e5359 Bug 1250037 - part 2 - use DrawTarget::DrawSurfaceWithShadow to render box shadows on platforms that accelerate it. r=mchang
MozReview-Commit-ID: 5MERz8RmGUd
2016-11-21 13:17:09 -05:00
Lee Salzman
3d2a652e53 Bug 1250037 - part 1 - only blur one quadrant of a box-shadow and mirror it to the other quadrants. r=mchang
MozReview-Commit-ID: B4FSDmAMfXK
2016-11-21 13:16:59 -05:00
Sebastian Hengst
fd08842ecf Backed out changeset 25840ab0d453 (bug 1250037) for assertion in Windows 8 x64 debug bc6 in browser_UITour.js. r=backout 2016-11-18 00:30:41 +01:00
Sebastian Hengst
bf0af8baea Backed out changeset 5504280ce43c (bug 1250037) 2016-11-18 00:29:02 +01:00
Lee Salzman
8acbd8d04a Bug 1250037 - part 2 - use DrawTarget::DrawSurfaceWithShadow to render box shadows on platforms that accelerate it. r=mchang
MozReview-Commit-ID: 5MERz8RmGUd
2016-11-17 16:04:05 -05:00
Lee Salzman
e79ff03dbb Bug 1250037 - part 1 - only blur one quadrant of a box-shadow and mirror it to the other quadrants. r=mchang
MozReview-Commit-ID: B4FSDmAMfXK
2016-11-17 16:03:59 -05:00
Bas Schouten
8f48ecccca Bug 1296665: gfxBlur should attempt to create a box shadow for the correct type of DrawTarget. r=mchang
MozReview-Commit-ID: 5J3GwKya83w
2016-09-15 13:53:12 +02:00
Kartikaya Gupta
029140f6bf Back out bug 1296665 (cset b071166a07bc) for causing bug 1303434. rs=mstange 2016-09-16 17:32:36 -04:00
Bas Schouten
b452c90e96 Bug 1296665: gfxBlur should attempt to create a box shadow for the correct type of DrawTarget. r=mchang
MozReview-Commit-ID: 5J3GwKya83w
2016-09-15 13:53:12 +02:00
Ryan Hunt
92206266e3 Bug 1294586 - Remove dependency on gfxPlatform from CreateDrawTargetFromData. r=dvander
MozReview-Commit-ID: A355fBJKWP6

--HG--
extra : rebase_source : 85ffd4b9d5f9708a1666bbc8e229ba576cc97680
2016-08-11 14:54:08 -07:00
Nicholas Nethercote
a02611e830 Bug 1276824 (part 1) - Rename gfxContext::ForDrawTarget{,WithTransform}(). r=milan.
The new names Create{,PreservingTransform}OrNull() better communicate that
these functions (a) do object creation, and (b) are fallible.

--HG--
extra : rebase_source : a36bd9a2bcdfae281868959403f811f2bc690ad4
2016-06-07 09:39:56 +10:00
Jonathan Watt
03036022ec Bug 1277862, part 2 - Rename Moz2D's Filter to SamplingFilter in the rest of gfx/. r=Bas 2016-05-25 17:01:18 +01:00
Milan Sreckovic
e0b2b9e425 Bug 1259513: Make gfxContext constructor private, use a utility function that can return nullptr. r=bas,lsalzman
MozReview-Commit-ID: rHhLEDZEQt

--HG--
extra : rebase_source : 4988f3f488c19dd35a9979e96f78a5511ee8f3d2
2016-04-12 15:18:11 -04:00
Mason Chang
2b9181914e Bug 1250947. Fill area outside blur with solid color. r=mstange 2016-03-29 08:24:21 -07:00
Nathan Froyd
701d601a46 Bug 1249368 - use UniquePtr instead of nsAutoArrayPtr in gfxAlphaBoxBlur; r=jrmuizel 2016-02-18 14:10:00 -05:00
Bas Schouten
0ba3291163 Bug 1247775 - Part 2: Remove Direct2D 1.0 code from Thebes. r=dvander
MozReview-Commit-ID: EC8yhkvvood
2016-02-13 14:33:27 +01:00
Carsten "Tomcat" Book
eebf5d68a5 Backed out changeset 4adb7586410a (bug 1247775) 2016-02-12 08:49:29 +01:00
Bas Schouten
341a0f43ec Bug 1247775 - Part 2: Remove Direct2D 1.0 code from Thebes. r=dvander
MozReview-Commit-ID: EC8yhkvvood

--HG--
extra : rebase_source : fbb8a83f359e31bf77a058e202666df7f244893e
2016-02-12 02:05:35 +01:00
Nicholas Nethercote
f13b985259 Bug 1236802 (part 1) - Moz2Dify some blur code a little. r=mattwoodrow.
gfxAlphaBoxBlur::GetInsetBlur() can be trivially passed a DrawTarget instead of
a gfxContext.

The patch also removes the DrawTarget parameter from GetBlur() because it can
be obtained from the gfxContext parameter.

--HG--
extra : rebase_source : 52cdd685ed3ecdc11affb05fa5299b0a792231fb
2016-01-10 14:05:26 -08:00
Mason Chang
4300e45d71 Bug 1227216. Part 2: Fallback to blur destination rect if a large shadow offset occurs. r=mstange 2015-12-04 11:05:47 -08:00
Mason Chang
380d965bc0 Bug 1227216. Part 1: Only draw surface on inset box shadows if dest and src are equal sizes. r=mstange 2015-12-04 11:05:45 -08:00
Nicholas Nethercote
489c83b1dd Bug 1223690 - Remove implicit Rect conversions. r=jrmuizel.
gfxRect can be implicitly constructed from IntRect, which hides a number of
implicit conversion points, makes Moz2Dification harder, and has some
surprising effects.

This patch removes the implicit constructor and replaces it with an explicit
conversion function:

  gfxRect ThebesRect(const IntRect&)

This is the obvious outcome of removing the constructor.

But there is also a second, less obvious outcome: currently we do a number of
IntRect-to-Rect conversions using ToRect(), which (surprisingly) works because
it turns into an implicit IntRect-to-gfxRect conversion (via the implicit
constructor) combined with an explicit gfxRect-to-Rect conversion (via
ToRect()). I.e. we do two conversions, going from a Moz2D type to a Thebes
type and back to a Moz2D type!

So this patch also changes these conversion. It moves this existing function:

  Rect ToRect(const IntRect&)

from gfx2DGlue.h -- where it doesn't really belong because it doesn't involve
any Thebes types -- to gfx/2d/Rect.h, templatifying and renaming it as
IntRectToRect() in the process.

The rest of the patch deals with fall-out from these changes. The call sites
change as follows:

- IntRect-to-gfxRect conversions:
  - old: implicit
  - new: ThebesRect()

- IntRect-to-Rect conversions:
  - old: ToRect()
  - new: IntRectToRect()

--HG--
extra : rebase_source : e4e4c2ad10b36ecad4d57d1630158f3374e403be
2015-11-11 14:23:14 -08:00
Mason Chang
1dcb06648d Bug 1211264. Fallback to render dest rect with outer box shadows on non-int transforms. r=mstange 2015-11-05 07:29:52 -08:00
Mason Chang
d8ac6a8660 Bug 1216506. Properly initialize min inset box shadow color to black. r=mstange 2015-11-02 13:30:03 -08:00