Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(147)

Unified Diff: ui/ozone/platform/drm/gpu/drm_surface.cc

Issue 1311043016: Switch DRM platform to using a separate thread (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@mv-drm-calls-on-thread2
Patch Set: Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/ozone/platform/drm/gpu/drm_surface.cc
diff --git a/ui/ozone/platform/drm/gpu/drm_surface.cc b/ui/ozone/platform/drm/gpu/drm_surface.cc
index f3780ff1ffe3a35cca39e33f0004d6a11f04aae9..f3b8ad3f0801d0ef97c8d8baada9980a8c0611d4 100644
--- a/ui/ozone/platform/drm/gpu/drm_surface.cc
+++ b/ui/ozone/platform/drm/gpu/drm_surface.cc
@@ -4,7 +4,7 @@
#include "ui/ozone/platform/drm/gpu/drm_surface.h"
-#include "base/bind_helpers.h"
+#include "base/bind.h"
#include "base/logging.h"
#include "base/message_loop/message_loop.h"
#include "third_party/skia/include/core/SkCanvas.h"
@@ -14,7 +14,7 @@
#include "ui/ozone/platform/drm/gpu/drm_buffer.h"
#include "ui/ozone/platform/drm/gpu/drm_device.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/drm_window_proxy.h"
#include "ui/ozone/platform/drm/gpu/hardware_display_controller.h"
namespace ui {
@@ -35,9 +35,8 @@ scoped_refptr<DrmBuffer> AllocateBuffer(const scoped_refptr<DrmDevice>& drm,
} // namespace
-DrmSurface::DrmSurface(DrmWindow* window)
- : window_(window), weak_ptr_factory_(this) {
-}
+DrmSurface::DrmSurface(scoped_ptr<DrmWindowProxy> window)
+ : window_(window.Pass()), weak_ptr_factory_(this) {}
DrmSurface::~DrmSurface() {
}
@@ -51,16 +50,14 @@ void DrmSurface::ResizeCanvas(const gfx::Size& viewport_size) {
viewport_size.width(), viewport_size.height(), kOpaque_SkAlphaType);
surface_ = skia::AdoptRef(SkSurface::NewRaster(info));
- HardwareDisplayController* controller = window_->GetController();
- if (!controller)
+ scoped_refptr<DrmDevice> drm = window_->GetDrmDevice();
+ if (!drm)
return;
// For the display buffers use the mode size since a |viewport_size| smaller
// than the display size will not scanout.
- front_buffer_ = AllocateBuffer(controller->GetAllocationDrmDevice(),
- controller->GetModeSize());
- back_buffer_ = AllocateBuffer(controller->GetAllocationDrmDevice(),
- controller->GetModeSize());
+ front_buffer_ = AllocateBuffer(drm, window_->GetBounds().size());
+ back_buffer_ = AllocateBuffer(drm, window_->GetBounds().size());
}
void DrmSurface::PresentCanvas(const gfx::Rect& damage) {
@@ -76,7 +73,7 @@ void DrmSurface::PresentCanvas(const gfx::Rect& damage) {
}
scoped_ptr<gfx::VSyncProvider> DrmSurface::CreateVSyncProvider() {
- return make_scoped_ptr(new DrmVSyncProvider(window_));
+ return make_scoped_ptr(new DrmVSyncProvider(window_.get()));
}
void DrmSurface::SchedulePageFlip() {

Powered by Google App Engine
This is Rietveld 408576698