15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/gfx/image/image_skia_rep.h" 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 7cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)#include "base/logging.h" 8cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace gfx { 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 11cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)ImageSkiaRep::ImageSkiaRep() : scale_(0.0f) { 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ImageSkiaRep::~ImageSkiaRep() { 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1768043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)ImageSkiaRep::ImageSkiaRep(const gfx::Size& size, float scale) : scale_(scale) { 18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch bitmap_.allocN32Pixels(static_cast<int>(size.width() * this->scale()), 19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch static_cast<int>(size.height() * this->scale())); 20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) bitmap_.eraseColor(SK_ColorRED); 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2368043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles)ImageSkiaRep::ImageSkiaRep(const SkBitmap& src, float scale) 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) : bitmap_(src), 2568043e1e95eeb07d5cae7aca370b26518b0867d6Torne (Richard Coles) scale_(scale) { 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int ImageSkiaRep::GetWidth() const { 29cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return static_cast<int>(bitmap_.width() / scale()); 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)int ImageSkiaRep::GetHeight() const { 33cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return static_cast<int>(bitmap_.height() / scale()); 34cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)} 35cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 36cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)void ImageSkiaRep::SetScaled() { 37cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) DCHECK_EQ(0.0f, scale_); 38cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) if (scale_ == 0.0f) 39cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) scale_ = 1.0f; 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace gfx 43