Loading gfx/ipc/InProcessCompositorSession.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -34,7 +34,7 @@ InProcessCompositorSession::Create(nsIWidget* aWidget, CompositorWidgetInitData initData; aWidget->GetCompositorWidgetInitData(&initData); RefPtr<CompositorWidget> widget = CompositorWidget::CreateLocal(initData, aWidget); RefPtr<CompositorWidget> widget = CompositorWidget::CreateLocal(initData, aOptions, aWidget); RefPtr<CompositorBridgeChild> child = new CompositorBridgeChild(aLayerManager); RefPtr<CompositorBridgeParent> parent = child->InitSameProcess(widget, aRootLayerTreeId, aScale, aOptions, aUseExternalSurfaceSize, aSurfaceSize); Loading gfx/layers/ipc/CompositorBridgeParent.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -1656,7 +1656,7 @@ CompositorBridgeParent::AllocPCompositorWidgetParent(const CompositorWidgetInitD } widget::CompositorWidgetParent* widget = new widget::CompositorWidgetParent(aInitData); new widget::CompositorWidgetParent(aInitData, mOptions); widget->AddRef(); // Sending the constructor acts as initialization as well. Loading gfx/tests/gtest/TestCompositor.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -153,7 +153,8 @@ static std::vector<LayerManagerData> GetLayerManagers(std::vector<LayersBackend> auto backend = aBackends[i]; RefPtr<MockWidget> widget = new MockWidget(); RefPtr<widget::CompositorWidget> proxy = new widget::InProcessCompositorWidget(widget); CompositorOptions options; RefPtr<widget::CompositorWidget> proxy = new widget::InProcessCompositorWidget(options, widget); RefPtr<Compositor> compositor = CreateTestCompositor(backend, proxy); RefPtr<LayerManagerComposite> layerManager = new LayerManagerComposite(compositor); Loading widget/CompositorWidget.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -10,6 +10,11 @@ namespace mozilla { namespace widget { CompositorWidget::CompositorWidget(const layers::CompositorOptions& aOptions) : mOptions(aOptions) { } CompositorWidget::~CompositorWidget() { } Loading widget/CompositorWidget.h +15 −1 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ #include "mozilla/RefPtr.h" #include "Units.h" #include "mozilla/gfx/2D.h" #include "mozilla/layers/CompositorOptions.h" #include "mozilla/layers/LayersTypes.h" class nsIWidget; Loading Loading @@ -77,7 +78,9 @@ public: * Create an in-process compositor widget. aWidget may be ignored if the * platform does not require it. */ static RefPtr<CompositorWidget> CreateLocal(const CompositorWidgetInitData& aInitData, nsIWidget* aWidget); static RefPtr<CompositorWidget> CreateLocal(const CompositorWidgetInitData& aInitData, const layers::CompositorOptions& aOptions, nsIWidget* aWidget); /** * Called before rendering using OMTC. Returns false when the widget is Loading Loading @@ -251,6 +254,14 @@ public: */ virtual void ObserveVsync(VsyncObserver* aObserver) = 0; /** * Get the compositor options for the compositor associated with this * CompositorWidget. */ const layers::CompositorOptions& GetCompositorOptions() { return mOptions; } /** * This is only used by out-of-process compositors. */ Loading @@ -274,10 +285,13 @@ public: } protected: explicit CompositorWidget(const layers::CompositorOptions& aOptions); virtual ~CompositorWidget(); // Back buffer of BasicCompositor RefPtr<gfx::DrawTarget> mLastBackBuffer; layers::CompositorOptions mOptions; }; } // namespace widget Loading Loading
gfx/ipc/InProcessCompositorSession.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -34,7 +34,7 @@ InProcessCompositorSession::Create(nsIWidget* aWidget, CompositorWidgetInitData initData; aWidget->GetCompositorWidgetInitData(&initData); RefPtr<CompositorWidget> widget = CompositorWidget::CreateLocal(initData, aWidget); RefPtr<CompositorWidget> widget = CompositorWidget::CreateLocal(initData, aOptions, aWidget); RefPtr<CompositorBridgeChild> child = new CompositorBridgeChild(aLayerManager); RefPtr<CompositorBridgeParent> parent = child->InitSameProcess(widget, aRootLayerTreeId, aScale, aOptions, aUseExternalSurfaceSize, aSurfaceSize); Loading
gfx/layers/ipc/CompositorBridgeParent.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -1656,7 +1656,7 @@ CompositorBridgeParent::AllocPCompositorWidgetParent(const CompositorWidgetInitD } widget::CompositorWidgetParent* widget = new widget::CompositorWidgetParent(aInitData); new widget::CompositorWidgetParent(aInitData, mOptions); widget->AddRef(); // Sending the constructor acts as initialization as well. Loading
gfx/tests/gtest/TestCompositor.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -153,7 +153,8 @@ static std::vector<LayerManagerData> GetLayerManagers(std::vector<LayersBackend> auto backend = aBackends[i]; RefPtr<MockWidget> widget = new MockWidget(); RefPtr<widget::CompositorWidget> proxy = new widget::InProcessCompositorWidget(widget); CompositorOptions options; RefPtr<widget::CompositorWidget> proxy = new widget::InProcessCompositorWidget(options, widget); RefPtr<Compositor> compositor = CreateTestCompositor(backend, proxy); RefPtr<LayerManagerComposite> layerManager = new LayerManagerComposite(compositor); Loading
widget/CompositorWidget.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -10,6 +10,11 @@ namespace mozilla { namespace widget { CompositorWidget::CompositorWidget(const layers::CompositorOptions& aOptions) : mOptions(aOptions) { } CompositorWidget::~CompositorWidget() { } Loading
widget/CompositorWidget.h +15 −1 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ #include "mozilla/RefPtr.h" #include "Units.h" #include "mozilla/gfx/2D.h" #include "mozilla/layers/CompositorOptions.h" #include "mozilla/layers/LayersTypes.h" class nsIWidget; Loading Loading @@ -77,7 +78,9 @@ public: * Create an in-process compositor widget. aWidget may be ignored if the * platform does not require it. */ static RefPtr<CompositorWidget> CreateLocal(const CompositorWidgetInitData& aInitData, nsIWidget* aWidget); static RefPtr<CompositorWidget> CreateLocal(const CompositorWidgetInitData& aInitData, const layers::CompositorOptions& aOptions, nsIWidget* aWidget); /** * Called before rendering using OMTC. Returns false when the widget is Loading Loading @@ -251,6 +254,14 @@ public: */ virtual void ObserveVsync(VsyncObserver* aObserver) = 0; /** * Get the compositor options for the compositor associated with this * CompositorWidget. */ const layers::CompositorOptions& GetCompositorOptions() { return mOptions; } /** * This is only used by out-of-process compositors. */ Loading @@ -274,10 +285,13 @@ public: } protected: explicit CompositorWidget(const layers::CompositorOptions& aOptions); virtual ~CompositorWidget(); // Back buffer of BasicCompositor RefPtr<gfx::DrawTarget> mLastBackBuffer; layers::CompositorOptions mOptions; }; } // namespace widget Loading