gecko-dev/widget/gtk/WindowSurfaceX11SHM.cpp
Robert Mader cc94065f1b Bug 1709606 - Move WindowSurface* into the gtk backend, r=stransky
It's only used by the GTK backend and all other users are located
there as well. Further more, it's unlikely that the will ever be
another X11 backend or that these classes will get reused elsewhere.

So in order to keep changes to `WindowSurface` out of the common
widget space, move it into `gtk`.

While on it, also clean up the affected moz.build files a bit
by making orders more consistent. No functional changes intended.

Differential Revision: https://phabricator.services.mozilla.com/D114422
2021-05-07 12:31:26 +00:00

28 lines
984 B
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/. */
#include "WindowSurfaceX11SHM.h"
namespace mozilla::widget {
WindowSurfaceX11SHM::WindowSurfaceX11SHM(Display* aDisplay, Drawable aWindow,
Visual* aVisual, unsigned int aDepth) {
mFrontImage = new nsShmImage(aDisplay, aWindow, aVisual, aDepth);
mBackImage = new nsShmImage(aDisplay, aWindow, aVisual, aDepth);
}
already_AddRefed<gfx::DrawTarget> WindowSurfaceX11SHM::Lock(
const LayoutDeviceIntRegion& aRegion) {
mBackImage.swap(mFrontImage);
return mBackImage->CreateDrawTarget(aRegion);
}
void WindowSurfaceX11SHM::Commit(const LayoutDeviceIntRegion& aInvalidRegion) {
mBackImage->Put(aInvalidRegion);
}
} // namespace mozilla::widget