texture_layer_client.h revision c2e0dbddbe15c98d52c4786dac06cb8952a8ae6d
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 8namespace WebKit { class WebGraphicsContext3D; } 9 10namespace cc { 11class ResourceUpdateQueue; 12class TextureMailbox; 13 14class TextureLayerClient { 15 public: 16 // Called to prepare this layer's texture for compositing. The client may 17 // queue a texture upload or copy on the ResourceUpdateQueue. 18 // Returns the texture ID to be used for compositing. 19 virtual unsigned PrepareTexture(ResourceUpdateQueue* queue) = 0; 20 21 // Returns the context that is providing the texture. Used for rate limiting 22 // and detecting lost context. 23 virtual WebKit::WebGraphicsContext3D* Context3d() = 0; 24 25 // Returns true and provides a mailbox if a new frame is available. 26 // Returns false if no new data is available 27 // and the old mailbox is to be reused. 28 virtual bool PrepareTextureMailbox(TextureMailbox* mailbox) = 0; 29 30 protected: 31 virtual ~TextureLayerClient() {} 32}; 33 34} // namespace cc 35 36#endif // CC_LAYERS_TEXTURE_LAYER_CLIENT_H_ 37