blob: f5f882a7958667105eff382d8256c49741422088 [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ui/ozone/platform/drm/gpu/drm_window_proxy.h"
#include "ui/gfx/presentation_feedback.h"
#include "ui/ozone/platform/drm/gpu/drm_thread.h"
#include "ui/ozone/platform/drm/gpu/overlay_plane.h"
#include "ui/ozone/platform/drm/gpu/proxy_helpers.h"
#include "ui/ozone/platform/drm/gpu/scanout_buffer.h"
namespace ui {
DrmWindowProxy::DrmWindowProxy(gfx::AcceleratedWidget widget,
DrmThread* drm_thread)
: widget_(widget), drm_thread_(drm_thread) {}
DrmWindowProxy::~DrmWindowProxy() {}
void DrmWindowProxy::SchedulePageFlip(const std::vector<OverlayPlane>& planes,
SwapCompletionOnceCallback callback) {
auto safe_callback = CreateSafeOnceCallback(std::move(callback));
drm_thread_->task_runner()->PostTask(
FROM_HERE, base::BindOnce(&DrmThread::SchedulePageFlip,
base::Unretained(drm_thread_), widget_, planes,
std::move(safe_callback)));
}
void DrmWindowProxy::GetVSyncParameters(
const gfx::VSyncProvider::UpdateVSyncCallback& callback) {
drm_thread_->task_runner()->PostTask(
FROM_HERE, base::BindOnce(&DrmThread::GetVSyncParameters,
base::Unretained(drm_thread_), widget_,
CreateSafeCallback(callback)));
}
} // namespace ui