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

Side by Side Diff: ui/ozone/platform/drm/test/mock_drm_device.h

Issue 1285183008: Ozone integration. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: add missing license header Created 5 years, 4 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
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #ifndef UI_OZONE_PLATFORM_DRM_TEST_MOCK_DRM_DEVICE_H_
6 #define UI_OZONE_PLATFORM_DRM_TEST_MOCK_DRM_DEVICE_H_
7
8 #include <map>
9 #include <queue>
10 #include <vector>
11
12 #include "skia/ext/refptr.h"
13 #include "third_party/skia/include/core/SkSurface.h"
14 #include "ui/ozone/platform/drm/gpu/drm_device.h"
15
16 namespace ui {
17
18 class CrtcController;
19 struct GammaRampRGBEntry;
20
21 // The real DrmDevice makes actual DRM calls which we can't use in unit tests.
22 class MockDrmDevice : public ui::DrmDevice {
23 public:
24 MockDrmDevice();
25 MockDrmDevice(bool use_sync_flips,
26 std::vector<uint32_t> crtcs,
27 size_t planes_per_crtc);
28
29 int get_get_crtc_call_count() const { return get_crtc_call_count_; }
30 int get_set_crtc_call_count() const { return set_crtc_call_count_; }
31 int get_restore_crtc_call_count() const { return restore_crtc_call_count_; }
32 int get_add_framebuffer_call_count() const {
33 return add_framebuffer_call_count_;
34 }
35 int get_remove_framebuffer_call_count() const {
36 return remove_framebuffer_call_count_;
37 }
38 int get_page_flip_call_count() const { return page_flip_call_count_; }
39 int get_overlay_flip_call_count() const { return overlay_flip_call_count_; }
40 int get_overlay_clear_call_count() const { return overlay_clear_call_count_; }
41 void set_set_crtc_expectation(bool state) { set_crtc_expectation_ = state; }
42 void set_page_flip_expectation(bool state) { page_flip_expectation_ = state; }
43 void set_add_framebuffer_expectation(bool state) {
44 add_framebuffer_expectation_ = state;
45 }
46 void set_create_dumb_buffer_expectation(bool state) {
47 create_dumb_buffer_expectation_ = state;
48 }
49
50 uint32_t current_framebuffer() const { return current_framebuffer_; }
51
52 const std::vector<skia::RefPtr<SkSurface>> buffers() const {
53 return buffers_;
54 }
55
56 uint32_t get_cursor_handle_for_crtc(uint32_t crtc) const {
57 const auto it = crtc_cursor_map_.find(crtc);
58 return it != crtc_cursor_map_.end() ? it->second : 0;
59 }
60
61 void RunCallbacks();
62
63 // DrmDevice:
64 ScopedDrmCrtcPtr GetCrtc(uint32_t crtc_id) override;
65 bool SetCrtc(uint32_t crtc_id,
66 uint32_t framebuffer,
67 std::vector<uint32_t> connectors,
68 drmModeModeInfo* mode) override;
69 bool SetCrtc(drmModeCrtc* crtc, std::vector<uint32_t> connectors) override;
70 bool DisableCrtc(uint32_t crtc_id) override;
71 ScopedDrmConnectorPtr GetConnector(uint32_t connector_id) override;
72 bool AddFramebuffer(uint32_t width,
73 uint32_t height,
74 uint8_t depth,
75 uint8_t bpp,
76 uint32_t stride,
77 uint32_t handle,
78 uint32_t* framebuffer) override;
79 bool RemoveFramebuffer(uint32_t framebuffer) override;
80 ScopedDrmFramebufferPtr GetFramebuffer(uint32_t framebuffer) override;
81 bool PageFlip(uint32_t crtc_id,
82 uint32_t framebuffer,
83 bool is_sync,
84 const PageFlipCallback& callback) override;
85 bool PageFlipOverlay(uint32_t crtc_id,
86 uint32_t framebuffer,
87 const gfx::Rect& location,
88 const gfx::Rect& source,
89 int overlay_plane) override;
90 ScopedDrmPropertyPtr GetProperty(drmModeConnector* connector,
91 const char* name) override;
92 bool SetProperty(uint32_t connector_id,
93 uint32_t property_id,
94 uint64_t value) override;
95 bool GetCapability(uint64_t capability, uint64_t* value) override;
96 ScopedDrmPropertyBlobPtr GetPropertyBlob(drmModeConnector* connector,
97 const char* name) override;
98 bool SetCursor(uint32_t crtc_id,
99 uint32_t handle,
100 const gfx::Size& size) override;
101 bool MoveCursor(uint32_t crtc_id, const gfx::Point& point) override;
102 bool CreateDumbBuffer(const SkImageInfo& info,
103 uint32_t* handle,
104 uint32_t* stride) override;
105 bool DestroyDumbBuffer(uint32_t handle) override;
106 bool MapDumbBuffer(uint32_t handle, size_t size, void** pixels) override;
107 bool UnmapDumbBuffer(void* pixels, size_t size) override;
108 bool CloseBufferHandle(uint32_t handle) override;
109 bool CommitProperties(drmModePropertySet* properties,
110 uint32_t flags,
111 bool is_sync,
112 bool test_only,
113 const PageFlipCallback& callback) override;
114 bool SetGammaRamp(uint32_t crtc_id,
115 const std::vector<GammaRampRGBEntry>& lut) override;
116 bool SetCapability(uint64_t capability, uint64_t value) override;
117
118 private:
119 ~MockDrmDevice() override;
120
121 int get_crtc_call_count_;
122 int set_crtc_call_count_;
123 int restore_crtc_call_count_;
124 int add_framebuffer_call_count_;
125 int remove_framebuffer_call_count_;
126 int page_flip_call_count_;
127 int overlay_flip_call_count_;
128 int overlay_clear_call_count_;
129 int allocate_buffer_count_;
130
131 bool set_crtc_expectation_;
132 bool add_framebuffer_expectation_;
133 bool page_flip_expectation_;
134 bool create_dumb_buffer_expectation_;
135
136 bool use_sync_flips_;
137
138 uint32_t current_framebuffer_;
139
140 std::vector<skia::RefPtr<SkSurface>> buffers_;
141
142 std::map<uint32_t, uint32_t> crtc_cursor_map_;
143
144 std::queue<PageFlipCallback> callbacks_;
145
146 DISALLOW_COPY_AND_ASSIGN(MockDrmDevice);
147 };
148
149 } // namespace ui
150
151 #endif // UI_OZONE_PLATFORM_DRM_TEST_MOCK_DRM_DEVICE_H_
OLDNEW
« no previous file with comments | « ui/ozone/platform/drm/ozone_platform_gbm.cc ('k') | ui/ozone/platform/drm/test/mock_drm_device.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698