texture_layer_client.h revision f2477e01787aa58f445919b809d89e252beef54f
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
10namespace blink { class WebGraphicsContext3D; }
11
12namespace cc {
13class ResourceUpdateQueue;
14class TextureMailbox;
15
16class TextureLayerClient {
17 public:
18  // Called to prepare this layer's texture for compositing.
19  // Returns the texture ID to be used for compositing.
20  virtual unsigned PrepareTexture() = 0;
21
22  // Returns true and provides a mailbox if a new frame is available.
23  // Returns false if no new data is available
24  // and the old mailbox is to be reused.
25  virtual bool PrepareTextureMailbox(
26      TextureMailbox* mailbox,
27      scoped_ptr<SingleReleaseCallback>* release_callback,
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