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

61 Коммитов

Автор SHA1 Сообщение Дата
Andrew Osmond 91b071ed14 Bug 1618345 - Enforce proper color management by splitting gfx::Color into sRGBColor and DeviceColor types. r=jrmuizel
gfx::Color is currently misused in many places. The DrawTargets expect
the color space to be in device space, e.g. what we are actually going
to draw using. Everything sitting above generally deals with sRGB, as
specified in CSS. Sometimes we missed the conversion from sRGB to device
space when issuing draw calls, and similarly sometimes we converted the
color to device space twice.

This patch splits the type in two. sRGBColor and DeviceColor now
represent sRGB and device color spaces respectively. DrawTarget only
accepts DeviceColor, and one can get a DeviceColor from an sRGBColor via
the ToDeviceColor helper API. The reftests now pass with color
management enabled for everything (e.g. CSS) instead of just tagged
raster images.

There will be a follow up patch to enable color management everywhere by
default on all supported platforms.

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

--HG--
extra : moz-landing-system : lando
2020-03-09 14:16:17 +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
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
Ehsan Akhgari ca162bee20 Bug 1508472 - Part 4: Fourth batch of comment fix-ups in preparation for the tree reformat r=sylvestre
This is a best effort attempt at ensuring that the adverse impact of
reformatting the entire tree over the comments would be minimal.  I've used a
combination of strategies including disabling of formatting, some manual
formatting and some changes to formatting to work around some clang-format
limitations.

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

--HG--
extra : moz-landing-system : lando
2018-11-28 09:16:55 +00:00
Mason Chang b4e1afb9e9 Bug 1365876. Blur text shadows on the CPU. r=lsalzman 2017-07-24 13:48:14 -07:00
Kartikaya Gupta 4826f32d87 Bug 1377169 - Turn gfxRect into a typedef. r=jrmuizel
One thing to note here is that the Scale function on gfxRect has a
different implementation than that in gfx::Rect which is replacing it.
The former just scales the width/height directly whereas the latter
scales the XMost/YMost and recomputes the width/height.

MozReview-Commit-ID: 5FImdIaNfC3

--HG--
extra : rebase_source : 98662d2a52ff9652ec60b066641a07c6d5ee8e08
2017-07-05 11:22:00 -04: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
Jonathan Kew 28a9e2cf14 Bug 1265452 - Remove use of nsAutoPtr from gfx/thebes. r=jrmuizel 2016-04-15 20:45:37 +01: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
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 1ff080fe8c Bug 1213545. Carry x,y offsets with inset box shadows. r=mstange 2015-10-19 10:53:04 -07:00
Nathan Froyd 01583602a9 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi

--HG--
rename : mfbt/nsRefPtr.h => mfbt/RefPtr.h
2015-10-18 01:24:48 -04:00
Nathan Froyd 583afa0965 Bug 1207245 - part 3 - switch all uses of mozilla::RefPtr<T> to nsRefPtr<T>; r=ehsan
This commit was generated using the following script, executed at the
top level of a typical source code checkout.

 # Don't modify select files in mfbt/ because it's not worth trying to
 # tease out the dependencies currently.
 #
 # Don't modify anything in media/gmp-clearkey/0.1/ because those files
 # use their own RefPtr, defined in their own RefCounted.h.
find . -name '*.cpp' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    grep -v 'mfbt/RefPtr.h' | \
    grep -v 'mfbt/nsRefPtr.h' | \
    grep -v 'mfbt/RefCounted.h' | \
    grep -v 'media/gmp-clearkey/0.1/' | \
    xargs perl -p -i -e '
 s/mozilla::RefPtr/nsRefPtr/g; # handle declarations in headers
 s/\bRefPtr</nsRefPtr</g; # handle local variables in functions
 s#mozilla/RefPtr.h#mozilla/nsRefPtr.h#; # handle #includes
 s#mfbt/RefPtr.h#mfbt/nsRefPtr.h#;       # handle strange #includes
'

 # |using mozilla::RefPtr;| is OK; |using nsRefPtr;| is invalid syntax.
find . -name '*.cpp' -o -name '*.mm' | xargs sed -i -e '/using nsRefPtr/d'

 # RefPtr.h used |byRef| for dealing with COM-style outparams.
 # nsRefPtr.h uses |getter_AddRefs|.
 # Fixup that mismatch.
find . -name '*.cpp' -o -name '*.h'| \
    xargs perl -p -i -e 's/byRef/getter_AddRefs/g'
2015-10-18 00:40:10 -04:00
Mason Chang 884b562d08 Bug 1211363. Calculate min inset blur with max border radius. r=mstange 2015-10-16 08:27:51 -07:00
Nicholas Nethercote d0c4a9db1b Bug 1208300 (part 4) - Remove gfxRGBA and some related things. r=jwatt.
Hooray!

--HG--
extra : rebase_source : d691b55eef5a8655aa98b81b5398452a5ebe860d
2015-09-24 19:24:16 -07:00
Nicholas Nethercote b33cbd6c59 Bug 1207944 (part 7) - Use gfx::Color instead of gfxRGBA in BlurCache. r=jwatt.
This avoids several gfxRBGA-to-Color conversions.

--HG--
extra : rebase_source : 9b60c0dd0169bd8b208639dd3a28cad4591179dd
2015-09-24 00:43:32 -07:00
Nicholas Nethercote 842dd1cf5a Bug 1207741 - Remove gfxIntSize. r=nical.
gfxIntSize is just a typedef of gfx::IntSize, so this is very mechanical. The
only tricky part is deciding for each occurrence whether to replace it with
IntSize, gfx::IntSize or mozilla::gfx::IntSize; in all cases I went with the
shortest one that worked given the existing "using namespace" declarations.

--HG--
extra : rebase_source : 67fd15f87222b16defa70ef795c6d77dfacf1c36
2015-09-23 11:49:05 -07:00
Mason Chang 91a913a490 Bug 1188075 - Speed up inner box-shadow drawing by using a border-image style approach. r=mstange 2015-09-24 09:50:29 -07:00
Mason Chang fd3141b39a Backout bug 1188075 for graphical artifacts. r=me 2015-09-21 08:14:05 -07:00
Mason Chang 876417d4b1 Bug 1188075 - Speed up inner box-shadow drawing by using a border-image style approach. r=mstange 2015-09-18 11:23:55 -07: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
Amanda Sambath c023bf2139 Bug 1158120 - Replace gfxIntSize by mozilla::gfx::IntSize in gfx/thebes part 1. r=nical 2015-06-01 10:26:19 +02:00
Andrea Marchesini ade2831035 Bug 1156632 - Remove unused forward class declarations - patch 6 - the rest of the tree, r=ehsan 2015-04-22 08:29:24 +02:00
Jonathan Watt f6f8d40041 Bug 1091794 - Replace gfxCornerSizes with Moz2D's RectCornerRadii. r=mattwoodrow 2014-11-01 10:45:10 +00:00
Jeff Muizelaar a05cabfa30 Bug 1038218. Convert some of gfxAlphaBlur's nsAutoPtr's to UniquePtrs. r=bas
--HG--
extra : rebase_source : e0b5db8c5ab28664f4733969bf42cb4585cb22f8
2014-07-21 11:06:11 -04:00
Jonathan Watt 9207dbc8c0 Bug 1025553, part 2 - Change gfxMatrix from a struct to a class. r=Bas 2014-06-25 12:59:46 +01:00
Birunthan Mohanathas bc0233fe47 Bug 1026535 - Fix mismatched class/struct tags. r=ehsan 2014-06-18 17:57:51 -07:00
Matt Woodrow cb06cb865b Bug 940845 - Part 6: Cache blurs when possible. r=Bas 2014-06-10 17:51:24 -04:00
Jonathan Watt 200e95e9eb Bug 996901 - Remove lots of gfxASurface.h and gfxImageSurface.h includes and forward declarations that are no longer needed. r=mattwoodrow 2014-04-16 01:41:40 +01:00
Matt Woodrow 3b444e24fd Bug 944571 - Part 1: Convert gfxAlphaBoxBlur to use Moz2D surfaces instead of Thebes. r=Bas 2013-10-02 17:20:47 +13:00
Matt Woodrow 6aa23543fa Bug 940845 - Follow-up to add comments that got missed when rebasing. 2013-11-26 12:29:20 +13:00
Matt Woodrow e464096b18 Bug 940845 - Part 5: Propogate the blur standard deviation up instead of the blur radius. r=roc 2013-11-26 12:09:04 +13:00
Matt Woodrow cf7881aa40 Bug 940845 - Part 4: Add BlurRectangle to gfxAlphaBoxBlur and use it. r=roc 2013-11-26 12:08:29 +13:00
Matt Woodrow 701b35213b Bug 940845 - Part 1: Remove unused offset parameter from gfxAlphaBoxBlur. r=roc 2013-11-26 12:05:36 +13:00
Ehsan Akhgari eff9a278ad Bug 924221 - Minimize the #includes in gfx/thebes; r=bjacob
--HG--
extra : rebase_source : af198eb9b9739ce718ba0d16c385624a722cde51
2013-10-07 19:15:59 -04:00
Birunthan Mohanathas c742394e75 Bug 784739 - Switch from NULL to nullptr in gfx/thebes/; r=ehsan 2013-07-31 11:44:31 -04:00
Jeff Gilbert d04e5840f2 Bug 877382 - Remove THEBES_API decorator. - r=BenWa 2013-05-29 14:59:24 -07:00
David Zbarsky 3154e1b535 Bug 784004 - Don't include Layers.h everywhere Part 3 r=nical 2012-08-21 00:06:46 -04:00
Gervase Markham 82ff7027aa Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
Joe Drew 9099fa5d4d Bug 685767 - Factor blurring out into its own class, and use it from gfxAlphaBoxBlur. r=mattwoodrow 2011-11-18 22:19:24 +13:00
Kyle Huey 990c3809c4 Back out Bug 685767 for leaking. 2011-11-17 13:01:11 -05:00