Commit ac6cc8ce authored by Kartikaya Gupta's avatar Kartikaya Gupta
Browse files

Bug 1330037 - Propagate the CompositorOptions to all CompositorWidget instances. r=dvander

MozReview-Commit-ID: DFeeo2WNmhZ

--HG--
extra : rebase_source : d40bea7f726df007e3f079bb9576e1cbe17e3460
parent 619cad37
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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);
+1 −1
Original line number Diff line number Diff line
@@ -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.
+2 −1
Original line number Diff line number Diff line
@@ -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);
+5 −0
Original line number Diff line number Diff line
@@ -10,6 +10,11 @@
namespace mozilla {
namespace widget {

CompositorWidget::CompositorWidget(const layers::CompositorOptions& aOptions)
  : mOptions(aOptions)
{
}

CompositorWidget::~CompositorWidget()
{
}
+15 −1
Original line number Diff line number Diff line
@@ -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;
@@ -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
@@ -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.
   */
@@ -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