Files
godot-angle-static/util/display/DisplayWindow.cpp
Antonio Caggiano 9ad43bdd2a Re-land: "Vulkan: Support Wayland"
Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size
from native window and check egl config is just empty. An EGL wayland
test is added for testing rendering and buffers swapping.

Re-land fixes:
- link failure in systems with no libwayland installed.
- XCB display availability check.

Bug: angleproject:6902
Change-Id: I5daecf3591493308ac71a7dd3bc0802f492e6fed
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3621059
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
2022-05-03 16:29:24 +00:00

88 lines
1.7 KiB
C++

//
// Copyright 2020 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// DisplayWindow.cpp: Implementation of OSWindow for Linux Display
#include "util/display/DisplayWindow.h"
#include "common/debug.h"
#include "util/Timer.h"
#include "util/test_utils.h"
DisplayWindow::DisplayWindow()
{
mWindow.width = 0;
mWindow.height = 0;
}
DisplayWindow::~DisplayWindow() {}
bool DisplayWindow::initializeImpl(const std::string &name, int width, int height)
{
return resize(width, height);
}
void DisplayWindow::disableErrorMessageDialog() {}
void DisplayWindow::destroy() {}
void DisplayWindow::resetNativeWindow() {}
EGLNativeWindowType DisplayWindow::getNativeWindow() const
{
return (EGLNativeWindowType)&mWindow;
}
EGLNativeDisplayType DisplayWindow::getNativeDisplay() const
{
return NULL;
}
void DisplayWindow::messageLoop() {}
void DisplayWindow::setMousePosition(int x, int y)
{
UNIMPLEMENTED();
}
bool DisplayWindow::setOrientation(int width, int height)
{
UNIMPLEMENTED();
return true;
}
bool DisplayWindow::setPosition(int x, int y)
{
UNIMPLEMENTED();
return true;
}
bool DisplayWindow::resize(int width, int height)
{
mWindow.width = width;
mWindow.height = height;
return true;
}
void DisplayWindow::setVisible(bool isVisible) {}
void DisplayWindow::signalTestEvent()
{
Event event;
event.Type = Event::EVENT_TEST;
event.Move.X = 0;
event.Move.Y = 0;
pushEvent(event);
}
// static
#if defined(ANGLE_USE_VULKAN_DISPLAY) && defined(EGL_NO_X11) && !defined(ANGLE_USE_WAYLAND)
OSWindow *OSWindow::New()
{
return new DisplayWindow();
}
#endif