1 /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2 * This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 #include "XlibDisplay.h"
8 #include "mozilla/Assertions.h"
10 namespace mozilla::gfx
{
12 XlibDisplay::XlibDisplay(Display
* aDisplay
, bool aOwned
)
13 : mDisplay(aDisplay
), mOwned(aOwned
) {
17 XlibDisplay::~XlibDisplay() {
19 XCloseDisplay(mDisplay
);
24 std::shared_ptr
<XlibDisplay
> XlibDisplay::Borrow(Display
* aDisplay
) {
28 return std::shared_ptr
<XlibDisplay
>(new XlibDisplay(aDisplay
, false));
32 std::shared_ptr
<XlibDisplay
> XlibDisplay::Open(const char* aDisplayName
) {
33 Display
* disp
= XOpenDisplay(aDisplayName
);
37 return std::shared_ptr
<XlibDisplay
>(new XlibDisplay(disp
, true));
40 } // namespace mozilla::gfx