Quelle WindowSurfaceWaylandMultiBuffer.h
Sprache: C
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- * * 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/. */
// WindowSurfaceWaylandMB is an abstraction for wl_surface // and related management class WindowSurfaceWaylandMB : public WindowSurface { public:
WindowSurfaceWaylandMB(RefPtr<nsWindow> aWindow,
GtkCompositorWidget* aCompositorWidget);
~WindowSurfaceWaylandMB() = default;
// Lock() / Commit() are called by gecko when Firefox // wants to display something. Lock() returns a DrawTarget // where gecko paints. When gecko is done it calls Commit() // and we try to send the DrawTarget (backed by wl_buffer) // to wayland compositor. // // If we fail (wayland compositor is busy, // wl_surface is not created yet) we queue the painting // and we send it to wayland compositor in FrameCallbackHandler()/ // FlushPendingCommits().
already_AddRefed<DrawTarget> Lock( const LayoutDeviceIntRegion& aInvalidRegion) override; void Commit(const LayoutDeviceIntRegion& aInvalidRegion) final;
RefPtr<nsWindow> mWindow; // WindowSurfaceWaylandMB is owned by GtkCompositorWidget so we can't // reference it.
GtkCompositorWidget* mCompositorWidget;
LayoutDeviceIntSize mWindowSize;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.