OLD | NEW |
1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "cc/render_pass_draw_quad.h" | 5 #include "cc/render_pass_draw_quad.h" |
6 | 6 |
7 namespace cc { | 7 namespace cc { |
8 | 8 |
9 scoped_ptr<RenderPassDrawQuad> RenderPassDrawQuad::create(const SharedQuadState*
sharedQuadState, const gfx::Rect& quadRect, RenderPass::Id renderPassId, bool i
sReplica, const ResourceProvider::ResourceId maskResourceId, const gfx::Rect& co
ntentsChangedSinceLastFrame, float maskTexCoordScaleX, float maskTexCoordScaleY,
float maskTexCoordOffsetX, float maskTexCoordOffsetY) | 9 RenderPassDrawQuad::RenderPassDrawQuad() |
10 { | 10 : render_pass_id(RenderPass::Id(-1, -1)), |
11 return make_scoped_ptr(new RenderPassDrawQuad(sharedQuadState, quadRect, ren
derPassId, isReplica, maskResourceId, contentsChangedSinceLastFrame, maskTexCoor
dScaleX, maskTexCoordScaleY, maskTexCoordOffsetX, maskTexCoordOffsetY)); | 11 is_replica(false), |
| 12 mask_resource_id(-1), |
| 13 mask_tex_coord_scale_x(0), |
| 14 mask_tex_coord_scale_y(0), |
| 15 mask_tex_coord_offset_x(0), |
| 16 mask_tex_coord_offset_y(0) { |
12 } | 17 } |
13 | 18 |
14 RenderPassDrawQuad::RenderPassDrawQuad(const SharedQuadState* sharedQuadState, c
onst gfx::Rect& quadRect, RenderPass::Id renderPassId, bool isReplica, ResourceP
rovider::ResourceId maskResourceId, const gfx::Rect& contentsChangedSinceLastFra
me, float maskTexCoordScaleX, float maskTexCoordScaleY, float maskTexCoordOffset
X, float maskTexCoordOffsetY) | 19 scoped_ptr<RenderPassDrawQuad> RenderPassDrawQuad::Create() { |
15 : m_renderPassId(renderPassId) | 20 return make_scoped_ptr(new RenderPassDrawQuad); |
16 , m_isReplica(isReplica) | |
17 , m_maskResourceId(maskResourceId) | |
18 , m_contentsChangedSinceLastFrame(contentsChangedSinceLastFrame) | |
19 , m_maskTexCoordScaleX(maskTexCoordScaleX) | |
20 , m_maskTexCoordScaleY(maskTexCoordScaleY) | |
21 , m_maskTexCoordOffsetX(maskTexCoordOffsetX) | |
22 , m_maskTexCoordOffsetY(maskTexCoordOffsetY) | |
23 { | |
24 DCHECK(m_renderPassId.layerId > 0); | |
25 DCHECK(m_renderPassId.index >= 0); | |
26 | |
27 gfx::Rect opaqueRect; | |
28 gfx::Rect visibleRect = quadRect; | |
29 bool needsBlending = false; | |
30 DrawQuad::SetAll(sharedQuadState, DrawQuad::RENDER_PASS, quadRect, opaqueRec
t, visibleRect, needsBlending); | |
31 } | 21 } |
32 | 22 |
33 const RenderPassDrawQuad* RenderPassDrawQuad::materialCast(const DrawQuad* quad) | 23 scoped_ptr<RenderPassDrawQuad> RenderPassDrawQuad::Copy( |
34 { | 24 const SharedQuadState* copied_shared_quad_state, |
35 DCHECK(quad->material == DrawQuad::RENDER_PASS); | 25 RenderPass::Id copied_render_pass_id) const { |
36 return static_cast<const RenderPassDrawQuad*>(quad); | 26 scoped_ptr<RenderPassDrawQuad> copy_quad(new RenderPassDrawQuad(*MaterialCast(
this))); |
| 27 copy_quad->shared_quad_state = copied_shared_quad_state; |
| 28 copy_quad->render_pass_id = copied_render_pass_id; |
| 29 return copy_quad.Pass(); |
37 } | 30 } |
38 | 31 |
39 scoped_ptr<RenderPassDrawQuad> RenderPassDrawQuad::copy(const SharedQuadState* c
opiedSharedQuadState, RenderPass::Id copiedRenderPassId) const | 32 void RenderPassDrawQuad::SetNew(const SharedQuadState* shared_quad_state, |
40 { | 33 gfx::Rect rect, |
41 scoped_ptr<RenderPassDrawQuad> copyQuad(new RenderPassDrawQuad(*materialCast
(this))); | 34 RenderPass::Id render_pass_id, |
42 copyQuad->shared_quad_state = copiedSharedQuadState; | 35 bool is_replica, |
43 copyQuad->m_renderPassId = copiedRenderPassId; | 36 ResourceProvider::ResourceId mask_resource_id, |
44 return copyQuad.Pass(); | 37 gfx::Rect contents_changed_since_last_frame, |
| 38 float mask_tex_coord_scale_x, |
| 39 float mask_tex_coord_scale_y, |
| 40 float mask_tex_coord_offset_x, |
| 41 float mask_tex_coord_offset_y) { |
| 42 DCHECK(render_pass_id.layerId > 0); |
| 43 DCHECK(render_pass_id.index >= 0); |
| 44 |
| 45 gfx::Rect opaque_rect; |
| 46 gfx::Rect visible_rect = rect; |
| 47 bool needs_blending = false; |
| 48 DrawQuad::SetAll(shared_quad_state, DrawQuad::RENDER_PASS, rect, opaque_rect, |
| 49 visible_rect, needs_blending); |
| 50 this->render_pass_id = render_pass_id; |
| 51 this->is_replica = is_replica; |
| 52 this->mask_resource_id = mask_resource_id; |
| 53 this->contents_changed_since_last_frame = contents_changed_since_last_frame; |
| 54 this->mask_tex_coord_scale_x = mask_tex_coord_scale_x; |
| 55 this->mask_tex_coord_scale_y = mask_tex_coord_scale_y; |
| 56 this->mask_tex_coord_offset_x = mask_tex_coord_offset_x; |
| 57 this->mask_tex_coord_offset_y = mask_tex_coord_offset_y; |
| 58 } |
| 59 |
| 60 void RenderPassDrawQuad::SetAll(const SharedQuadState* shared_quad_state, |
| 61 gfx::Rect rect, |
| 62 gfx::Rect opaque_rect, |
| 63 gfx::Rect visible_rect, |
| 64 bool needs_blending, |
| 65 RenderPass::Id render_pass_id, |
| 66 bool is_replica, |
| 67 ResourceProvider::ResourceId mask_resource_id, |
| 68 gfx::Rect contents_changed_since_last_frame, |
| 69 float mask_tex_coord_scale_x, |
| 70 float mask_tex_coord_scale_y, |
| 71 float mask_tex_coord_offset_x, |
| 72 float mask_tex_coord_offset_y) { |
| 73 DCHECK(render_pass_id.layerId > 0); |
| 74 DCHECK(render_pass_id.index >= 0); |
| 75 |
| 76 DrawQuad::SetAll(shared_quad_state, DrawQuad::RENDER_PASS, rect, opaque_rect, |
| 77 visible_rect, needs_blending); |
| 78 this->render_pass_id = render_pass_id; |
| 79 this->is_replica = is_replica; |
| 80 this->mask_resource_id = mask_resource_id; |
| 81 this->contents_changed_since_last_frame = contents_changed_since_last_frame; |
| 82 this->mask_tex_coord_scale_x = mask_tex_coord_scale_x; |
| 83 this->mask_tex_coord_scale_y = mask_tex_coord_scale_y; |
| 84 this->mask_tex_coord_offset_x = mask_tex_coord_offset_x; |
| 85 this->mask_tex_coord_offset_y = mask_tex_coord_offset_y; |
| 86 } |
| 87 |
| 88 const RenderPassDrawQuad* RenderPassDrawQuad::MaterialCast( |
| 89 const DrawQuad* quad) { |
| 90 DCHECK(quad->material == DrawQuad::RENDER_PASS); |
| 91 return static_cast<const RenderPassDrawQuad*>(quad); |
45 } | 92 } |
46 | 93 |
47 } // namespace cc | 94 } // namespace cc |
OLD | NEW |