From de37e93bb2457b2bc105473cc728dfb723b9e91d Mon Sep 17 00:00:00 2001 From: David Zbarsky Date: Thu, 26 Dec 2013 13:06:53 -0500 Subject: [PATCH] Bug 952977: Use gfx::Matrix in ipdl r=nical --- content/canvas/public/DocumentRendererChild.h | 6 ++-- content/canvas/src/DocumentRendererChild.cpp | 9 +++-- dom/ipc/PBrowser.ipdl | 4 +-- dom/ipc/TabChild.cpp | 5 +-- dom/ipc/TabChild.h | 4 +-- dom/ipc/TabParent.cpp | 2 +- dom/ipc/TabParent.h | 2 +- gfx/ipc/GfxMessageUtils.h | 34 +++++++++---------- 8 files changed, 35 insertions(+), 31 deletions(-) diff --git a/content/canvas/public/DocumentRendererChild.h b/content/canvas/public/DocumentRendererChild.h index 96e8b01f0a88..d7a8e3c1661f 100644 --- a/content/canvas/public/DocumentRendererChild.h +++ b/content/canvas/public/DocumentRendererChild.h @@ -19,11 +19,11 @@ class DocumentRendererChild : public PDocumentRendererChild public: DocumentRendererChild(); virtual ~DocumentRendererChild(); - + bool RenderDocument(nsIDOMWindow *window, - const nsRect& documentRect, const gfxMatrix& transform, + const nsRect& documentRect, const gfx::Matrix& transform, const nsString& bgcolor, - uint32_t renderFlags, bool flushLayout, + uint32_t renderFlags, bool flushLayout, const nsIntSize& renderSize, nsCString& data); private: diff --git a/content/canvas/src/DocumentRendererChild.cpp b/content/canvas/src/DocumentRendererChild.cpp index 37098042f25b..f5d53866ad15 100644 --- a/content/canvas/src/DocumentRendererChild.cpp +++ b/content/canvas/src/DocumentRendererChild.cpp @@ -6,6 +6,7 @@ #include "base/basictypes.h" +#include "gfx2DGlue.h" #include "gfxImageSurface.h" #include "gfxPattern.h" #include "nsPIDOMWindow.h" @@ -22,7 +23,9 @@ #include "nsContentUtils.h" #include "nsCSSValue.h" #include "nsRuleNode.h" +#include "mozilla/gfx/Matrix.h" +using namespace mozilla; using namespace mozilla::ipc; DocumentRendererChild::DocumentRendererChild() @@ -34,10 +37,10 @@ DocumentRendererChild::~DocumentRendererChild() bool DocumentRendererChild::RenderDocument(nsIDOMWindow *window, const nsRect& documentRect, - const gfxMatrix& transform, + const mozilla::gfx::Matrix& transform, const nsString& aBGColor, uint32_t renderFlags, - bool flushLayout, + bool flushLayout, const nsIntSize& renderSize, nsCString& data) { @@ -75,7 +78,7 @@ DocumentRendererChild::RenderDocument(nsIDOMWindow *window, 4 * renderSize.width, gfxImageFormatARGB32); nsRefPtr ctx = new gfxContext(surf); - ctx->SetMatrix(transform); + ctx->SetMatrix(mozilla::gfx::ThebesMatrix(transform)); nsCOMPtr shell = presContext->PresShell(); shell->RenderDocument(documentRect, renderFlags, bgColor, ctx); diff --git a/dom/ipc/PBrowser.ipdl b/dom/ipc/PBrowser.ipdl index ae92d47b85c3..07f4d7e8e455 100644 --- a/dom/ipc/PBrowser.ipdl +++ b/dom/ipc/PBrowser.ipdl @@ -19,7 +19,7 @@ include URIParams; using class IPC::Principal from "mozilla/dom/PermissionMessageUtils.h"; -using struct gfxMatrix from "gfxMatrix.h"; +using struct mozilla::gfx::Matrix from "mozilla/gfx/Matrix.h"; using struct gfxSize from "gfxPoint.h"; using CSSRect from "Units.h"; using struct mozilla::layers::FrameMetrics from "FrameMetrics.h"; @@ -423,7 +423,7 @@ child: * and if true, |flushLayout| will do just that before rendering * the document. The rendered image will be of size |renderSize|. */ - PDocumentRenderer(nsRect documentRect, gfxMatrix transform, + PDocumentRenderer(nsRect documentRect, Matrix transform, nsString bgcolor, uint32_t renderFlags, bool flushLayout, nsIntSize renderSize); diff --git a/dom/ipc/TabChild.cpp b/dom/ipc/TabChild.cpp index 2a65673a6103..42fb6e3c57a5 100644 --- a/dom/ipc/TabChild.cpp +++ b/dom/ipc/TabChild.cpp @@ -72,6 +72,7 @@ #include "APZCCallbackHelper.h" #include "nsILoadContext.h" #include "ipc/nsGUIEventIPC.h" +#include "mozilla/gfx/Matrix.h" #ifdef DEBUG #include "PCOMContentPermissionRequestChild.h" @@ -1981,7 +1982,7 @@ TabChild::DispatchWidgetEvent(WidgetGUIEvent& event) PDocumentRendererChild* TabChild::AllocPDocumentRendererChild(const nsRect& documentRect, - const gfxMatrix& transform, + const mozilla::gfx::Matrix& transform, const nsString& bgcolor, const uint32_t& renderFlags, const bool& flushLayout, @@ -2000,7 +2001,7 @@ TabChild::DeallocPDocumentRendererChild(PDocumentRendererChild* actor) bool TabChild::RecvPDocumentRendererConstructor(PDocumentRendererChild* actor, const nsRect& documentRect, - const gfxMatrix& transform, + const mozilla::gfx::Matrix& transform, const nsString& bgcolor, const uint32_t& renderFlags, const bool& flushLayout, diff --git a/dom/ipc/TabChild.h b/dom/ipc/TabChild.h index 8403b86ffb50..a4542ce97ff9 100644 --- a/dom/ipc/TabChild.h +++ b/dom/ipc/TabChild.h @@ -254,14 +254,14 @@ public: const IPC::Principal& aPrincipal) MOZ_OVERRIDE; virtual PDocumentRendererChild* - AllocPDocumentRendererChild(const nsRect& documentRect, const gfxMatrix& transform, + AllocPDocumentRendererChild(const nsRect& documentRect, const gfx::Matrix& transform, const nsString& bgcolor, const uint32_t& renderFlags, const bool& flushLayout, const nsIntSize& renderSize); virtual bool DeallocPDocumentRendererChild(PDocumentRendererChild* actor); virtual bool RecvPDocumentRendererConstructor(PDocumentRendererChild* actor, const nsRect& documentRect, - const gfxMatrix& transform, + const gfx::Matrix& transform, const nsString& bgcolor, const uint32_t& renderFlags, const bool& flushLayout, diff --git a/dom/ipc/TabParent.cpp b/dom/ipc/TabParent.cpp index 39b5ef9d1c0f..9cb8eaed3133 100644 --- a/dom/ipc/TabParent.cpp +++ b/dom/ipc/TabParent.cpp @@ -579,7 +579,7 @@ TabParent::SetDocShell(nsIDocShell *aDocShell) PDocumentRendererParent* TabParent::AllocPDocumentRendererParent(const nsRect& documentRect, - const gfxMatrix& transform, + const gfx::Matrix& transform, const nsString& bgcolor, const uint32_t& renderFlags, const bool& flushLayout, diff --git a/dom/ipc/TabParent.h b/dom/ipc/TabParent.h index 4d645c333395..867203e85a61 100644 --- a/dom/ipc/TabParent.h +++ b/dom/ipc/TabParent.h @@ -221,7 +221,7 @@ public: bool SendHandleDoubleTap(const CSSIntPoint& aPoint); virtual PDocumentRendererParent* - AllocPDocumentRendererParent(const nsRect& documentRect, const gfxMatrix& transform, + AllocPDocumentRendererParent(const nsRect& documentRect, const gfx::Matrix& transform, const nsString& bgcolor, const uint32_t& renderFlags, const bool& flushLayout, const nsIntSize& renderSize); diff --git a/gfx/ipc/GfxMessageUtils.h b/gfx/ipc/GfxMessageUtils.h index 8f441cf077b9..32e25fcd61ee 100644 --- a/gfx/ipc/GfxMessageUtils.h +++ b/gfx/ipc/GfxMessageUtils.h @@ -15,7 +15,7 @@ #include "gfx3DMatrix.h" #include "gfxColor.h" -#include "gfxMatrix.h" +#include "mozilla/gfx/Matrix.h" #include "GraphicsFilter.h" #include "gfxPoint.h" #include "gfxRect.h" @@ -46,28 +46,28 @@ typedef GraphicsFilter::Enum GraphicsFilterType; namespace IPC { template<> -struct ParamTraits +struct ParamTraits { - typedef gfxMatrix paramType; + typedef mozilla::gfx::Matrix paramType; static void Write(Message* aMsg, const paramType& aParam) { - WriteParam(aMsg, aParam.xx); - WriteParam(aMsg, aParam.xy); - WriteParam(aMsg, aParam.yx); - WriteParam(aMsg, aParam.yy); - WriteParam(aMsg, aParam.x0); - WriteParam(aMsg, aParam.y0); + WriteParam(aMsg, aParam._11); + WriteParam(aMsg, aParam._12); + WriteParam(aMsg, aParam._21); + WriteParam(aMsg, aParam._22); + WriteParam(aMsg, aParam._31); + WriteParam(aMsg, aParam._32); } static bool Read(const Message* aMsg, void** aIter, paramType* aResult) { - if (ReadParam(aMsg, aIter, &aResult->xx) && - ReadParam(aMsg, aIter, &aResult->xy) && - ReadParam(aMsg, aIter, &aResult->yx) && - ReadParam(aMsg, aIter, &aResult->yy) && - ReadParam(aMsg, aIter, &aResult->x0) && - ReadParam(aMsg, aIter, &aResult->y0)) + if (ReadParam(aMsg, aIter, &aResult->_11) && + ReadParam(aMsg, aIter, &aResult->_12) && + ReadParam(aMsg, aIter, &aResult->_21) && + ReadParam(aMsg, aIter, &aResult->_22) && + ReadParam(aMsg, aIter, &aResult->_31) && + ReadParam(aMsg, aIter, &aResult->_32)) return true; return false; @@ -75,8 +75,8 @@ struct ParamTraits static void Log(const paramType& aParam, std::wstring* aLog) { - aLog->append(StringPrintf(L"[[%g %g] [%g %g] [%g %g]]", aParam.xx, aParam.xy, aParam.yx, aParam.yy, - aParam.x0, aParam.y0)); + aLog->append(StringPrintf(L"[[%g %g] [%g %g] [%g %g]]", aParam._11, aParam._12, aParam._21, aParam._22, + aParam._31, aParam._32)); } };