mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-24 18:55:30 +00:00
489c83b1dd
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 |
||
---|---|---|
.. | ||
AutoMaskData.h | ||
BasicCanvasLayer.cpp | ||
BasicCanvasLayer.h | ||
BasicColorLayer.cpp | ||
BasicCompositor.cpp | ||
BasicCompositor.h | ||
BasicContainerLayer.cpp | ||
BasicContainerLayer.h | ||
BasicImageLayer.cpp | ||
BasicImages.cpp | ||
BasicImplData.h | ||
BasicLayerManager.cpp | ||
BasicLayers.h | ||
BasicLayersImpl.cpp | ||
BasicLayersImpl.h | ||
BasicPaintedLayer.cpp | ||
BasicPaintedLayer.h | ||
GrallocTextureHostBasic.cpp | ||
GrallocTextureHostBasic.h | ||
MacIOSurfaceTextureHostBasic.cpp | ||
MacIOSurfaceTextureHostBasic.h | ||
TextureClientX11.cpp | ||
TextureClientX11.h | ||
TextureHostBasic.cpp | ||
TextureHostBasic.h | ||
X11BasicCompositor.cpp | ||
X11BasicCompositor.h | ||
X11TextureSourceBasic.cpp | ||
X11TextureSourceBasic.h |