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/geometry/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 ~IOSurfaceLayerImpl() override
;
24 void SetIOSurfaceProperties(unsigned io_surface_id
, const gfx::Size
& size
);
26 scoped_ptr
<LayerImpl
> CreateLayerImpl(LayerTreeImpl
* tree_impl
) override
;
27 void PushPropertiesTo(LayerImpl
* layer_tree_impl
) override
;
29 void AppendQuads(RenderPass
* render_pass
,
30 AppendQuadsData
* append_quads_data
) override
;
32 bool WillDraw(DrawMode draw_mode
,
33 ResourceProvider
* resource_provider
) override
;
34 void ReleaseResources() override
;
37 IOSurfaceLayerImpl(LayerTreeImpl
* tree_impl
, int id
);
39 void DestroyResource();
41 const char* LayerTypeAsString() const override
;
43 unsigned io_surface_id_
;
44 gfx::Size io_surface_size_
;
45 bool io_surface_changed_
;
46 unsigned io_surface_resource_id_
;
48 DISALLOW_COPY_AND_ASSIGN(IOSurfaceLayerImpl
);
53 #endif // CC_LAYERS_IO_SURFACE_LAYER_IMPL_H_