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