mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-28 23:31:56 +00:00
6d0dfe44e3
It caused us substantial confusion investigating this bug under the belief that StartRemoteDrawingInRegion may have been modifying the dirty region. None of our existing widget code anymore uses the API in this way, so it makes sense to just force this dirty region to be const so that we no longer support the assumption and alleviate confusion in the future about how our widget code actually behaves. Depends on D106246 Differential Revision: https://phabricator.services.mozilla.com/D106247
50 lines
1.9 KiB
C++
50 lines
1.9 KiB
C++
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#ifndef mozilla_widget_InProcessCompositorWidget_h__
|
|
#define mozilla_widget_InProcessCompositorWidget_h__
|
|
|
|
#include "CompositorWidget.h"
|
|
|
|
namespace mozilla {
|
|
namespace widget {
|
|
|
|
// This version of CompositorWidget implements a wrapper around
|
|
// nsBaseWidget.
|
|
class InProcessCompositorWidget : public CompositorWidget {
|
|
public:
|
|
explicit InProcessCompositorWidget(const layers::CompositorOptions& aOptions,
|
|
nsBaseWidget* aWidget);
|
|
|
|
virtual bool PreRender(WidgetRenderingContext* aManager) override;
|
|
virtual void PostRender(WidgetRenderingContext* aManager) override;
|
|
virtual RefPtr<layers::NativeLayerRoot> GetNativeLayerRoot() override;
|
|
virtual already_AddRefed<gfx::DrawTarget> StartRemoteDrawing() override;
|
|
virtual already_AddRefed<gfx::DrawTarget> StartRemoteDrawingInRegion(
|
|
const LayoutDeviceIntRegion& aInvalidRegion,
|
|
layers::BufferMode* aBufferMode) override;
|
|
virtual void EndRemoteDrawing() override;
|
|
virtual void EndRemoteDrawingInRegion(
|
|
gfx::DrawTarget* aDrawTarget,
|
|
const LayoutDeviceIntRegion& aInvalidRegion) override;
|
|
virtual void CleanupRemoteDrawing() override;
|
|
virtual void CleanupWindowEffects() override;
|
|
virtual bool InitCompositor(layers::Compositor* aCompositor) override;
|
|
virtual LayoutDeviceIntSize GetClientSize() override;
|
|
virtual uint32_t GetGLFrameBufferFormat() override;
|
|
virtual void ObserveVsync(VsyncObserver* aObserver) override;
|
|
virtual uintptr_t GetWidgetKey() override;
|
|
|
|
// If you can override this method, inherit from CompositorWidget instead.
|
|
nsIWidget* RealWidget() override;
|
|
|
|
protected:
|
|
nsBaseWidget* mWidget;
|
|
};
|
|
|
|
} // namespace widget
|
|
} // namespace mozilla
|
|
|
|
#endif
|