Home | History | Annotate | Download | only in layers
      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:
     29   virtual ~TextureLayerClient() {}
     30 };
     31 
     32 }  // namespace cc
     33 
     34 #endif  // CC_LAYERS_TEXTURE_LAYER_CLIENT_H_
     35