mirror of
https://github.com/godotengine/godot-angle-static.git
synced 2026-01-03 14:09:33 +03:00
Implement Linux simple display mode with vulkan backend through VK_KHR_display. Added value 'EGL_PLATFORM_VULKAN_DISPLAY_MODE_SIMPLE_ANGLE' for attribute EGL_PLATFORM_ANGLE_NATIVE_PLATFORM_TYPE_ANGLE to identify the new simple display mode. Also reserved EGL_PLATFORM_VULKAN_DISPLAY_MODE_HEADLESS_ANGLE for headless mode. How to enable: Add ``` use_x11=false angle_vulkan_display_mode="simple" # default value ``` into args.gn, then compile with linux vulkan args. Bug: angleproject:5214 Change-Id: I1247585b9de8b55df106aba99322281f1c183203 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2494320 Commit-Queue: Jamie Madill <jmadill@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
88 lines
1.7 KiB
C++
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)
|
|
OSWindow *OSWindow::New()
|
|
{
|
|
return new DisplayWindow();
|
|
}
|
|
#endif
|