Implement android_webview url intercepting.
[chromium-blink-merge.git] / cc / delegated_renderer_layer_impl.h
blob4ed842e560145d8da91dca35fc7dd00bb1763607
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.
5 #ifndef CCDelegatedRendererLayerImpl_h
6 #define CCDelegatedRendererLayerImpl_h
8 #include "CCLayerImpl.h"
9 #include "cc/scoped_ptr_vector.h"
11 namespace cc {
13 class CCDelegatedRendererLayerImpl : public CCLayerImpl {
14 public:
15 static scoped_ptr<CCDelegatedRendererLayerImpl> create(int id) { return make_scoped_ptr(new CCDelegatedRendererLayerImpl(id)); }
16 virtual ~CCDelegatedRendererLayerImpl();
18 virtual bool descendantDrawsContent() OVERRIDE;
19 virtual bool hasContributingDelegatedRenderPasses() const OVERRIDE;
21 // This gives ownership of the RenderPasses to the layer.
22 void setRenderPasses(ScopedPtrVector<CCRenderPass>&);
23 void clearRenderPasses();
25 virtual void didLoseContext() OVERRIDE;
27 virtual CCRenderPass::Id firstContributingRenderPassId() const OVERRIDE;
28 virtual CCRenderPass::Id nextContributingRenderPassId(CCRenderPass::Id) const OVERRIDE;
30 void appendContributingRenderPasses(CCRenderPassSink&);
31 virtual void appendQuads(CCQuadSink&, CCAppendQuadsData&) OVERRIDE;
33 private:
34 explicit CCDelegatedRendererLayerImpl(int);
36 CCRenderPass::Id convertDelegatedRenderPassId(CCRenderPass::Id delegatedRenderPassId) const;
38 void appendRenderPassQuads(CCQuadSink&, CCAppendQuadsData&, CCRenderPass* fromDelegatedRenderPass) const;
40 PassOwnPtr<CCDrawQuad> createCopyOfQuad(const CCDrawQuad*);
42 virtual const char* layerTypeAsString() const OVERRIDE;
44 ScopedPtrVector<CCRenderPass> m_renderPassesInDrawOrder;
45 base::hash_map<CCRenderPass::Id, int> m_renderPassesIndexById;
50 #endif // CCDelegatedRendererLayerImpl_h