OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ui/ozone/platform/dri/dri_console_buffer.h" | 5 #include "ui/ozone/platform/dri/dri_console_buffer.h" |
6 | 6 |
7 #include <sys/mman.h> | 7 #include <sys/mman.h> |
8 #include <xf86drmMode.h> | 8 #include <xf86drmMode.h> |
9 | 9 |
10 #include "third_party/skia/include/core/SkCanvas.h" | 10 #include "third_party/skia/include/core/SkCanvas.h" |
11 #include "ui/ozone/platform/dri/dri_util.h" | 11 #include "ui/ozone/platform/dri/dri_util.h" |
12 #include "ui/ozone/platform/dri/dri_wrapper.h" | 12 #include "ui/ozone/platform/dri/drm_device.h" |
13 #include "ui/ozone/platform/dri/scoped_drm_types.h" | 13 #include "ui/ozone/platform/dri/scoped_drm_types.h" |
14 | 14 |
15 namespace ui { | 15 namespace ui { |
16 | 16 |
17 DriConsoleBuffer::DriConsoleBuffer(const scoped_refptr<DriWrapper>& dri, | 17 DriConsoleBuffer::DriConsoleBuffer(const scoped_refptr<DrmDevice>& drm, |
18 uint32_t framebuffer) | 18 uint32_t framebuffer) |
19 : dri_(dri), | 19 : drm_(drm), |
20 handle_(0), | 20 handle_(0), |
21 framebuffer_(framebuffer), | 21 framebuffer_(framebuffer), |
22 mmap_base_(NULL), | 22 mmap_base_(NULL), |
23 mmap_size_(0) { | 23 mmap_size_(0) { |
24 } | 24 } |
25 | 25 |
26 DriConsoleBuffer::~DriConsoleBuffer() { | 26 DriConsoleBuffer::~DriConsoleBuffer() { |
27 if (mmap_base_) | 27 if (mmap_base_) |
28 if (munmap(mmap_base_, mmap_size_)) | 28 if (munmap(mmap_base_, mmap_size_)) |
29 PLOG(ERROR) << "munmap"; | 29 PLOG(ERROR) << "munmap"; |
30 } | 30 } |
31 | 31 |
32 bool DriConsoleBuffer::Initialize() { | 32 bool DriConsoleBuffer::Initialize() { |
33 ScopedDrmFramebufferPtr fb(dri_->GetFramebuffer(framebuffer_)); | 33 ScopedDrmFramebufferPtr fb(drm_->GetFramebuffer(framebuffer_)); |
34 | 34 |
35 if (!fb) | 35 if (!fb) |
36 return false; | 36 return false; |
37 | 37 |
38 handle_ = fb->handle; | 38 handle_ = fb->handle; |
39 stride_ = fb->pitch; | 39 stride_ = fb->pitch; |
40 SkImageInfo info = SkImageInfo::MakeN32Premul(fb->width, fb->height); | 40 SkImageInfo info = SkImageInfo::MakeN32Premul(fb->width, fb->height); |
41 | 41 |
42 mmap_size_ = info.getSafeSize(stride_); | 42 mmap_size_ = info.getSafeSize(stride_); |
43 | 43 |
44 if (!MapDumbBuffer(dri_->get_fd(), fb->handle, mmap_size_, &mmap_base_)) { | 44 if (!MapDumbBuffer(drm_->get_fd(), fb->handle, mmap_size_, &mmap_base_)) { |
45 mmap_base_ = NULL; | 45 mmap_base_ = NULL; |
46 return false; | 46 return false; |
47 } | 47 } |
48 | 48 |
49 surface_ = | 49 surface_ = |
50 skia::AdoptRef(SkSurface::NewRasterDirect(info, mmap_base_, stride_)); | 50 skia::AdoptRef(SkSurface::NewRasterDirect(info, mmap_base_, stride_)); |
51 if (!surface_) | 51 if (!surface_) |
52 return false; | 52 return false; |
53 | 53 |
54 return true; | 54 return true; |
55 } | 55 } |
56 | 56 |
57 } // namespace ui | 57 } // namespace ui |
OLD | NEW |