texture_layer_client.h revision 7dbb3d5cf0c15f500944d211057644d6a2f37371
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_TEXTURE_LAYER_CLIENT_H_
6#define CC_LAYERS_TEXTURE_LAYER_CLIENT_H_
7
8namespace WebKit { class WebGraphicsContext3D; }
9
10namespace cc {
11class ResourceUpdateQueue;
12class TextureMailbox;
13
14class TextureLayerClient {
15 public:
16  // Called to prepare this layer's texture for compositing.
17  // Returns the texture ID to be used for compositing.
18  virtual unsigned PrepareTexture() = 0;
19
20  // Returns the context that is providing the texture. Used for rate limiting
21  // and detecting lost context.
22  virtual WebKit::WebGraphicsContext3D* Context3d() = 0;
23
24  // Returns true and provides a mailbox if a new frame is available.
25  // Returns false if no new data is available
26  // and the old mailbox is to be reused.
27  virtual bool PrepareTextureMailbox(TextureMailbox* mailbox,
28                                     bool use_shared_memory) = 0;
29
30 protected:
31  virtual ~TextureLayerClient() {}
32};
33
34}  // namespace cc
35
36#endif  // CC_LAYERS_TEXTURE_LAYER_CLIENT_H_
37