nine_patch_layer_impl.h revision c2e0dbddbe15c98d52c4786dac06cb8952a8ae6d
1// Copyright 2012 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 CC_LAYERS_NINE_PATCH_LAYER_IMPL_H_ 6#define CC_LAYERS_NINE_PATCH_LAYER_IMPL_H_ 7 8#include <string> 9 10#include "cc/base/cc_export.h" 11#include "cc/layers/layer_impl.h" 12#include "cc/resources/resource_provider.h" 13#include "ui/gfx/rect.h" 14#include "ui/gfx/size.h" 15 16namespace base { 17class DictionaryValue; 18} 19 20namespace cc { 21 22class CC_EXPORT NinePatchLayerImpl : public LayerImpl { 23 public: 24 static scoped_ptr<NinePatchLayerImpl> Create(LayerTreeImpl* tree_impl, 25 int id) { 26 return make_scoped_ptr(new NinePatchLayerImpl(tree_impl, id)); 27 } 28 virtual ~NinePatchLayerImpl(); 29 30 void SetResourceId(unsigned id) { resource_id_ = id; } 31 void SetLayout(gfx::Size image_bounds, gfx::Rect aperture); 32 33 virtual scoped_ptr<LayerImpl> CreateLayerImpl(LayerTreeImpl* tree_impl) 34 OVERRIDE; 35 virtual void PushPropertiesTo(LayerImpl* layer) OVERRIDE; 36 37 virtual void AppendQuads(QuadSink* quad_sink, 38 AppendQuadsData* append_quads_data) OVERRIDE; 39 virtual ResourceProvider::ResourceId ContentsResourceId() const OVERRIDE; 40 virtual void DumpLayerProperties(std::string* str, int indent) const OVERRIDE; 41 virtual void DidLoseOutputSurface() OVERRIDE; 42 43 virtual base::DictionaryValue* LayerTreeAsJson() const OVERRIDE; 44 45 protected: 46 NinePatchLayerImpl(LayerTreeImpl* tree_impl, int id); 47 48 private: 49 virtual const char* LayerTypeAsString() const OVERRIDE; 50 51 // The size of the NinePatch bitmap in pixels. 52 gfx::Size image_bounds_; 53 54 // The transparent center region that shows the parent layer's contents in 55 // image space. 56 gfx::Rect image_aperture_; 57 58 ResourceProvider::ResourceId resource_id_; 59 60 DISALLOW_COPY_AND_ASSIGN(NinePatchLayerImpl); 61}; 62 63} // namespace cc 64 65#endif // CC_LAYERS_NINE_PATCH_LAYER_IMPL_H_ 66