diff options
Diffstat (limited to 'chromium/cc/layers/io_surface_layer_impl.h')
-rw-r--r-- | chromium/cc/layers/io_surface_layer_impl.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/chromium/cc/layers/io_surface_layer_impl.h b/chromium/cc/layers/io_surface_layer_impl.h new file mode 100644 index 00000000000..356f5f299a4 --- /dev/null +++ b/chromium/cc/layers/io_surface_layer_impl.h @@ -0,0 +1,55 @@ +// Copyright 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CC_LAYERS_IO_SURFACE_LAYER_IMPL_H_ +#define CC_LAYERS_IO_SURFACE_LAYER_IMPL_H_ + +#include <string> + +#include "cc/base/cc_export.h" +#include "cc/layers/layer_impl.h" +#include "ui/gfx/size.h" + +namespace cc { + +class CC_EXPORT IOSurfaceLayerImpl : public LayerImpl { + public: + static scoped_ptr<IOSurfaceLayerImpl> Create(LayerTreeImpl* tree_impl, + int id) { + return make_scoped_ptr(new IOSurfaceLayerImpl(tree_impl, id)); + } + virtual ~IOSurfaceLayerImpl(); + + void SetIOSurfaceProperties(unsigned io_surface_id, gfx::Size size); + + virtual scoped_ptr<LayerImpl> CreateLayerImpl(LayerTreeImpl* tree_impl) + OVERRIDE; + virtual void PushPropertiesTo(LayerImpl* layer_tree_impl) OVERRIDE; + + virtual void AppendQuads(QuadSink* quad_sink, + AppendQuadsData* append_quads_data) OVERRIDE; + + virtual bool WillDraw(DrawMode draw_mode, + ResourceProvider* resource_provider) OVERRIDE; + virtual void DidLoseOutputSurface() OVERRIDE; + + private: + IOSurfaceLayerImpl(LayerTreeImpl* tree_impl, int id); + + void DestroyTexture(); + + virtual const char* LayerTypeAsString() const OVERRIDE; + + unsigned io_surface_id_; + gfx::Size io_surface_size_; + bool io_surface_changed_; + unsigned io_surface_texture_id_; + unsigned io_surface_resource_id_; + + DISALLOW_COPY_AND_ASSIGN(IOSurfaceLayerImpl); +}; + +} // namespace cc + +#endif // CC_LAYERS_IO_SURFACE_LAYER_IMPL_H_ |