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

Side by Side Diff: ui/ozone/platform/dri/dri_surface_unittest.cc

Issue 276753003: [Ozone-DRI] Move framebuffer initialization into the buffer (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 6 years, 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 "testing/gtest/include/gtest/gtest.h" 5 #include "testing/gtest/include/gtest/gtest.h"
6 #include "third_party/skia/include/core/SkCanvas.h" 6 #include "third_party/skia/include/core/SkCanvas.h"
7 #include "third_party/skia/include/core/SkColor.h" 7 #include "third_party/skia/include/core/SkColor.h"
8 #include "third_party/skia/include/core/SkDevice.h" 8 #include "third_party/skia/include/core/SkDevice.h"
9 #include "ui/ozone/platform/dri/dri_buffer.h" 9 #include "ui/ozone/platform/dri/dri_buffer.h"
10 #include "ui/ozone/platform/dri/dri_surface.h" 10 #include "ui/ozone/platform/dri/dri_surface.h"
11 #include "ui/ozone/platform/dri/hardware_display_controller.h" 11 #include "ui/ozone/platform/dri/hardware_display_controller.h"
12 12
13 namespace { 13 namespace {
14 14
15 // Create a basic mode for a 6x4 screen. 15 // Create a basic mode for a 6x4 screen.
16 const drmModeModeInfo kDefaultMode = 16 const drmModeModeInfo kDefaultMode =
17 {0, 6, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, {'\0'}}; 17 {0, 6, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, {'\0'}};
18 18
19 // Mock file descriptor ID. 19 // Mock file descriptor ID.
20 const int kFd = 3; 20 const int kFd = 3;
21 21
22 // Mock connector ID. 22 // Mock connector ID.
23 const uint32_t kConnectorId = 1; 23 const uint32_t kConnectorId = 1;
24 24
25 // Mock CRTC ID. 25 // Mock CRTC ID.
26 const uint32_t kCrtcId = 1; 26 const uint32_t kCrtcId = 1;
27 27
28 class MockDriWrapper : public ui::DriWrapper { 28 class MockDriWrapper : public ui::DriWrapper {
29 public: 29 public:
30 MockDriWrapper() : DriWrapper(""), id_(1) { fd_ = kFd; } 30 MockDriWrapper() : DriWrapper("") { fd_ = kFd; }
31 virtual ~MockDriWrapper() { fd_ = -1; } 31 virtual ~MockDriWrapper() { fd_ = -1; }
32 32
33 virtual drmModeCrtc* GetCrtc(uint32_t crtc_id) OVERRIDE { return NULL; } 33 virtual drmModeCrtc* GetCrtc(uint32_t crtc_id) OVERRIDE { return NULL; }
34 virtual void FreeCrtc(drmModeCrtc* crtc) OVERRIDE {} 34 virtual void FreeCrtc(drmModeCrtc* crtc) OVERRIDE {}
35 virtual bool SetCrtc(uint32_t crtc_id, 35 virtual bool SetCrtc(uint32_t crtc_id,
36 uint32_t framebuffer, 36 uint32_t framebuffer,
37 uint32_t* connectors, 37 uint32_t* connectors,
38 drmModeModeInfo* mode) OVERRIDE { return true; } 38 drmModeModeInfo* mode) OVERRIDE { return true; }
39 virtual bool SetCrtc(drmModeCrtc* crtc, uint32_t* connectors) OVERRIDE { 39 virtual bool SetCrtc(drmModeCrtc* crtc, uint32_t* connectors) OVERRIDE {
40 return true; 40 return true;
41 } 41 }
42 virtual bool AddFramebuffer(const drmModeModeInfo& mode, 42 virtual bool AddFramebuffer(uint32_t width,
43 uint32_t height,
43 uint8_t depth, 44 uint8_t depth,
44 uint8_t bpp, 45 uint8_t bpp,
45 uint32_t stride, 46 uint32_t stride,
46 uint32_t handle, 47 uint32_t handle,
47 uint32_t* framebuffer) OVERRIDE { 48 uint32_t* framebuffer) OVERRIDE { return true; }
48 *framebuffer = id_++;
49 return true;
50 }
51 virtual bool RemoveFramebuffer(uint32_t framebuffer) OVERRIDE { return true; } 49 virtual bool RemoveFramebuffer(uint32_t framebuffer) OVERRIDE { return true; }
52 virtual bool PageFlip(uint32_t crtc_id, 50 virtual bool PageFlip(uint32_t crtc_id,
53 uint32_t framebuffer, 51 uint32_t framebuffer,
54 void* data) OVERRIDE { 52 void* data) OVERRIDE {
55 return true; 53 return true;
56 } 54 }
57 virtual bool SetProperty(uint32_t connector_id, 55 virtual bool SetProperty(uint32_t connector_id,
58 uint32_t property_id, 56 uint32_t property_id,
59 uint64_t value) OVERRIDE { return true; } 57 uint64_t value) OVERRIDE { return true; }
60 virtual void FreeProperty(drmModePropertyRes* prop) OVERRIDE { delete prop; } 58 virtual void FreeProperty(drmModePropertyRes* prop) OVERRIDE { delete prop; }
61 virtual drmModePropertyBlobRes* GetPropertyBlob(drmModeConnector* connector, 59 virtual drmModePropertyBlobRes* GetPropertyBlob(drmModeConnector* connector,
62 const char* name) OVERRIDE { 60 const char* name) OVERRIDE {
63 return new drmModePropertyBlobRes; 61 return new drmModePropertyBlobRes;
64 } 62 }
65 virtual void FreePropertyBlob(drmModePropertyBlobRes* blob) OVERRIDE { 63 virtual void FreePropertyBlob(drmModePropertyBlobRes* blob) OVERRIDE {
66 delete blob; 64 delete blob;
67 } 65 }
68 66
69 private: 67 private:
70 int id_;
71 DISALLOW_COPY_AND_ASSIGN(MockDriWrapper); 68 DISALLOW_COPY_AND_ASSIGN(MockDriWrapper);
72 }; 69 };
73 70
74 class MockDriBuffer : public ui::DriBuffer { 71 class MockDriBuffer : public ui::DriBuffer {
75 public: 72 public:
76 MockDriBuffer(ui::DriWrapper* dri, bool initialize_expectation) 73 MockDriBuffer(ui::DriWrapper* dri,
77 : DriBuffer(dri), initialize_expectation_(initialize_expectation) {} 74 bool initialize_expectation,
75 int framebuffer)
76 : DriBuffer(dri), initialize_expectation_(initialize_expectation) {
77 framebuffer_ = framebuffer;
78 }
78 virtual ~MockDriBuffer() { 79 virtual ~MockDriBuffer() {
79 surface_.clear(); 80 surface_.clear();
80 } 81 }
81 82
82 virtual bool Initialize(const SkImageInfo& info) OVERRIDE { 83 virtual bool Initialize(const SkImageInfo& info) OVERRIDE {
83 if (!initialize_expectation_) 84 if (!initialize_expectation_)
84 return false; 85 return false;
85 86
86 surface_ = skia::AdoptRef(SkSurface::NewRaster(info)); 87 surface_ = skia::AdoptRef(SkSurface::NewRaster(info));
87 surface_->getCanvas()->clear(SK_ColorBLACK); 88 surface_->getCanvas()->clear(SK_ColorBLACK);
88 89
89 return true; 90 return true;
90 } 91 }
91 92
92 private: 93 private:
93 bool initialize_expectation_; 94 bool initialize_expectation_;
94 95
95 DISALLOW_COPY_AND_ASSIGN(MockDriBuffer); 96 DISALLOW_COPY_AND_ASSIGN(MockDriBuffer);
96 }; 97 };
97 98
98 class MockDriSurface : public ui::DriSurface { 99 class MockDriSurface : public ui::DriSurface {
99 public: 100 public:
100 MockDriSurface(ui::DriWrapper* dri, const gfx::Size& size) 101 MockDriSurface(ui::DriWrapper* dri, const gfx::Size& size)
101 : DriSurface(dri, size), dri_(dri), initialize_expectation_(true) {} 102 : DriSurface(dri, size),
103 dri_(dri),
104 initialize_expectation_(true),
105 framebuffer_(0) {}
102 virtual ~MockDriSurface() {} 106 virtual ~MockDriSurface() {}
103 107
104 void set_initialize_expectation(bool state) { 108 void set_initialize_expectation(bool state) {
105 initialize_expectation_ = state; 109 initialize_expectation_ = state;
106 } 110 }
107 111
108 private: 112 private:
109 virtual ui::DriBuffer* CreateBuffer() OVERRIDE { 113 virtual ui::DriBuffer* CreateBuffer() OVERRIDE {
110 return new MockDriBuffer(dri_, initialize_expectation_); 114 return new MockDriBuffer(dri_, initialize_expectation_, ++framebuffer_);
111 } 115 }
112 116
113 ui::DriWrapper* dri_; 117 ui::DriWrapper* dri_;
114 bool initialize_expectation_; 118 bool initialize_expectation_;
119 int framebuffer_;
115 120
116 DISALLOW_COPY_AND_ASSIGN(MockDriSurface); 121 DISALLOW_COPY_AND_ASSIGN(MockDriSurface);
117 }; 122 };
118 123
119 } // namespace 124 } // namespace
120 125
121 class DriSurfaceTest : public testing::Test { 126 class DriSurfaceTest : public testing::Test {
122 public: 127 public:
123 DriSurfaceTest() {} 128 DriSurfaceTest() {}
124 129
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 for (int j = 0; j < canvas->getDeviceSize().width(); ++j) { 214 for (int j = 0; j < canvas->getDeviceSize().width(); ++j) {
210 if (i < clip.height() && j < clip.width()) 215 if (i < clip.height() && j < clip.width())
211 EXPECT_EQ(SK_ColorWHITE, 216 EXPECT_EQ(SK_ColorWHITE,
212 canvas->getDevice()->accessBitmap(false).getColor(j, i)); 217 canvas->getDevice()->accessBitmap(false).getColor(j, i));
213 else 218 else
214 EXPECT_EQ(SK_ColorBLACK, 219 EXPECT_EQ(SK_ColorBLACK,
215 canvas->getDevice()->accessBitmap(false).getColor(j, i)); 220 canvas->getDevice()->accessBitmap(false).getColor(j, i));
216 } 221 }
217 } 222 }
218 } 223 }
OLDNEW
« no previous file with comments | « ui/ozone/platform/dri/dri_surface_factory_unittest.cc ('k') | ui/ozone/platform/dri/dri_wrapper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698