diff options
author | dnicoara <dnicoara@chromium.org> | 2015-03-05 12:46:18 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-03-05 20:47:08 +0000 |
commit | 171d8c892da1b2e38f90c17b62896ba82f0719e3 (patch) | |
tree | 9fe2810948b2d8dfd73cd7a5afa002dcf79c0547 /ui/ozone/platform/drm/gpu/gbm_surfaceless.cc | |
parent | f36607f2398cb4aa9b50449b1221bbc72e3f3453 (diff) | |
download | chromium_src-171d8c892da1b2e38f90c17b62896ba82f0719e3.zip chromium_src-171d8c892da1b2e38f90c17b62896ba82f0719e3.tar.gz chromium_src-171d8c892da1b2e38f90c17b62896ba82f0719e3.tar.bz2 |
[Ozone] Rename and split the DRI platform for clarity
This CL does the following:
- Moves the files in ui/ozone/platform/dri to ui/ozone/platform/drm
since the platform name should really be DRM rather than DRI. Note,
that the platform is still refered to as "dri" in GYP/GN since CrOS
builds are still using the 'dri' name.
- Rename all files with a "_dri*" suffix to a "drm_" prefix. Also
rename all files with a "dri_" prefix to a "drm_" prefix.
- Rename NativeDisplayDelegateDri to DrmDisplayDelegateManager since it
is no longer dependent on the NativeDisplayDelegate interface and the
new name better describes its intent.
- Split the files in the platform into 2 sub-folders ("host" and
"gpu"). Depending on the intended use place of the objects (Browser
(host) process or GPU process) the files in the platform are split
accordingly in the 2 sub-folders.
BUG=none
TBR=jam@chromium.org
Review URL: https://codereview.chromium.org/975063002
Cr-Commit-Position: refs/heads/master@{#319320}
Diffstat (limited to 'ui/ozone/platform/drm/gpu/gbm_surfaceless.cc')
-rw-r--r-- | ui/ozone/platform/drm/gpu/gbm_surfaceless.cc | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/ui/ozone/platform/drm/gpu/gbm_surfaceless.cc b/ui/ozone/platform/drm/gpu/gbm_surfaceless.cc new file mode 100644 index 0000000..138d207 --- /dev/null +++ b/ui/ozone/platform/drm/gpu/gbm_surfaceless.cc @@ -0,0 +1,76 @@ +// Copyright 2014 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/gbm_surfaceless.h" + +#include "base/bind.h" +#include "base/bind_helpers.h" +#include "ui/ozone/platform/drm/gpu/drm_device.h" +#include "ui/ozone/platform/drm/gpu/drm_device_manager.h" +#include "ui/ozone/platform/drm/gpu/drm_vsync_provider.h" +#include "ui/ozone/platform/drm/gpu/drm_window.h" +#include "ui/ozone/platform/drm/gpu/gbm_buffer.h" +#include "ui/ozone/platform/drm/gpu/hardware_display_controller.h" + +namespace ui { + +GbmSurfaceless::GbmSurfaceless(DrmWindow* window_delegate, + DrmDeviceManager* drm_device_manager) + : window_delegate_(window_delegate), + drm_device_manager_(drm_device_manager) { +} + +GbmSurfaceless::~GbmSurfaceless() { +} + +intptr_t GbmSurfaceless::GetNativeWindow() { + NOTREACHED(); + return 0; +} + +bool GbmSurfaceless::ResizeNativeWindow(const gfx::Size& viewport_size) { + return true; +} + +bool GbmSurfaceless::OnSwapBuffers() { + HardwareDisplayController* controller = window_delegate_->GetController(); + if (!controller) + return true; + + return controller->SchedulePageFlip(true /* is_sync */, + base::Bind(&base::DoNothing)); +} + +bool GbmSurfaceless::OnSwapBuffersAsync( + const SwapCompletionCallback& callback) { + HardwareDisplayController* controller = window_delegate_->GetController(); + if (!controller) { + callback.Run(); + return true; + } + + return controller->SchedulePageFlip(false /* is_sync */, callback); +} + +scoped_ptr<gfx::VSyncProvider> GbmSurfaceless::CreateVSyncProvider() { + return make_scoped_ptr(new DrmVSyncProvider(window_delegate_)); +} + +bool GbmSurfaceless::IsUniversalDisplayLinkDevice() { + if (!drm_device_manager_) + return false; + scoped_refptr<DrmDevice> drm_primary = + drm_device_manager_->GetDrmDevice(gfx::kNullAcceleratedWidget); + DCHECK(drm_primary); + + HardwareDisplayController* controller = window_delegate_->GetController(); + if (!controller) + return false; + scoped_refptr<DrmDevice> drm = controller->GetAllocationDrmDevice(); + DCHECK(drm); + + return drm_primary != drm; +} + +} // namespace ui |