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