• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
8 #include "cc/resources/single_release_callback.h"
9 
10 namespace cc {
11 class ResourceUpdateQueue;
12 class TextureMailbox;
13 
14 class 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 true and provides a mailbox if a new frame is available.
21   // Returns false if no new data is available
22   // and the old mailbox is to be reused.
23   virtual bool PrepareTextureMailbox(
24       TextureMailbox* mailbox,
25       scoped_ptr<SingleReleaseCallback>* release_callback,
26       bool use_shared_memory) = 0;
27 
28  protected:
~TextureLayerClient()29   virtual ~TextureLayerClient() {}
30 };
31 
32 }  // namespace cc
33 
34 #endif  // CC_LAYERS_TEXTURE_LAYER_CLIENT_H_
35