summaryrefslogtreecommitdiff
path: root/chromium/gpu/vulkan/x
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/gpu/vulkan/x')
-rw-r--r--chromium/gpu/vulkan/x/vulkan_implementation_x11.cc5
-rw-r--r--chromium/gpu/vulkan/x/vulkan_surface_x11.cc53
-rw-r--r--chromium/gpu/vulkan/x/vulkan_surface_x11.h15
3 files changed, 41 insertions, 32 deletions
diff --git a/chromium/gpu/vulkan/x/vulkan_implementation_x11.cc b/chromium/gpu/vulkan/x/vulkan_implementation_x11.cc
index 6e8f4cdeaf0..ec752c329d4 100644
--- a/chromium/gpu/vulkan/x/vulkan_implementation_x11.cc
+++ b/chromium/gpu/vulkan/x/vulkan_implementation_x11.cc
@@ -77,7 +77,7 @@ VulkanImplementationX11::VulkanImplementationX11(bool use_swiftshader)
gfx::GetXDisplay();
}
-VulkanImplementationX11::~VulkanImplementationX11() {}
+VulkanImplementationX11::~VulkanImplementationX11() = default;
bool VulkanImplementationX11::InitializeVulkanInstance(bool using_surface) {
if (using_surface && !use_swiftshader() && !IsVulkanSurfaceSupported())
@@ -126,7 +126,8 @@ std::unique_ptr<VulkanSurface> VulkanImplementationX11::CreateViewSurface(
gfx::AcceleratedWidget window) {
if (!using_surface_)
return nullptr;
- return VulkanSurfaceX11::Create(vulkan_instance_.vk_instance(), window);
+ return VulkanSurfaceX11::Create(vulkan_instance_.vk_instance(),
+ static_cast<x11::Window>(window));
}
bool VulkanImplementationX11::GetPhysicalDevicePresentationSupport(
diff --git a/chromium/gpu/vulkan/x/vulkan_surface_x11.cc b/chromium/gpu/vulkan/x/vulkan_surface_x11.cc
index 3bb675440cf..592a574a99e 100644
--- a/chromium/gpu/vulkan/x/vulkan_surface_x11.cc
+++ b/chromium/gpu/vulkan/x/vulkan_surface_x11.cc
@@ -7,6 +7,7 @@
#include "base/logging.h"
#include "gpu/vulkan/vulkan_function_pointers.h"
#include "ui/events/platform/x11/x11_event_source.h"
+#include "ui/gfx/native_widget_types.h"
namespace gpu {
@@ -14,7 +15,8 @@ class VulkanSurfaceX11::ExposeEventForwarder : public ui::XEventDispatcher {
public:
explicit ExposeEventForwarder(VulkanSurfaceX11* surface) : surface_(surface) {
if (auto* event_source = ui::X11EventSource::GetInstance()) {
- XSelectInput(gfx::GetXDisplay(), surface_->window_, ExposureMask);
+ XSelectInput(gfx::GetXDisplay(), static_cast<uint32_t>(surface_->window_),
+ ExposureMask);
event_source->AddXEventDispatcher(this);
}
}
@@ -25,7 +27,7 @@ class VulkanSurfaceX11::ExposeEventForwarder : public ui::XEventDispatcher {
}
// ui::XEventDispatcher:
- bool DispatchXEvent(XEvent* xevent) override {
+ bool DispatchXEvent(x11::Event* xevent) override {
if (!surface_->CanDispatchXEvent(xevent))
return false;
surface_->ForwardXExposeEvent(xevent);
@@ -40,17 +42,19 @@ class VulkanSurfaceX11::ExposeEventForwarder : public ui::XEventDispatcher {
// static
std::unique_ptr<VulkanSurfaceX11> VulkanSurfaceX11::Create(
VkInstance vk_instance,
- Window parent_window) {
+ x11::Window parent_window) {
XDisplay* display = gfx::GetXDisplay();
XWindowAttributes attributes;
- if (!XGetWindowAttributes(display, parent_window, &attributes)) {
- LOG(ERROR) << "XGetWindowAttributes failed for window " << parent_window
- << ".";
+ if (!XGetWindowAttributes(display, static_cast<uint32_t>(parent_window),
+ &attributes)) {
+ LOG(ERROR) << "XGetWindowAttributes failed for window "
+ << static_cast<uint32_t>(parent_window) << ".";
return nullptr;
}
- Window window = XCreateWindow(display, parent_window, 0, 0, attributes.width,
- attributes.height, 0, CopyFromParent,
- InputOutput, CopyFromParent, 0, nullptr);
+ Window window = XCreateWindow(
+ display, static_cast<uint32_t>(parent_window), 0, 0, attributes.width,
+ attributes.height, 0, static_cast<int>(x11::WindowClass::CopyFromParent),
+ static_cast<int>(x11::WindowClass::InputOutput), nullptr, 0, nullptr);
if (!window) {
LOG(ERROR) << "XCreateWindow failed.";
return nullptr;
@@ -68,42 +72,45 @@ std::unique_ptr<VulkanSurfaceX11> VulkanSurfaceX11::Create(
DLOG(ERROR) << "vkCreateXlibSurfaceKHR() failed: " << result;
return nullptr;
}
- return std::make_unique<VulkanSurfaceX11>(vk_instance, vk_surface,
- parent_window, window);
+ return std::make_unique<VulkanSurfaceX11>(
+ vk_instance, vk_surface, parent_window, static_cast<x11::Window>(window));
}
VulkanSurfaceX11::VulkanSurfaceX11(VkInstance vk_instance,
VkSurfaceKHR vk_surface,
- Window parent_window,
- Window window)
+ x11::Window parent_window,
+ x11::Window window)
: VulkanSurface(vk_instance,
- window,
+ static_cast<gfx::AcceleratedWidget>(window),
vk_surface,
false /* use_protected_memory */),
parent_window_(parent_window),
window_(window),
expose_event_forwarder_(new ExposeEventForwarder(this)) {}
-VulkanSurfaceX11::~VulkanSurfaceX11() {}
+VulkanSurfaceX11::~VulkanSurfaceX11() = default;
// VulkanSurface:
bool VulkanSurfaceX11::Reshape(const gfx::Size& size,
gfx::OverlayTransform pre_transform) {
DCHECK_EQ(pre_transform, gfx::OVERLAY_TRANSFORM_NONE);
- XResizeWindow(gfx::GetXDisplay(), window_, size.width(), size.height());
+ XResizeWindow(gfx::GetXDisplay(), static_cast<uint32_t>(window_),
+ size.width(), size.height());
return VulkanSurface::Reshape(size, pre_transform);
}
-bool VulkanSurfaceX11::CanDispatchXEvent(const XEvent* event) {
- return event->type == Expose && event->xexpose.window == window_;
+bool VulkanSurfaceX11::CanDispatchXEvent(const x11::Event* x11_event) {
+ const XEvent* event = &x11_event->xlib_event();
+ return event->type == Expose &&
+ event->xexpose.window == static_cast<uint32_t>(window_);
}
-void VulkanSurfaceX11::ForwardXExposeEvent(const XEvent* event) {
- XEvent forwarded_event = *event;
- forwarded_event.xexpose.window = parent_window_;
- XSendEvent(gfx::GetXDisplay(), parent_window_, False, ExposureMask,
- &forwarded_event);
+void VulkanSurfaceX11::ForwardXExposeEvent(const x11::Event* event) {
+ XEvent forwarded_event = event->xlib_event();
+ forwarded_event.xexpose.window = static_cast<uint32_t>(parent_window_);
+ XSendEvent(gfx::GetXDisplay(), static_cast<uint32_t>(parent_window_), False,
+ ExposureMask, &forwarded_event);
XFlush(gfx::GetXDisplay());
}
diff --git a/chromium/gpu/vulkan/x/vulkan_surface_x11.h b/chromium/gpu/vulkan/x/vulkan_surface_x11.h
index 5c99d6ea907..585fe197d26 100644
--- a/chromium/gpu/vulkan/x/vulkan_surface_x11.h
+++ b/chromium/gpu/vulkan/x/vulkan_surface_x11.h
@@ -9,6 +9,7 @@
#include "base/macros.h"
#include "gpu/vulkan/vulkan_surface.h"
+#include "ui/gfx/x/event.h"
#include "ui/gfx/x/x11_types.h"
namespace gpu {
@@ -16,11 +17,11 @@ namespace gpu {
class VulkanSurfaceX11 : public VulkanSurface {
public:
static std::unique_ptr<VulkanSurfaceX11> Create(VkInstance vk_instance,
- Window parent_window);
+ x11::Window parent_window);
VulkanSurfaceX11(VkInstance vk_instance,
VkSurfaceKHR vk_surface,
- Window parent_window,
- Window window);
+ x11::Window parent_window,
+ x11::Window window);
~VulkanSurfaceX11() override;
// VulkanSurface:
@@ -29,11 +30,11 @@ class VulkanSurfaceX11 : public VulkanSurface {
private:
class ExposeEventForwarder;
- bool CanDispatchXEvent(const XEvent* event);
- void ForwardXExposeEvent(const XEvent* event);
+ bool CanDispatchXEvent(const x11::Event* event);
+ void ForwardXExposeEvent(const x11::Event* event);
- const Window parent_window_;
- const Window window_;
+ const x11::Window parent_window_;
+ const x11::Window window_;
std::unique_ptr<ExposeEventForwarder> expose_event_forwarder_;
DISALLOW_COPY_AND_ASSIGN(VulkanSurfaceX11);