summaryrefslogtreecommitdiffstats
path: root/cc
diff options
context:
space:
mode:
Diffstat (limited to 'cc')
-rw-r--r--cc/delegated_renderer_layer_impl_unittest.cc2
-rw-r--r--cc/draw_quad_unittest.cc43
-rw-r--r--cc/gl_renderer.cc4
-rw-r--r--cc/layer_tree_host_impl_unittest.cc2
-rw-r--r--cc/render_pass_draw_quad.cc26
-rw-r--r--cc/render_pass_draw_quad.h16
-rw-r--r--cc/render_surface_impl.cc19
-rw-r--r--cc/software_renderer.cc8
-rw-r--r--cc/test/render_pass_test_common.cc5
9 files changed, 43 insertions, 82 deletions
diff --git a/cc/delegated_renderer_layer_impl_unittest.cc b/cc/delegated_renderer_layer_impl_unittest.cc
index 49e877d..9106831 100644
--- a/cc/delegated_renderer_layer_impl_unittest.cc
+++ b/cc/delegated_renderer_layer_impl_unittest.cc
@@ -81,7 +81,7 @@ static void addRenderPassQuad(TestRenderPass* toPass, TestRenderPass* contributi
SharedQuadState* sharedState = quadSink.useSharedQuadState(SharedQuadState::Create());
sharedState->SetAll(gfx::Transform(), outputRect, outputRect, outputRect, false, 1);
scoped_ptr<RenderPassDrawQuad> quad = RenderPassDrawQuad::Create();
- quad->SetNew(sharedState, outputRect, contributingPass->id, false, 0, outputRect, 0, 0, 0, 0);
+ quad->SetNew(sharedState, outputRect, contributingPass->id, false, 0, outputRect, gfx::RectF());
quadSink.append(quad.PassAs<DrawQuad>(), data);
}
diff --git a/cc/draw_quad_unittest.cc b/cc/draw_quad_unittest.cc
index ecd978d..985f190 100644
--- a/cc/draw_quad_unittest.cc
+++ b/cc/draw_quad_unittest.cc
@@ -156,6 +156,18 @@ void compareDrawQuad(DrawQuad* quad, DrawQuad* copy, SharedQuadState* copyShared
quadAll->SetAll(sharedState.get(), quadRect, quadOpaqueRect, quadVisibleRect, needsBlending, a, b, c, d, e); } \
SETUP_AND_COPY_QUAD_ALL(Type, quadAll);
+#define CREATE_QUAD_5_NEW_1(Type, a, b, c, d, e, copyA) \
+ scoped_ptr<Type> quadNew(Type::Create()); \
+ { QUAD_DATA \
+ quadNew->SetNew(sharedState.get(), quadRect, a, b, c, d, e); } \
+ SETUP_AND_COPY_QUAD_NEW_1(Type, quadNew, copyA);
+
+#define CREATE_QUAD_5_ALL_1(Type, a, b, c, d, e, copyA) \
+ scoped_ptr<Type> quadAll(Type::Create()); \
+ { QUAD_DATA \
+ quadAll->SetAll(sharedState.get(), quadRect, quadOpaqueRect, quadVisibleRect, needsBlending, a, b, c, d, e); } \
+ SETUP_AND_COPY_QUAD_ALL_1(Type, quadAll, copyA);
+
#define CREATE_QUAD_6_NEW(Type, a, b, c, d, e, f) \
scoped_ptr<Type> quadNew(Type::Create()); \
{ QUAD_DATA \
@@ -192,18 +204,6 @@ void compareDrawQuad(DrawQuad* quad, DrawQuad* copy, SharedQuadState* copyShared
quadAll->SetAll(sharedState.get(), quadRect, quadOpaqueRect, quadVisibleRect, needsBlending, a, b, c, d, e, f, g, h); } \
SETUP_AND_COPY_QUAD_ALL(Type, quadAll);
-#define CREATE_QUAD_8_NEW_1(Type, a, b, c, d, e, f, g, h, copyA) \
- scoped_ptr<Type> quadNew(Type::Create()); \
- { QUAD_DATA \
- quadNew->SetNew(sharedState.get(), quadRect, a, b, c, d, e, f, g, h); } \
- SETUP_AND_COPY_QUAD_NEW_1(Type, quadNew, copyA);
-
-#define CREATE_QUAD_8_ALL_1(Type, a, b, c, d, e, f, g, h, copyA) \
- scoped_ptr<Type> quadAll(Type::Create()); \
- { QUAD_DATA \
- quadAll->SetAll(sharedState.get(), quadRect, quadOpaqueRect, quadVisibleRect, needsBlending, a, b, c, d, e, f, g, h); } \
- SETUP_AND_COPY_QUAD_ALL_1(Type, quadAll, copyA);
-
#define CREATE_QUAD_9_NEW(Type, a, b, c, d, e, f, g, h, i) \
scoped_ptr<Type> quadNew(Type::Create()); \
{ QUAD_DATA \
@@ -275,35 +275,26 @@ TEST(DrawQuadTest, copyRenderPassDrawQuad)
bool isReplica = true;
ResourceProvider::ResourceId maskResourceId = 78;
gfx::Rect contentsChangedSinceLastFrame(42, 11, 74, 24);
- float maskTexCoordScaleX = 33;
- float maskTexCoordScaleY = 19;
- float maskTexCoordOffsetX = -45;
- float maskTexCoordOffsetY = -21;
+ gfx::RectF maskUVRect(-45, -21, 33, 19);
RenderPass::Id copiedRenderPassId(235, 11);
CREATE_SHARED_STATE();
- CREATE_QUAD_8_NEW_1(RenderPassDrawQuad, renderPassId, isReplica, maskResourceId, contentsChangedSinceLastFrame, maskTexCoordScaleX, maskTexCoordScaleY, maskTexCoordOffsetX, maskTexCoordOffsetY, copiedRenderPassId);
+ CREATE_QUAD_5_NEW_1(RenderPassDrawQuad, renderPassId, isReplica, maskResourceId, contentsChangedSinceLastFrame, maskUVRect, copiedRenderPassId);
EXPECT_EQ(DrawQuad::RENDER_PASS, copyQuad->material);
EXPECT_EQ(copiedRenderPassId, copyQuad->render_pass_id);
EXPECT_EQ(isReplica, copyQuad->is_replica);
EXPECT_EQ(maskResourceId, copyQuad->mask_resource_id);
EXPECT_RECT_EQ(contentsChangedSinceLastFrame, copyQuad->contents_changed_since_last_frame);
- EXPECT_EQ(maskTexCoordScaleX, copyQuad->mask_tex_coord_scale_x);
- EXPECT_EQ(maskTexCoordScaleY, copyQuad->mask_tex_coord_scale_y);
- EXPECT_EQ(maskTexCoordOffsetX, copyQuad->mask_tex_coord_offset_x);
- EXPECT_EQ(maskTexCoordOffsetY, copyQuad->mask_tex_coord_offset_y);
+ EXPECT_EQ(maskUVRect.ToString(), copyQuad->mask_uv_rect.ToString());
- CREATE_QUAD_8_ALL_1(RenderPassDrawQuad, renderPassId, isReplica, maskResourceId, contentsChangedSinceLastFrame, maskTexCoordScaleX, maskTexCoordScaleY, maskTexCoordOffsetX, maskTexCoordOffsetY, copiedRenderPassId);
+ CREATE_QUAD_5_ALL_1(RenderPassDrawQuad, renderPassId, isReplica, maskResourceId, contentsChangedSinceLastFrame, maskUVRect, copiedRenderPassId);
EXPECT_EQ(DrawQuad::RENDER_PASS, copyQuad->material);
EXPECT_EQ(copiedRenderPassId, copyQuad->render_pass_id);
EXPECT_EQ(isReplica, copyQuad->is_replica);
EXPECT_EQ(maskResourceId, copyQuad->mask_resource_id);
EXPECT_RECT_EQ(contentsChangedSinceLastFrame, copyQuad->contents_changed_since_last_frame);
- EXPECT_EQ(maskTexCoordScaleX, copyQuad->mask_tex_coord_scale_x);
- EXPECT_EQ(maskTexCoordScaleY, copyQuad->mask_tex_coord_scale_y);
- EXPECT_EQ(maskTexCoordOffsetX, copyQuad->mask_tex_coord_offset_x);
- EXPECT_EQ(maskTexCoordOffsetY, copyQuad->mask_tex_coord_offset_y);
+ EXPECT_EQ(maskUVRect.ToString(), copyQuad->mask_uv_rect.ToString());
}
TEST(DrawQuadTest, copySolidColorDrawQuad)
diff --git a/cc/gl_renderer.cc b/cc/gl_renderer.cc
index a40dd3a..384e443 100644
--- a/cc/gl_renderer.cc
+++ b/cc/gl_renderer.cc
@@ -628,8 +628,8 @@ void GLRenderer::drawRenderPassQuad(DrawingFrame& frame, const RenderPassDrawQua
DCHECK(shaderMaskTexCoordOffsetLocation != 1);
GLC(context(), context()->activeTexture(GL_TEXTURE1));
GLC(context(), context()->uniform1i(shaderMaskSamplerLocation, 1));
- GLC(context(), context()->uniform2f(shaderMaskTexCoordScaleLocation, quad->mask_tex_coord_scale_x, quad->mask_tex_coord_scale_y));
- GLC(context(), context()->uniform2f(shaderMaskTexCoordOffsetLocation, quad->mask_tex_coord_offset_x, quad->mask_tex_coord_offset_y));
+ GLC(context(), context()->uniform2f(shaderMaskTexCoordOffsetLocation, quad->mask_uv_rect.x(), quad->mask_uv_rect.y()));
+ GLC(context(), context()->uniform2f(shaderMaskTexCoordScaleLocation, quad->mask_uv_rect.width(), quad->mask_uv_rect.height()));
m_resourceProvider->bindForSampling(quad->mask_resource_id, GL_TEXTURE_2D, GL_LINEAR);
GLC(context(), context()->activeTexture(GL_TEXTURE0));
}
diff --git a/cc/layer_tree_host_impl_unittest.cc b/cc/layer_tree_host_impl_unittest.cc
index 622a623..e40608c 100644
--- a/cc/layer_tree_host_impl_unittest.cc
+++ b/cc/layer_tree_host_impl_unittest.cc
@@ -4319,7 +4319,7 @@ static void configureRenderPassTestData(const char* testScript, RenderPassRemova
gfx::Rect quadRect = gfx::Rect(0, 0, 1, 1);
gfx::Rect contentsChangedRect = contentsChanged ? quadRect : gfx::Rect();
scoped_ptr<RenderPassDrawQuad> quad = RenderPassDrawQuad::Create();
- quad->SetNew(testData.sharedQuadState.get(), quadRect, newRenderPassId, isReplica, 1, contentsChangedRect, 1, 1, 0, 0);
+ quad->SetNew(testData.sharedQuadState.get(), quadRect, newRenderPassId, isReplica, 1, contentsChangedRect, gfx::RectF(0, 0, 1, 1));
renderPass->AppendQuad(quad.PassAs<DrawQuad>());
}
}
diff --git a/cc/render_pass_draw_quad.cc b/cc/render_pass_draw_quad.cc
index 5f3df08..f0ae447 100644
--- a/cc/render_pass_draw_quad.cc
+++ b/cc/render_pass_draw_quad.cc
@@ -9,11 +9,7 @@ namespace cc {
RenderPassDrawQuad::RenderPassDrawQuad()
: render_pass_id(RenderPass::Id(-1, -1)),
is_replica(false),
- mask_resource_id(-1),
- mask_tex_coord_scale_x(0),
- mask_tex_coord_scale_y(0),
- mask_tex_coord_offset_x(0),
- mask_tex_coord_offset_y(0) {
+ mask_resource_id(-1) {
}
scoped_ptr<RenderPassDrawQuad> RenderPassDrawQuad::Create() {
@@ -35,10 +31,7 @@ void RenderPassDrawQuad::SetNew(const SharedQuadState* shared_quad_state,
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) {
+ gfx::RectF mask_uv_rect) {
DCHECK(render_pass_id.layer_id > 0);
DCHECK(render_pass_id.index >= 0);
@@ -51,10 +44,7 @@ void RenderPassDrawQuad::SetNew(const SharedQuadState* shared_quad_state,
this->is_replica = is_replica;
this->mask_resource_id = mask_resource_id;
this->contents_changed_since_last_frame = contents_changed_since_last_frame;
- this->mask_tex_coord_scale_x = mask_tex_coord_scale_x;
- this->mask_tex_coord_scale_y = mask_tex_coord_scale_y;
- this->mask_tex_coord_offset_x = mask_tex_coord_offset_x;
- this->mask_tex_coord_offset_y = mask_tex_coord_offset_y;
+ this->mask_uv_rect = mask_uv_rect;
}
void RenderPassDrawQuad::SetAll(const SharedQuadState* shared_quad_state,
@@ -66,10 +56,7 @@ void RenderPassDrawQuad::SetAll(const SharedQuadState* shared_quad_state,
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) {
+ gfx::RectF mask_uv_rect) {
DCHECK(render_pass_id.layer_id > 0);
DCHECK(render_pass_id.index >= 0);
@@ -79,10 +66,7 @@ void RenderPassDrawQuad::SetAll(const SharedQuadState* shared_quad_state,
this->is_replica = is_replica;
this->mask_resource_id = mask_resource_id;
this->contents_changed_since_last_frame = contents_changed_since_last_frame;
- this->mask_tex_coord_scale_x = mask_tex_coord_scale_x;
- this->mask_tex_coord_scale_y = mask_tex_coord_scale_y;
- this->mask_tex_coord_offset_x = mask_tex_coord_offset_x;
- this->mask_tex_coord_offset_y = mask_tex_coord_offset_y;
+ this->mask_uv_rect = mask_uv_rect;
}
const RenderPassDrawQuad* RenderPassDrawQuad::MaterialCast(
diff --git a/cc/render_pass_draw_quad.h b/cc/render_pass_draw_quad.h
index b4c7c75..629eab9 100644
--- a/cc/render_pass_draw_quad.h
+++ b/cc/render_pass_draw_quad.h
@@ -24,10 +24,7 @@ class CC_EXPORT RenderPassDrawQuad : public DrawQuad {
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);
+ gfx::RectF mask_uv_rect);
void SetAll(const SharedQuadState* shared_quad_state,
gfx::Rect rect,
@@ -38,10 +35,7 @@ class CC_EXPORT RenderPassDrawQuad : public DrawQuad {
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);
+ gfx::RectF mask_uv_rect);
scoped_ptr<RenderPassDrawQuad> Copy(
const SharedQuadState* copied_shared_quad_state,
@@ -51,11 +45,7 @@ class CC_EXPORT RenderPassDrawQuad : public DrawQuad {
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;
+ gfx::RectF mask_uv_rect;
static const RenderPassDrawQuad* MaterialCast(const DrawQuad*);
private:
diff --git a/cc/render_surface_impl.cc b/cc/render_surface_impl.cc
index d8d25b6..d721539 100644
--- a/cc/render_surface_impl.cc
+++ b/cc/render_surface_impl.cc
@@ -225,23 +225,22 @@ void RenderSurfaceImpl::appendQuads(QuadSink& quadSink, AppendQuadsData& appendQ
maskLayer = 0;
}
- float maskTexCoordScaleX = 1;
- float maskTexCoordScaleY = 1;
- float maskTexCoordOffsetX = 0;
- float maskTexCoordOffsetY = 0;
+ gfx::RectF maskUVRect(0.0f, 0.0f, 1.0f, 1.0f);
if (maskLayer) {
- maskTexCoordScaleX = contentRect().width() / maskLayer->contentsScaleX() / maskLayer->bounds().width();
- maskTexCoordScaleY = contentRect().height() / maskLayer->contentsScaleY() / maskLayer->bounds().height();
- maskTexCoordOffsetX = static_cast<float>(contentRect().x()) / contentRect().width() * maskTexCoordScaleX;
- maskTexCoordOffsetY = static_cast<float>(contentRect().y()) / contentRect().height() * maskTexCoordScaleY;
+ float scaleX = contentRect().width() / maskLayer->contentsScaleX() / maskLayer->bounds().width();
+ float scaleY = contentRect().height() / maskLayer->contentsScaleY() / maskLayer->bounds().height();
+
+ maskUVRect = gfx::RectF(static_cast<float>(contentRect().x()) / contentRect().width() * scaleX,
+ static_cast<float>(contentRect().y()) / contentRect().height() * scaleY,
+ scaleX,
+ scaleY);
}
ResourceProvider::ResourceId maskResourceId = maskLayer ? maskLayer->contentsResourceId() : 0;
gfx::Rect contentsChangedSinceLastFrame = contentsChanged() ? m_contentRect : gfx::Rect();
scoped_ptr<RenderPassDrawQuad> quad = RenderPassDrawQuad::Create();
- quad->SetNew(sharedQuadState, contentRect(), renderPassId, forReplica, maskResourceId, contentsChangedSinceLastFrame,
- maskTexCoordScaleX, maskTexCoordScaleY, maskTexCoordOffsetX, maskTexCoordOffsetY);
+ quad->SetNew(sharedQuadState, contentRect(), renderPassId, forReplica, maskResourceId, contentsChangedSinceLastFrame, maskUVRect);
quadSink.append(quad.PassAs<DrawQuad>(), appendQuadsData);
}
diff --git a/cc/software_renderer.cc b/cc/software_renderer.cc
index 87b6fbf..9ebd780 100644
--- a/cc/software_renderer.cc
+++ b/cc/software_renderer.cc
@@ -321,10 +321,10 @@ void SoftwareRenderer::drawRenderPassQuad(const DrawingFrame& frame, const Rende
const SkBitmap* mask = maskLock.skBitmap();
SkRect maskRect = SkRect::MakeXYWH(
- quad->mask_tex_coord_offset_x * mask->width(),
- quad->mask_tex_coord_offset_y * mask->height(),
- quad->mask_tex_coord_scale_x * mask->width(),
- quad->mask_tex_coord_scale_y * mask->height());
+ quad->mask_uv_rect.x() * mask->width(),
+ quad->mask_uv_rect.y() * mask->height(),
+ quad->mask_uv_rect.width() * mask->width(),
+ quad->mask_uv_rect.height() * mask->height());
SkMatrix maskMat;
maskMat.setRectToRect(maskRect, destRect, SkMatrix::kFill_ScaleToFit);
diff --git a/cc/test/render_pass_test_common.cc b/cc/test/render_pass_test_common.cc
index 1672039..882a86a 100644
--- a/cc/test/render_pass_test_common.cc
+++ b/cc/test/render_pass_test_common.cc
@@ -67,10 +67,7 @@ void TestRenderPass::AppendOneOfEveryQuadType(cc::ResourceProvider* resourceProv
false,
0,
rect,
- 0,
- 0,
- 0,
- 0);
+ gfx::RectF());
AppendQuad(render_pass_quad.PassAs<DrawQuad>());
scoped_ptr<cc::SolidColorDrawQuad> solid_color_quad =