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#include "ui/ozone/platform/dri/test/mock_dri_wrapper.h" 6 7#include <xf86drmMode.h> 8 9#include "ui/ozone/platform/dri/dri_surface.h" 10#include "ui/ozone/platform/dri/hardware_display_controller.h" 11 12namespace ui { 13 14MockDriWrapper::MockDriWrapper(int fd) 15 : DriWrapper(""), 16 get_crtc_call_count_(0), 17 free_crtc_call_count_(0), 18 restore_crtc_call_count_(0), 19 add_framebuffer_call_count_(0), 20 remove_framebuffer_call_count_(0), 21 page_flip_call_count_(0), 22 set_crtc_expectation_(true), 23 add_framebuffer_expectation_(true), 24 page_flip_expectation_(true) { 25 fd_ = fd; 26} 27 28MockDriWrapper::~MockDriWrapper() { 29 fd_ = -1; 30} 31 32drmModeCrtc* MockDriWrapper::GetCrtc(uint32_t crtc_id) { 33 get_crtc_call_count_++; 34 return new drmModeCrtc; 35} 36 37void MockDriWrapper::FreeCrtc(drmModeCrtc* crtc) { 38 free_crtc_call_count_++; 39 delete crtc; 40} 41 42bool MockDriWrapper::SetCrtc(uint32_t crtc_id, 43 uint32_t framebuffer, 44 uint32_t* connectors, 45 drmModeModeInfo* mode) { 46 return set_crtc_expectation_; 47} 48 49bool MockDriWrapper::SetCrtc(drmModeCrtc* crtc, uint32_t* connectors) { 50 restore_crtc_call_count_++; 51 return true; 52} 53 54bool MockDriWrapper::AddFramebuffer(uint32_t width, 55 uint32_t height, 56 uint8_t depth, 57 uint8_t bpp, 58 uint32_t stride, 59 uint32_t handle, 60 uint32_t* framebuffer) { 61 add_framebuffer_call_count_++; 62 *framebuffer = add_framebuffer_call_count_; 63 return add_framebuffer_expectation_; 64} 65 66bool MockDriWrapper::RemoveFramebuffer(uint32_t framebuffer) { 67 remove_framebuffer_call_count_++; 68 return true; 69} 70 71bool MockDriWrapper::PageFlip(uint32_t crtc_id, 72 uint32_t framebuffer, 73 void* data) { 74 page_flip_call_count_++; 75 static_cast<ui::HardwareDisplayController*>(data)->surface()->SwapBuffers(); 76 return page_flip_expectation_; 77} 78 79bool MockDriWrapper::SetProperty(uint32_t connector_id, 80 uint32_t property_id, 81 uint64_t value) { 82 return true; 83} 84 85void MockDriWrapper::FreeProperty(drmModePropertyRes* prop) { 86 delete prop; 87} 88 89drmModePropertyBlobRes* MockDriWrapper::GetPropertyBlob( 90 drmModeConnector* connector, 91 const char* name) { 92 return new drmModePropertyBlobRes; 93} 94 95void MockDriWrapper::FreePropertyBlob(drmModePropertyBlobRes* blob) { 96 delete blob; 97} 98 99bool MockDriWrapper::SetCursor(uint32_t crtc_id, 100 uint32_t handle, 101 uint32_t width, 102 uint32_t height) { 103 return true; 104} 105 106bool MockDriWrapper::MoveCursor(uint32_t crtc_id, int x, int y) { 107 return true; 108} 109 110void MockDriWrapper::HandleEvent(drmEventContext& event) { 111} 112 113} // namespace ui 114