// Copyright 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CC_RENDER_PASS_DRAW_QUAD_H_ #define CC_RENDER_PASS_DRAW_QUAD_H_ #include "base/basictypes.h" #include "base/memory/scoped_ptr.h" #include "cc/cc_export.h" #include "cc/draw_quad.h" #include "cc/render_pass.h" #include "cc/resource_provider.h" #include "third_party/WebKit/Source/Platform/chromium/public/WebFilterOperations.h" namespace cc { class CC_EXPORT RenderPassDrawQuad : public DrawQuad { public: static scoped_ptr Create(); virtual ~RenderPassDrawQuad(); void SetNew(const SharedQuadState* shared_quad_state, gfx::Rect rect, RenderPass::Id render_pass_id, bool is_replica, ResourceProvider::ResourceId mask_resource_id, gfx::Rect contents_changed_since_last_frame, gfx::RectF mask_uv_rect, const WebKit::WebFilterOperations& filters, skia::RefPtr filter, const WebKit::WebFilterOperations& background_filters); void SetAll(const SharedQuadState* shared_quad_state, gfx::Rect rect, gfx::Rect opaque_rect, gfx::Rect visible_rect, bool needs_blending, RenderPass::Id render_pass_id, bool is_replica, ResourceProvider::ResourceId mask_resource_id, gfx::Rect contents_changed_since_last_frame, gfx::RectF mask_uv_rect, const WebKit::WebFilterOperations& filters, skia::RefPtr filter, const WebKit::WebFilterOperations& background_filters); scoped_ptr Copy( const SharedQuadState* copied_shared_quad_state, RenderPass::Id copied_render_pass_id) const; RenderPass::Id render_pass_id; bool is_replica; ResourceProvider::ResourceId mask_resource_id; gfx::Rect contents_changed_since_last_frame; gfx::RectF mask_uv_rect; // Deprecated post-processing filters, applied to the pixels in the render // pass' texture. WebKit::WebFilterOperations filters; // Post-processing filter applied to the pixels in the render pass' texture. skia::RefPtr filter; // Post-processing filters, applied to the pixels showing through the // background of the render pass, from behind it. WebKit::WebFilterOperations background_filters; virtual void AppendResources(ResourceProvider::ResourceIdArray* resources) OVERRIDE; static const RenderPassDrawQuad* MaterialCast(const DrawQuad*); private: RenderPassDrawQuad(); }; } #endif // CC_RENDER_PASS_DRAW_QUAD_H_