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.
5 #ifndef CC_LAYERS_IO_SURFACE_LAYER_IMPL_H_
6 #define CC_LAYERS_IO_SURFACE_LAYER_IMPL_H_
10 #include "cc/base/cc_export.h"
11 #include "cc/layers/layer_impl.h"
12 #include "ui/gfx/size.h"
16 class CC_EXPORT IOSurfaceLayerImpl
: public LayerImpl
{
18 static scoped_ptr
<IOSurfaceLayerImpl
> Create(LayerTreeImpl
* tree_impl
,
20 return make_scoped_ptr(new IOSurfaceLayerImpl(tree_impl
, id
));
22 virtual ~IOSurfaceLayerImpl();
24 void SetIOSurfaceProperties(unsigned io_surface_id
, const gfx::Size
& size
);
26 virtual scoped_ptr
<LayerImpl
> CreateLayerImpl(LayerTreeImpl
* tree_impl
)
28 virtual void PushPropertiesTo(LayerImpl
* layer_tree_impl
) OVERRIDE
;
30 virtual void AppendQuads(RenderPass
* render_pass
,
31 const OcclusionTracker
<LayerImpl
>& occlusion_tracker
,
32 AppendQuadsData
* append_quads_data
) OVERRIDE
;
34 virtual bool WillDraw(DrawMode draw_mode
,
35 ResourceProvider
* resource_provider
) OVERRIDE
;
36 virtual void ReleaseResources() OVERRIDE
;
39 IOSurfaceLayerImpl(LayerTreeImpl
* tree_impl
, int id
);
41 void DestroyResource();
43 virtual const char* LayerTypeAsString() const OVERRIDE
;
45 unsigned io_surface_id_
;
46 gfx::Size io_surface_size_
;
47 bool io_surface_changed_
;
48 unsigned io_surface_resource_id_
;
50 DISALLOW_COPY_AND_ASSIGN(IOSurfaceLayerImpl
);
55 #endif // CC_LAYERS_IO_SURFACE_LAYER_IMPL_H_