// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_EXO_WAYLAND_ZWP_LINUX_EXPLICIT_SYNCHRONIZATION_H_
#define COMPONENTS_EXO_WAYLAND_ZWP_LINUX_EXPLICIT_SYNCHRONIZATION_H_
#include <stdint.h>
struct wl_client;
namespace exo {
class Surface;
namespace wayland {
void bind_linux_explicit_synchronization(wl_client* client,
void* data,
uint32_t version,
uint32_t id);
// Validates that |surface| adheres to the commit-time restrictions of the
// zwp_linux_surface_synchronization interface. If any rules are violated the
// function emits an error to the client and returns false. Otherwise, the
// function returns true.
bool linux_surface_synchronization_validate_commit(Surface* surface);
} // namespace wayland
} // namespace exo
#endif // COMPONENTS_EXO_WAYLAND_ZWP_LINUX_EXPLICIT_SYNCHRONIZATION_H_