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_surface.h" 6 7 #include "third_party/skia/include/core/SkCanvas.h" 8 #include "ui/ozone/platform/dri/dri_buffer.h" 9 #include "ui/ozone/platform/dri/dri_wrapper.h" 10 11 namespace ui { 12 13 namespace { 14 15 class MockDriBuffer : public DriBuffer { 16 public: 17 MockDriBuffer(DriWrapper* dri, bool initialize_expectation) 18 : DriBuffer(dri), initialize_expectation_(initialize_expectation) {} 19 virtual ~MockDriBuffer() { surface_.clear(); } 20 21 virtual bool Initialize(const SkImageInfo& info) OVERRIDE { 22 if (!initialize_expectation_) 23 return false; 24 25 dri_->AddFramebuffer( 26 info.width(), info.height(), 24, 32, stride_, handle_, &framebuffer_); 27 surface_ = skia::AdoptRef(SkSurface::NewRaster(info)); 28 surface_->getCanvas()->clear(SK_ColorBLACK); 29 30 return true; 31 } 32 33 private: 34 bool initialize_expectation_; 35 36 DISALLOW_COPY_AND_ASSIGN(MockDriBuffer); 37 }; 38 39 } // namespace 40 41 MockDriSurface::MockDriSurface(DriWrapper* dri, const gfx::Size& size) 42 : DriSurface(dri, size), dri_(dri), initialize_expectation_(true) {} 43 44 MockDriSurface::~MockDriSurface() {} 45 46 DriBuffer* MockDriSurface::CreateBuffer() { 47 MockDriBuffer* bitmap = new MockDriBuffer(dri_, initialize_expectation_); 48 bitmaps_.push_back(bitmap); 49 50 return bitmap; 51 } 52 53 } // namespace ui 54