mirror of
https://github.com/godotengine/godot-angle-static.git
synced 2026-01-04 22:09:59 +03:00
This is a reland of a7bb6a9b15
Original change's description:
> Add support for Linux vulkan backend with VK_KHR_display
>
> 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>
Bug: angleproject:5214
Change-Id: I3921f6cb292c86658f39e739a878baad1ef64dba
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2515327
Commit-Queue: Xiaoxuan Liu <xiaoxuan.liu@arm.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
52 lines
1.3 KiB
C++
52 lines
1.3 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.h: Definition of the implementation of OSWindow for Linux Display
|
|
|
|
#ifndef UTIL_DISPLAY_WINDOW_H_
|
|
#define UTIL_DISPLAY_WINDOW_H_
|
|
|
|
#include <string>
|
|
#include "util/OSWindow.h"
|
|
#include "util/util_export.h"
|
|
|
|
struct SimpleDisplayWindow
|
|
{
|
|
uint16_t width;
|
|
uint16_t height;
|
|
};
|
|
|
|
class ANGLE_UTIL_EXPORT DisplayWindow : public OSWindow
|
|
{
|
|
public:
|
|
DisplayWindow();
|
|
DisplayWindow(int visualId);
|
|
~DisplayWindow() override;
|
|
|
|
void disableErrorMessageDialog() override;
|
|
void destroy() override;
|
|
|
|
void resetNativeWindow() override;
|
|
EGLNativeWindowType getNativeWindow() const override;
|
|
EGLNativeDisplayType getNativeDisplay() const override;
|
|
|
|
void messageLoop() override;
|
|
|
|
void setMousePosition(int x, int y) override;
|
|
bool setOrientation(int width, int height) override;
|
|
bool setPosition(int x, int y) override;
|
|
bool resize(int width, int height) override;
|
|
void setVisible(bool isVisible) override;
|
|
|
|
void signalTestEvent() override;
|
|
|
|
private:
|
|
bool initializeImpl(const std::string &name, int width, int height) override;
|
|
SimpleDisplayWindow mWindow;
|
|
};
|
|
|
|
#endif // UTIL_DISPLAY_WINDOW_H_
|