// 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" namespace cc { class CC_EXPORT RenderPassDrawQuad : public DrawQuad { public: static scoped_ptr Create(); 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, float mask_tex_coord_scale_x, float mask_tex_coord_scale_y, float mask_tex_coord_offset_x, float mask_tex_coord_offset_y); 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, float mask_tex_coord_scale_x, float mask_tex_coord_scale_y, float mask_tex_coord_offset_x, float mask_tex_coord_offset_y); 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; // TODO(danakj): Make these a tex_coord_rect like TileDrawQuad. float mask_tex_coord_scale_x; float mask_tex_coord_scale_y; float mask_tex_coord_offset_x; float mask_tex_coord_offset_y; static const RenderPassDrawQuad* MaterialCast(const DrawQuad*); private: RenderPassDrawQuad(); }; } #endif // CC_RENDER_PASS_DRAW_QUAD_H_