diff options
51 files changed, 298 insertions, 241 deletions
diff --git a/cc/checkerboard_draw_quad.cc b/cc/checkerboard_draw_quad.cc index cba8813..e868bab 100644 --- a/cc/checkerboard_draw_quad.cc +++ b/cc/checkerboard_draw_quad.cc @@ -10,12 +10,12 @@ namespace cc { -scoped_ptr<CCCheckerboardDrawQuad> CCCheckerboardDrawQuad::create(const CCSharedQuadState* sharedQuadState, const IntRect& quadRect, SkColor color) +scoped_ptr<CCCheckerboardDrawQuad> CCCheckerboardDrawQuad::create(const CCSharedQuadState* sharedQuadState, const gfx::Rect& quadRect, SkColor color) { return make_scoped_ptr(new CCCheckerboardDrawQuad(sharedQuadState, quadRect, color)); } -CCCheckerboardDrawQuad::CCCheckerboardDrawQuad(const CCSharedQuadState* sharedQuadState, const IntRect& quadRect, SkColor color) +CCCheckerboardDrawQuad::CCCheckerboardDrawQuad(const CCSharedQuadState* sharedQuadState, const gfx::Rect& quadRect, SkColor color) : CCDrawQuad(sharedQuadState, CCDrawQuad::Checkerboard, quadRect) , m_color(color) { diff --git a/cc/checkerboard_draw_quad.h b/cc/checkerboard_draw_quad.h index c36bab0..23fcac9 100644 --- a/cc/checkerboard_draw_quad.h +++ b/cc/checkerboard_draw_quad.h @@ -15,13 +15,13 @@ namespace cc { class CCCheckerboardDrawQuad : public CCDrawQuad { public: - static scoped_ptr<CCCheckerboardDrawQuad> create(const CCSharedQuadState*, const IntRect&, SkColor); + static scoped_ptr<CCCheckerboardDrawQuad> create(const CCSharedQuadState*, const gfx::Rect&, SkColor); SkColor color() const { return m_color; }; static const CCCheckerboardDrawQuad* materialCast(const CCDrawQuad*); private: - CCCheckerboardDrawQuad(const CCSharedQuadState*, const IntRect&, SkColor); + CCCheckerboardDrawQuad(const CCSharedQuadState*, const gfx::Rect&, SkColor); SkColor m_color; }; diff --git a/cc/debug_border_draw_quad.cc b/cc/debug_border_draw_quad.cc index a8b9d35..5a9c778 100644 --- a/cc/debug_border_draw_quad.cc +++ b/cc/debug_border_draw_quad.cc @@ -10,12 +10,12 @@ namespace cc { -scoped_ptr<CCDebugBorderDrawQuad> CCDebugBorderDrawQuad::create(const CCSharedQuadState* sharedQuadState, const IntRect& quadRect, SkColor color, int width) +scoped_ptr<CCDebugBorderDrawQuad> CCDebugBorderDrawQuad::create(const CCSharedQuadState* sharedQuadState, const gfx::Rect& quadRect, SkColor color, int width) { return make_scoped_ptr(new CCDebugBorderDrawQuad(sharedQuadState, quadRect, color, width)); } -CCDebugBorderDrawQuad::CCDebugBorderDrawQuad(const CCSharedQuadState* sharedQuadState, const IntRect& quadRect, SkColor color, int width) +CCDebugBorderDrawQuad::CCDebugBorderDrawQuad(const CCSharedQuadState* sharedQuadState, const gfx::Rect& quadRect, SkColor color, int width) : CCDrawQuad(sharedQuadState, CCDrawQuad::DebugBorder, quadRect) , m_color(color) , m_width(width) diff --git a/cc/debug_border_draw_quad.h b/cc/debug_border_draw_quad.h index 32c228e..7c670d0 100644 --- a/cc/debug_border_draw_quad.h +++ b/cc/debug_border_draw_quad.h @@ -15,14 +15,14 @@ namespace cc { class CCDebugBorderDrawQuad : public CCDrawQuad { public: - static scoped_ptr<CCDebugBorderDrawQuad> create(const CCSharedQuadState*, const IntRect&, SkColor, int width); + static scoped_ptr<CCDebugBorderDrawQuad> create(const CCSharedQuadState*, const gfx::Rect&, SkColor, int width); SkColor color() const { return m_color; }; int width() const { return m_width; } static const CCDebugBorderDrawQuad* materialCast(const CCDrawQuad*); private: - CCDebugBorderDrawQuad(const CCSharedQuadState*, const IntRect&, SkColor, int width); + CCDebugBorderDrawQuad(const CCSharedQuadState*, const gfx::Rect&, SkColor, int width); SkColor m_color; int m_width; diff --git a/cc/delegated_renderer_layer_impl.cc b/cc/delegated_renderer_layer_impl.cc index b6d1ab6..5bddbe7 100644 --- a/cc/delegated_renderer_layer_impl.cc +++ b/cc/delegated_renderer_layer_impl.cc @@ -44,7 +44,7 @@ bool CCDelegatedRendererLayerImpl::hasContributingDelegatedRenderPasses() const void CCDelegatedRendererLayerImpl::setRenderPasses(ScopedPtrVector<CCRenderPass>& renderPassesInDrawOrder) { - FloatRect oldRootDamage; + gfx::RectF oldRootDamage; if (!m_renderPassesInDrawOrder.isEmpty()) oldRootDamage = m_renderPassesInDrawOrder.last()->damageRect(); @@ -57,8 +57,8 @@ void CCDelegatedRendererLayerImpl::setRenderPasses(ScopedPtrVector<CCRenderPass> renderPassesInDrawOrder.clear(); if (!m_renderPassesInDrawOrder.isEmpty()) { - FloatRect newRootDamage = m_renderPassesInDrawOrder.last()->damageRect(); - m_renderPassesInDrawOrder.last()->setDamageRect(unionRect(oldRootDamage, newRootDamage)); + gfx::RectF newRootDamage = m_renderPassesInDrawOrder.last()->damageRect(); + m_renderPassesInDrawOrder.last()->setDamageRect(oldRootDamage.Union(newRootDamage)); } } @@ -154,7 +154,7 @@ void CCDelegatedRendererLayerImpl::appendRenderPassQuads(CCQuadSink& quadSink, C // This layer must be drawing to a renderTarget other than itself. DCHECK(renderTarget() != this); - copiedSharedQuadState->clippedRectInTarget = CCMathUtil::mapClippedRect(drawTransform(), copiedSharedQuadState->clippedRectInTarget); + copiedSharedQuadState->clippedRectInTarget = CCMathUtil::mapClippedRect(drawTransform(), cc::IntRect(copiedSharedQuadState->clippedRectInTarget)); copiedSharedQuadState->quadTransform = copiedSharedQuadState->quadTransform * drawTransform(); copiedSharedQuadState->opacity *= drawOpacity(); } diff --git a/cc/delegated_renderer_layer_impl_unittest.cc b/cc/delegated_renderer_layer_impl_unittest.cc index ab873a3..4457556 100644 --- a/cc/delegated_renderer_layer_impl_unittest.cc +++ b/cc/delegated_renderer_layer_impl_unittest.cc @@ -88,7 +88,7 @@ static void addRenderPassQuad(CCTestRenderPass* toPass, CCTestRenderPass* contri { MockCCQuadCuller quadSink(toPass->quadList(), toPass->sharedQuadStateList()); CCAppendQuadsData data(toPass->id()); - IntRect outputRect = contributingPass->outputRect(); + gfx::Rect outputRect = contributingPass->outputRect(); CCSharedQuadState* sharedState = quadSink.useSharedQuadState(CCSharedQuadState::create(WebTransformationMatrix(), outputRect, outputRect, 1, false)); scoped_ptr<CCRenderPassDrawQuad> quad = CCRenderPassDrawQuad::create(sharedState, outputRect, contributingPass->id(), false, 0, outputRect, 0, 0, 0, 0); quadSink.append(quad.PassAs<CCDrawQuad>(), data); @@ -302,8 +302,8 @@ TEST_F(CCDelegatedRendererLayerImplTestOwnSurface, AddsRenderPasses) EXPECT_EQ(0, frame.renderPasses[5]->id().index); // The DelegatedRendererLayer should have added its RenderPasses to the frame in order. - EXPECT_RECT_EQ(IntRect(6, 6, 6, 6), frame.renderPasses[1]->outputRect()); - EXPECT_RECT_EQ(IntRect(7, 7, 7, 7), frame.renderPasses[2]->outputRect()); + EXPECT_RECT_EQ(gfx::Rect(6, 6, 6, 6), frame.renderPasses[1]->outputRect()); + EXPECT_RECT_EQ(gfx::Rect(7, 7, 7, 7), frame.renderPasses[2]->outputRect()); } TEST_F(CCDelegatedRendererLayerImplTestOwnSurface, AddsQuadsToContributingRenderPasses) diff --git a/cc/direct_renderer.cc b/cc/direct_renderer.cc index 444c15f..14c7af0 100644 --- a/cc/direct_renderer.cc +++ b/cc/direct_renderer.cc @@ -7,6 +7,7 @@ #include "CCDirectRenderer.h" #include "CCMathUtil.h" +#include "ui/gfx/rect_conversions.h" #include <public/WebTransformationMatrix.h> #include <vector> @@ -70,7 +71,7 @@ FloatRect CCDirectRenderer::quadVertexRect() } // static -void CCDirectRenderer::quadRectTransform(WebKit::WebTransformationMatrix* quadRectTransform, const WebKit::WebTransformationMatrix& quadTransform, const FloatRect& quadRect) +void CCDirectRenderer::quadRectTransform(WebKit::WebTransformationMatrix* quadRectTransform, const WebKit::WebTransformationMatrix& quadTransform, const gfx::RectF& quadRect) { *quadRectTransform = quadTransform; quadRectTransform->translate(0.5 * quadRect.width() + quadRect.x(), 0.5 * quadRect.height() + quadRect.y()); @@ -78,28 +79,28 @@ void CCDirectRenderer::quadRectTransform(WebKit::WebTransformationMatrix* quadRe } // static -void CCDirectRenderer::initializeMatrices(DrawingFrame& frame, const IntRect& drawRect, bool flipY) +void CCDirectRenderer::initializeMatrices(DrawingFrame& frame, const gfx::Rect& drawRect, bool flipY) { if (flipY) - frame.projectionMatrix = orthoProjectionMatrix(drawRect.x(), drawRect.maxX(), drawRect.maxY(), drawRect.y()); + frame.projectionMatrix = orthoProjectionMatrix(drawRect.x(), drawRect.right(), drawRect.bottom(), drawRect.y()); else - frame.projectionMatrix = orthoProjectionMatrix(drawRect.x(), drawRect.maxX(), drawRect.y(), drawRect.maxY()); + frame.projectionMatrix = orthoProjectionMatrix(drawRect.x(), drawRect.right(), drawRect.y(), drawRect.bottom()); frame.windowMatrix = windowMatrix(0, 0, drawRect.width(), drawRect.height()); frame.flippedY = flipY; } // static -IntRect CCDirectRenderer::moveScissorToWindowSpace(const DrawingFrame& frame, FloatRect scissorRect) +gfx::Rect CCDirectRenderer::moveScissorToWindowSpace(const DrawingFrame& frame, gfx::RectF scissorRect) { - IntRect scissorRectInCanvasSpace = enclosingIntRect(scissorRect); + gfx::Rect scissorRectInCanvasSpace = gfx::ToEnclosingRect(scissorRect); // The scissor coordinates must be supplied in viewport space so we need to offset // by the relative position of the top left corner of the current render pass. - IntRect framebufferOutputRect = frame.currentRenderPass->outputRect(); - scissorRectInCanvasSpace.setX(scissorRectInCanvasSpace.x() - framebufferOutputRect.x()); + gfx::Rect framebufferOutputRect = frame.currentRenderPass->outputRect(); + scissorRectInCanvasSpace.set_x(scissorRectInCanvasSpace.x() - framebufferOutputRect.x()); if (frame.flippedY && !frame.currentTexture) - scissorRectInCanvasSpace.setY(framebufferOutputRect.height() - (scissorRectInCanvasSpace.maxY() - framebufferOutputRect.y())); + scissorRectInCanvasSpace.set_y(framebufferOutputRect.height() - (scissorRectInCanvasSpace.bottom() - framebufferOutputRect.y())); else - scissorRectInCanvasSpace.setY(scissorRectInCanvasSpace.y() - framebufferOutputRect.y()); + scissorRectInCanvasSpace.set_y(scissorRectInCanvasSpace.y() - framebufferOutputRect.y()); return scissorRectInCanvasSpace; } @@ -159,7 +160,7 @@ void CCDirectRenderer::drawFrame(const CCRenderPassList& renderPassesInDrawOrder frame.renderPassesById = &renderPassesById; frame.rootRenderPass = rootRenderPass; frame.rootDamageRect = capabilities().usingPartialSwap ? rootRenderPass->damageRect() : rootRenderPass->outputRect(); - frame.rootDamageRect.intersect(IntRect(IntPoint::zero(), viewportSize())); + frame.rootDamageRect = frame.rootDamageRect.Intersect(gfx::Rect(gfx::Point(), viewportSize())); beginDrawingFrame(frame); for (size_t i = 0; i < renderPassesInDrawOrder.size(); ++i) @@ -175,7 +176,8 @@ void CCDirectRenderer::drawRenderPass(DrawingFrame& frame, const CCRenderPass* r frame.scissorRectInRenderPassSpace = frame.currentRenderPass->outputRect(); if (frame.rootDamageRect != frame.rootRenderPass->outputRect()) { WebTransformationMatrix inverseTransformToRoot = frame.currentRenderPass->transformToRootTarget().inverse(); - frame.scissorRectInRenderPassSpace.intersect(CCMathUtil::projectClippedRect(inverseTransformToRoot, frame.rootDamageRect)); + gfx::RectF damageRectInRenderPassSpace = CCMathUtil::projectClippedRect(inverseTransformToRoot, cc::FloatRect(frame.rootDamageRect)); + frame.scissorRectInRenderPassSpace = frame.scissorRectInRenderPassSpace.Intersect(damageRectInRenderPassSpace); } enableScissorTestRect(moveScissorToWindowSpace(frame, frame.scissorRectInRenderPassSpace)); @@ -183,9 +185,8 @@ void CCDirectRenderer::drawRenderPass(DrawingFrame& frame, const CCRenderPass* r const CCQuadList& quadList = renderPass->quadList(); for (CCQuadList::constBackToFrontIterator it = quadList.backToFrontBegin(); it != quadList.backToFrontEnd(); ++it) { - FloatRect quadScissorRect = frame.scissorRectInRenderPassSpace; - quadScissorRect.intersect((*it)->clippedRectInTarget()); - if (!quadScissorRect.isEmpty()) { + gfx::RectF quadScissorRect = frame.scissorRectInRenderPassSpace.Intersect((*it)->clippedRectInTarget()); + if (!quadScissorRect.IsEmpty()) { enableScissorTestRect(moveScissorToWindowSpace(frame, quadScissorRect)); drawQuad(frame, *it); } @@ -225,7 +226,7 @@ bool CCDirectRenderer::haveCachedResourcesForRenderPassId(CCRenderPass::Id id) c // static IntSize CCDirectRenderer::renderPassTextureSize(const CCRenderPass* pass) { - return pass->outputRect().size(); + return cc::IntSize(pass->outputRect().size()); } // static diff --git a/cc/direct_renderer.h b/cc/direct_renderer.h index edf4001..2744f6a 100644 --- a/cc/direct_renderer.h +++ b/cc/direct_renderer.h @@ -39,12 +39,12 @@ protected: const CCRenderPass* currentRenderPass; const CCScopedTexture* currentTexture; - FloatRect rootDamageRect; + gfx::RectF rootDamageRect; WebKit::WebTransformationMatrix projectionMatrix; WebKit::WebTransformationMatrix windowMatrix; bool flippedY; - FloatRect scissorRectInRenderPassSpace; + gfx::RectF scissorRectInRenderPassSpace; }; class CachedTexture : public CCScopedTexture { @@ -71,9 +71,9 @@ protected: }; static FloatRect quadVertexRect(); - static void quadRectTransform(WebKit::WebTransformationMatrix* quadRectTransform, const WebKit::WebTransformationMatrix& quadTransform, const FloatRect& quadRect); - static void initializeMatrices(DrawingFrame&, const IntRect& drawRect, bool flipY); - static IntRect moveScissorToWindowSpace(const DrawingFrame&, FloatRect scissorRect); + static void quadRectTransform(WebKit::WebTransformationMatrix* quadRectTransform, const WebKit::WebTransformationMatrix& quadTransform, const gfx::RectF& quadRect); + static void initializeMatrices(DrawingFrame&, const gfx::Rect& drawRect, bool flipY); + static gfx::Rect moveScissorToWindowSpace(const DrawingFrame&, gfx::RectF scissorRect); bool haveCachedResources(CCRenderPass::Id) const; static IntSize renderPassTextureSize(const CCRenderPass*); @@ -83,9 +83,9 @@ protected: bool useRenderPass(DrawingFrame&, const CCRenderPass*); virtual void bindFramebufferToOutputSurface(DrawingFrame&) = 0; - virtual bool bindFramebufferToTexture(DrawingFrame&, const CCScopedTexture*, const IntRect& framebufferRect) = 0; - virtual void setDrawViewportSize(const IntSize&) = 0; - virtual void enableScissorTestRect(const IntRect& scissorRect) = 0; + virtual bool bindFramebufferToTexture(DrawingFrame&, const CCScopedTexture*, const gfx::Rect& framebufferRect) = 0; + virtual void setDrawViewportSize(const gfx::Size&) = 0; + virtual void enableScissorTestRect(const gfx::Rect& scissorRect) = 0; virtual void disableScissorTest() = 0; virtual void clearFramebuffer(DrawingFrame&) = 0; virtual void drawQuad(DrawingFrame&, const CCDrawQuad*) = 0; diff --git a/cc/draw_quad.cc b/cc/draw_quad.cc index 65d2506..fe3bcdc 100644 --- a/cc/draw_quad.cc +++ b/cc/draw_quad.cc @@ -12,7 +12,6 @@ #include "CCRenderPassDrawQuad.h" #include "CCTileDrawQuad.h" #include "CCYUVVideoDrawQuad.h" -#include "IntRect.h" #include "base/logging.h" #include "cc/solid_color_draw_quad.h" #include "cc/stream_video_draw_quad.h" @@ -20,7 +19,7 @@ namespace cc { -CCDrawQuad::CCDrawQuad(const CCSharedQuadState* sharedQuadState, Material material, const IntRect& quadRect) +CCDrawQuad::CCDrawQuad(const CCSharedQuadState* sharedQuadState, Material material, const gfx::Rect& quadRect) : m_sharedQuadState(sharedQuadState) , m_sharedQuadStateId(sharedQuadState->id) , m_material(material) @@ -33,20 +32,18 @@ CCDrawQuad::CCDrawQuad(const CCSharedQuadState* sharedQuadState, Material materi DCHECK(m_material != Invalid); } -IntRect CCDrawQuad::opaqueRect() const +gfx::Rect CCDrawQuad::opaqueRect() const { if (opacity() != 1) - return IntRect(); + return gfx::Rect(); if (m_sharedQuadState->opaque && m_quadOpaque) return m_quadRect; return m_opaqueRect; } -void CCDrawQuad::setQuadVisibleRect(const IntRect& quadVisibleRect) +void CCDrawQuad::setQuadVisibleRect(gfx::Rect quadVisibleRect) { - IntRect intersection = quadVisibleRect; - intersection.intersect(m_quadRect); - m_quadVisibleRect = intersection; + m_quadVisibleRect = quadVisibleRect.Intersect(m_quadRect); } unsigned CCDrawQuad::size() const diff --git a/cc/draw_quad.h b/cc/draw_quad.h index 89fc674..7476d45 100644 --- a/cc/draw_quad.h +++ b/cc/draw_quad.h @@ -38,19 +38,19 @@ public: StreamVideoContent, }; - IntRect quadRect() const { return m_quadRect; } + gfx::Rect quadRect() const { return m_quadRect; } const WebKit::WebTransformationMatrix& quadTransform() const { return m_sharedQuadState->quadTransform; } - IntRect visibleContentRect() const { return m_sharedQuadState->visibleContentRect; } - IntRect clippedRectInTarget() const { return m_sharedQuadState->clippedRectInTarget; } + gfx::Rect visibleContentRect() const { return m_sharedQuadState->visibleContentRect; } + gfx::Rect clippedRectInTarget() const { return m_sharedQuadState->clippedRectInTarget; } float opacity() const { return m_sharedQuadState->opacity; } // For the purposes of blending, what part of the contents of this quad are opaque? - IntRect opaqueRect() const; - bool needsBlending() const { return m_needsBlending || !opaqueRect().contains(m_quadVisibleRect); } + gfx::Rect opaqueRect() const; + bool needsBlending() const { return m_needsBlending || !opaqueRect().Contains(m_quadVisibleRect); } // Allows changing the rect that gets drawn to make it smaller. Parameter passed // in will be clipped to quadRect(). - void setQuadVisibleRect(const IntRect&); - IntRect quadVisibleRect() const { return m_quadVisibleRect; } + void setQuadVisibleRect(gfx::Rect); + gfx::Rect quadVisibleRect() const { return m_quadVisibleRect; } bool isDebugQuad() const { return m_material == DebugBorder; } Material material() const { return m_material; } @@ -66,7 +66,7 @@ public: void setSharedQuadState(const CCSharedQuadState*); protected: - CCDrawQuad(const CCSharedQuadState*, Material, const IntRect&); + CCDrawQuad(const CCSharedQuadState*, Material, const gfx::Rect&); // Stores state common to a large bundle of quads; kept separate for memory // efficiency. There is special treatment to reconstruct these pointers @@ -75,8 +75,8 @@ protected: int m_sharedQuadStateId; Material m_material; - IntRect m_quadRect; - IntRect m_quadVisibleRect; + gfx::Rect m_quadRect; + gfx::Rect m_quadVisibleRect; // By default, the shared quad state determines whether or not this quad is // opaque or needs blending. Derived classes can override with these @@ -86,7 +86,7 @@ protected: // Be default, this rect is empty. It is used when the shared quad state and above // variables determine that the quad is not fully opaque but may be partially opaque. - IntRect m_opaqueRect; + gfx::Rect m_opaqueRect; }; #pragma pack(pop) diff --git a/cc/draw_quad_unittest.cc b/cc/draw_quad_unittest.cc index b7af099..98ed3d5 100644 --- a/cc/draw_quad_unittest.cc +++ b/cc/draw_quad_unittest.cc @@ -28,8 +28,8 @@ namespace { TEST(CCDrawQuadTest, copySharedQuadState) { WebTransformationMatrix quadTransform(1, 0.5, 0, 1, 0.5, 0); - IntRect visibleContentRect(10, 12, 14, 16); - IntRect clippedRectInTarget(19, 21, 23, 25); + gfx::Rect visibleContentRect(10, 12, 14, 16); + gfx::Rect clippedRectInTarget(19, 21, 23, 25); float opacity = 0.25; bool opaque = true; int id = 3; @@ -49,8 +49,8 @@ TEST(CCDrawQuadTest, copySharedQuadState) scoped_ptr<CCSharedQuadState> createSharedQuadState() { WebTransformationMatrix quadTransform(1, 0.5, 0, 1, 0.5, 0); - IntRect visibleContentRect(10, 12, 14, 16); - IntRect clippedRectInTarget(19, 21, 23, 25); + gfx::Rect visibleContentRect(10, 12, 14, 16); + gfx::Rect clippedRectInTarget(19, 21, 23, 25); float opacity = 1; bool opaque = false; int id = 3; @@ -83,8 +83,8 @@ void compareDrawQuad(CCDrawQuad* quad, CCDrawQuad* copy, CCSharedQuadState* copy copySharedState->id = 5; #define QUAD_DATA \ - IntRect quadRect(30, 40, 50, 60); \ - IntRect quadVisibleRect(40, 50, 30, 20); \ + gfx::Rect quadRect(30, 40, 50, 60); \ + gfx::Rect quadVisibleRect(40, 50, 30, 20); #define SETUP_AND_COPY_QUAD(Type, quad) \ quad->setQuadVisibleRect(quadVisibleRect); \ @@ -179,7 +179,7 @@ TEST(CCDrawQuadTest, copyDebugBorderDrawQuad) TEST(CCDrawQuadTest, copyIOSurfaceDrawQuad) { - IntSize size(58, 95); + gfx::Size size(58, 95); unsigned textureId = 72; CCIOSurfaceDrawQuad::Orientation orientation = CCIOSurfaceDrawQuad::Unflipped; @@ -195,7 +195,7 @@ TEST(CCDrawQuadTest, copyRenderPassDrawQuad) CCRenderPass::Id renderPassId(22, 64); bool isReplica = true; CCResourceProvider::ResourceId maskResourceId = 78; - IntRect contentsChangedSinceLastFrame(42, 11, 74, 24); + gfx::Rect contentsChangedSinceLastFrame(42, 11, 74, 24); float maskTexCoordScaleX = 33; float maskTexCoordScaleY = 19; float maskTexCoordOffsetX = -45; @@ -239,23 +239,23 @@ TEST(CCDrawQuadTest, copyTextureDrawQuad) { unsigned resourceId = 82; bool premultipliedAlpha = true; - FloatRect uvRect(0.5, 224, -51, 36); + gfx::RectF uvRect(0.5, 224, -51, 36); bool flipped = true; CREATE_SHARED_STATE(); CREATE_QUAD_4(CCTextureDrawQuad, resourceId, premultipliedAlpha, uvRect, flipped); EXPECT_EQ(resourceId, copyQuad->resourceId()); EXPECT_EQ(premultipliedAlpha, copyQuad->premultipliedAlpha()); - EXPECT_EQ(uvRect, copyQuad->uvRect()); + EXPECT_FLOAT_RECT_EQ(uvRect, copyQuad->uvRect()); EXPECT_EQ(flipped, copyQuad->flipped()); } TEST(CCDrawQuadTest, copyTileDrawQuad) { - IntRect opaqueRect(33, 44, 22, 33); + gfx::Rect opaqueRect(33, 44, 22, 33); unsigned resourceId = 104; - IntPoint textureOffset(-31, 47); - IntSize textureSize(85, 32); + gfx::Point textureOffset(-31, 47); + gfx::Size textureSize(85, 32); GLint textureFilter = 82; bool swizzleContents = true; bool leftEdgeAA = true; diff --git a/cc/gl_renderer.cc b/cc/gl_renderer.cc index ead4315..8bb68fb 100644 --- a/cc/gl_renderer.cc +++ b/cc/gl_renderer.cc @@ -31,6 +31,7 @@ #include "third_party/khronos/GLES2/gl2ext.h" #include "third_party/skia/include/core/SkBitmap.h" #include "third_party/skia/include/core/SkColor.h" +#include "ui/gfx/rect_conversions.h" #include <public/WebGraphicsContext3D.h> #include <public/WebSharedGraphicsContext3D.h> #include <public/WebVideoFrame.h> @@ -209,7 +210,7 @@ void CCRendererGL::beginDrawingFrame(DrawingFrame& frame) // FIXME: Remove this once framebuffer is automatically recreated on first use ensureFramebuffer(); - if (viewportSize().isEmpty()) + if (viewportSize().IsEmpty()) return; TRACE_EVENT0("cc", "CCRendererGL::drawLayers"); @@ -291,7 +292,7 @@ void CCRendererGL::drawCheckerboardQuad(const DrawingFrame& frame, const CCCheck const int checkerboardWidth = 16; float frequency = 1.0 / checkerboardWidth; - IntRect tileRect = quad->quadRect(); + gfx::Rect tileRect = quad->quadRect(); float texOffsetX = tileRect.x() % checkerboardWidth; float texOffsetY = tileRect.y() % checkerboardWidth; float texScaleX = tileRect.width(); @@ -312,7 +313,7 @@ void CCRendererGL::drawDebugBorderQuad(const DrawingFrame& frame, const CCDebugB GLC(context(), context()->useProgram(program->program())); // Use the full quadRect for debug quads to not move the edges based on partial swaps. - const IntRect& layerRect = quad->quadRect(); + const gfx::Rect& layerRect = quad->quadRect(); WebTransformationMatrix renderMatrix = quad->quadTransform(); renderMatrix.translate(0.5 * layerRect.width() + layerRect.x(), 0.5 * layerRect.height() + layerRect.y()); renderMatrix.scaleNonUniform(layerRect.width(), layerRect.height()); @@ -376,17 +377,16 @@ scoped_ptr<CCScopedTexture> CCRendererGL::drawBackgroundFilters(DrawingFrame& fr DCHECK(!frame.currentTexture); // FIXME: Do a single readback for both the surface and replica and cache the filtered results (once filter textures are not reused). - IntRect deviceRect = enclosingIntRect(CCMathUtil::mapClippedRect(contentsDeviceTransform, sharedGeometryQuad().boundingBox())); + gfx::Rect deviceRect = gfx::ToEnclosingRect(CCMathUtil::mapClippedRect(contentsDeviceTransform, sharedGeometryQuad().boundingBox())); int top, right, bottom, left; filters.getOutsets(top, right, bottom, left); - deviceRect.move(-left, -top); - deviceRect.expand(left + right, top + bottom); + deviceRect.Inset(-left, -top, -right, -bottom); - deviceRect.intersect(frame.currentRenderPass->outputRect()); + deviceRect = deviceRect.Intersect(frame.currentRenderPass->outputRect()); scoped_ptr<CCScopedTexture> deviceBackgroundTexture = CCScopedTexture::create(m_resourceProvider); - if (!getFramebufferTexture(deviceBackgroundTexture.get(), deviceRect)) + if (!getFramebufferTexture(deviceBackgroundTexture.get(), cc::IntRect(deviceRect))) return scoped_ptr<CCScopedTexture>(); SkBitmap filteredDeviceBackground = applyFilters(this, filters, deviceBackgroundTexture.get()); @@ -397,7 +397,7 @@ scoped_ptr<CCScopedTexture> CCRendererGL::drawBackgroundFilters(DrawingFrame& fr int filteredDeviceBackgroundTextureId = texture->getTextureHandle(); scoped_ptr<CCScopedTexture> backgroundTexture = CCScopedTexture::create(m_resourceProvider); - if (!backgroundTexture->allocate(CCRenderer::ImplPool, quad->quadRect().size(), GL_RGBA, CCResourceProvider::TextureUsageFramebuffer)) + if (!backgroundTexture->allocate(CCRenderer::ImplPool, cc::IntSize(quad->quadRect().size()), GL_RGBA, CCResourceProvider::TextureUsageFramebuffer)) return scoped_ptr<CCScopedTexture>(); const CCRenderPass* targetRenderPass = frame.currentRenderPass; @@ -600,9 +600,9 @@ static void tileUniformLocation(T program, TileProgramUniforms& uniforms) void CCRendererGL::drawTileQuad(const DrawingFrame& frame, const CCTileDrawQuad* quad) { - IntRect tileRect = quad->quadVisibleRect(); + gfx::Rect tileRect = quad->quadVisibleRect(); - FloatRect clampRect(tileRect); + gfx::RectF clampRect(tileRect); // Clamp texture coordinates to avoid sampling outside the layer // by deflating the tile region half a texel or half a texel // minus epsilon for one pixel layers. The resulting clamp region @@ -612,12 +612,11 @@ void CCRendererGL::drawTileQuad(const DrawingFrame& frame, const CCTileDrawQuad* const float epsilon = 1 / 1024.0f; float clampX = min(0.5, clampRect.width() / 2.0 - epsilon); float clampY = min(0.5, clampRect.height() / 2.0 - epsilon); - clampRect.inflateX(-clampX); - clampRect.inflateY(-clampY); - FloatSize clampOffset = clampRect.minXMinYCorner() - FloatRect(tileRect).minXMinYCorner(); + clampRect.Inset(clampX, clampY, clampX, clampY); + gfx::PointF clampOffset = clampRect.origin() - tileRect.origin(); - FloatPoint textureOffset = quad->textureOffset() + clampOffset + - IntPoint(tileRect.location() - quad->quadRect().location()); + gfx::PointF textureOffset = quad->textureOffset() + clampOffset + + (tileRect.origin() - quad->quadRect().origin()); // Map clamping rectangle to unit square. float vertexTexTranslateX = -clampRect.x() / clampRect.width(); @@ -626,7 +625,7 @@ void CCRendererGL::drawTileQuad(const DrawingFrame& frame, const CCTileDrawQuad* float vertexTexScaleY = tileRect.height() / clampRect.height(); // Map to normalized texture coordinates. - const IntSize& textureSize = quad->textureSize(); + const gfx::Size& textureSize = quad->textureSize(); float fragmentTexTranslateX = textureOffset.x() / textureSize.width(); float fragmentTexTranslateY = textureOffset.y() / textureSize.height(); float fragmentTexScaleX = clampRect.width() / textureSize.width(); @@ -688,10 +687,10 @@ void CCRendererGL::drawTileQuad(const DrawingFrame& frame, const CCTileDrawQuad* GLC(context(), context()->uniform4f(uniforms.vertexTexTransformLocation, vertexTexTranslateX, vertexTexTranslateY, vertexTexScaleX, vertexTexScaleY)); GLC(context(), context()->uniform4f(uniforms.fragmentTexTransformLocation, fragmentTexTranslateX, fragmentTexTranslateY, fragmentTexScaleX, fragmentTexScaleY)); - FloatPoint bottomRight(tileRect.maxX(), tileRect.maxY()); - FloatPoint bottomLeft(tileRect.x(), tileRect.maxY()); + FloatPoint bottomRight(tileRect.right(), tileRect.bottom()); + FloatPoint bottomLeft(tileRect.x(), tileRect.bottom()); FloatPoint topLeft(tileRect.x(), tileRect.y()); - FloatPoint topRight(tileRect.maxX(), tileRect.y()); + FloatPoint topRight(tileRect.right(), tileRect.y()); // Map points to device space. bottomRight = CCMathUtil::mapPoint(deviceTransform, bottomRight, clipped); @@ -713,9 +712,9 @@ void CCRendererGL::drawTileQuad(const DrawingFrame& frame, const CCTileDrawQuad* topEdge = deviceLayerEdges.top(); if (quad->leftEdgeAA() && tileRect.x() == quad->quadRect().x()) leftEdge = deviceLayerEdges.left(); - if (quad->rightEdgeAA() && tileRect.maxX() == quad->quadRect().maxX()) + if (quad->rightEdgeAA() && tileRect.right() == quad->quadRect().right()) rightEdge = deviceLayerEdges.right(); - if (quad->bottomEdgeAA() && tileRect.maxY() == quad->quadRect().maxY()) + if (quad->bottomEdgeAA() && tileRect.bottom() == quad->quadRect().bottom()) bottomEdge = deviceLayerEdges.bottom(); float sign = FloatQuad(tileRect).isCounterclockwise() ? -1 : 1; @@ -761,7 +760,7 @@ void CCRendererGL::drawTileQuad(const DrawingFrame& frame, const CCTileDrawQuad* // un-antialiased quad should have and which vertex this is and the float // quad passed in via uniform is the actual geometry that gets used to draw // it. This is why this centered rect is used and not the original quadRect. - FloatRect centeredRect(FloatPoint(-0.5 * tileRect.width(), -0.5 * tileRect.height()), tileRect.size()); + gfx::RectF centeredRect(gfx::PointF(-0.5 * tileRect.width(), -0.5 * tileRect.height()), tileRect.size()); drawQuadGeometry(frame, quad->quadTransform(), centeredRect, uniforms.matrixLocation); } @@ -881,7 +880,7 @@ void CCRendererGL::drawTextureQuad(const DrawingFrame& frame, const CCTextureDra binding.set(textureProgram()); GLC(context(), context()->useProgram(binding.programId)); GLC(context(), context()->uniform1i(binding.samplerLocation, 0)); - const FloatRect& uvRect = quad->uvRect(); + const gfx::RectF& uvRect = quad->uvRect(); GLC(context(), context()->uniform4f(binding.texTransformLocation, uvRect.x(), uvRect.y(), uvRect.width(), uvRect.height())); GLC(context(), context()->activeTexture(GL_TEXTURE0)); @@ -939,7 +938,7 @@ void CCRendererGL::drawIOSurfaceQuad(const DrawingFrame& frame, const CCIOSurfac void CCRendererGL::finishDrawingFrame(DrawingFrame& frame) { m_currentFramebufferLock.reset(); - m_swapBufferRect.unite(enclosingIntRect(frame.rootDamageRect)); + m_swapBufferRect = m_swapBufferRect.Union(gfx::ToEnclosingRect(frame.rootDamageRect)); GLC(m_context, m_context->disable(GL_SCISSOR_TEST)); GLC(m_context, m_context->disable(GL_BLEND)); @@ -993,7 +992,7 @@ void CCRendererGL::setShaderOpacity(float opacity, int alphaLocation) GLC(m_context, m_context->uniform1f(alphaLocation, opacity)); } -void CCRendererGL::drawQuadGeometry(const DrawingFrame& frame, const WebKit::WebTransformationMatrix& drawTransform, const FloatRect& quadRect, int matrixLocation) +void CCRendererGL::drawQuadGeometry(const DrawingFrame& frame, const WebKit::WebTransformationMatrix& drawTransform, const gfx::RectF& quadRect, int matrixLocation) { WebTransformationMatrix quadRectMatrix; quadRectTransform(&quadRectMatrix, drawTransform, quadRect); @@ -1004,7 +1003,7 @@ void CCRendererGL::drawQuadGeometry(const DrawingFrame& frame, const WebKit::Web GLC(m_context, m_context->drawElements(GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, 0)); } -void CCRendererGL::copyTextureToFramebuffer(const DrawingFrame& frame, int textureId, const IntRect& rect, const WebTransformationMatrix& drawMatrix) +void CCRendererGL::copyTextureToFramebuffer(const DrawingFrame& frame, int textureId, const gfx::Rect& rect, const WebTransformationMatrix& drawMatrix) { const RenderPassProgram* program = renderPassProgram(); @@ -1037,7 +1036,7 @@ bool CCRendererGL::swapBuffers() if (m_capabilities.usingPartialSwap) { // If supported, we can save significant bandwidth by only swapping the damaged/scissored region (clamped to the viewport) - m_swapBufferRect.intersect(IntRect(IntPoint(), viewportSize())); + m_swapBufferRect = m_swapBufferRect.Intersect(gfx::Rect(gfx::Point(), viewportSize())); int flippedYPosOfRectBottom = viewportHeight() - m_swapBufferRect.y() - m_swapBufferRect.height(); m_context->postSubBufferCHROMIUM(m_swapBufferRect.x(), flippedYPosOfRectBottom, m_swapBufferRect.width(), m_swapBufferRect.height()); } else { @@ -1046,7 +1045,7 @@ bool CCRendererGL::swapBuffers() m_context->prepareTexture(); } - m_swapBufferRect = IntRect(); + m_swapBufferRect = gfx::Rect(); return true; } @@ -1197,7 +1196,7 @@ bool CCRendererGL::getFramebufferTexture(CCScopedTexture* texture, const IntRect { DCHECK(!texture->id() || (texture->size() == deviceRect.size() && texture->format() == GL_RGB)); - if (!texture->id() && !texture->allocate(CCRenderer::ImplPool, deviceRect.size(), GL_RGB, CCResourceProvider::TextureUsageAny)) + if (!texture->id() && !texture->allocate(CCRenderer::ImplPool, cc::IntSize(deviceRect.size()), GL_RGB, CCResourceProvider::TextureUsageAny)) return false; CCResourceProvider::ScopedWriteLockGL lock(m_resourceProvider, texture->id()); @@ -1207,7 +1206,7 @@ bool CCRendererGL::getFramebufferTexture(CCScopedTexture* texture, const IntRect return true; } -bool CCRendererGL::useScopedTexture(DrawingFrame& frame, const CCScopedTexture* texture, const IntRect& viewportRect) +bool CCRendererGL::useScopedTexture(DrawingFrame& frame, const CCScopedTexture* texture, const gfx::Rect& viewportRect) { DCHECK(texture->id()); frame.currentRenderPass = 0; @@ -1222,7 +1221,7 @@ void CCRendererGL::bindFramebufferToOutputSurface(DrawingFrame& frame) GLC(m_context, m_context->bindFramebuffer(GL_FRAMEBUFFER, 0)); } -bool CCRendererGL::bindFramebufferToTexture(DrawingFrame& frame, const CCScopedTexture* texture, const IntRect& framebufferRect) +bool CCRendererGL::bindFramebufferToTexture(DrawingFrame& frame, const CCScopedTexture* texture, const gfx::Rect& framebufferRect) { DCHECK(texture->id()); @@ -1239,7 +1238,7 @@ bool CCRendererGL::bindFramebufferToTexture(DrawingFrame& frame, const CCScopedT return true; } -void CCRendererGL::enableScissorTestRect(const IntRect& scissorRect) +void CCRendererGL::enableScissorTestRect(const gfx::Rect& scissorRect) { GLC(m_context, m_context->enable(GL_SCISSOR_TEST)); GLC(m_context, m_context->scissor(scissorRect.x(), scissorRect.y(), scissorRect.width(), scissorRect.height())); @@ -1250,7 +1249,7 @@ void CCRendererGL::disableScissorTest() GLC(m_context, m_context->disable(GL_SCISSOR_TEST)); } -void CCRendererGL::setDrawViewportSize(const IntSize& viewportSize) +void CCRendererGL::setDrawViewportSize(const gfx::Size& viewportSize) { GLC(m_context, m_context->viewport(0, 0, viewportSize.width(), viewportSize.height())); } diff --git a/cc/gl_renderer.h b/cc/gl_renderer.h index e6d1652..a255c9f 100644 --- a/cc/gl_renderer.h +++ b/cc/gl_renderer.h @@ -43,8 +43,6 @@ public: virtual void viewportChanged() OVERRIDE; - const FloatQuad& sharedGeometryQuad() const { return m_sharedGeometryQuad; } - // waits for rendering to finish virtual void finish() OVERRIDE; @@ -52,12 +50,7 @@ public: // puts backbuffer onscreen virtual bool swapBuffers() OVERRIDE; - static void debugGLCall(WebKit::WebGraphicsContext3D*, const char* command, const char* file, int line); - - const GeometryBinding* sharedGeometry() const { return m_sharedGeometry.get(); } - virtual void getFramebufferPixels(void *pixels, const IntRect&) OVERRIDE; - bool getFramebufferTexture(CCScopedTexture*, const IntRect& deviceRect); virtual bool isContextLost() OVERRIDE; @@ -66,15 +59,21 @@ public: protected: CCRendererGL(CCRendererClient*, CCResourceProvider*); + static void debugGLCall(WebKit::WebGraphicsContext3D*, const char* command, const char* file, int line); + bool isFramebufferDiscarded() const { return m_isFramebufferDiscarded; } bool initialize(); + const FloatQuad& sharedGeometryQuad() const { return m_sharedGeometryQuad; } + const GeometryBinding* sharedGeometry() const { return m_sharedGeometry.get(); } + + bool getFramebufferTexture(CCScopedTexture*, const IntRect& deviceRect); void releaseRenderPassTextures(); virtual void bindFramebufferToOutputSurface(DrawingFrame&) OVERRIDE; - virtual bool bindFramebufferToTexture(DrawingFrame&, const CCScopedTexture*, const IntRect& framebufferRect) OVERRIDE; - virtual void setDrawViewportSize(const IntSize&) OVERRIDE; - virtual void enableScissorTestRect(const IntRect& scissorRect) OVERRIDE; + virtual bool bindFramebufferToTexture(DrawingFrame&, const CCScopedTexture*, const gfx::Rect& framebufferRect) OVERRIDE; + virtual void setDrawViewportSize(const gfx::Size&) OVERRIDE; + virtual void enableScissorTestRect(const gfx::Rect& scissorRect) OVERRIDE; virtual void disableScissorTest() OVERRIDE; virtual void clearFramebuffer(DrawingFrame&) OVERRIDE; virtual void drawQuad(DrawingFrame&, const CCDrawQuad*) OVERRIDE; @@ -98,11 +97,11 @@ private: void setShaderOpacity(float opacity, int alphaLocation); void setShaderFloatQuad(const FloatQuad&, int quadLocation); - void drawQuadGeometry(const DrawingFrame&, const WebKit::WebTransformationMatrix& drawTransform, const FloatRect& quadRect, int matrixLocation); + void drawQuadGeometry(const DrawingFrame&, const WebKit::WebTransformationMatrix& drawTransform, const gfx::RectF& quadRect, int matrixLocation); - void copyTextureToFramebuffer(const DrawingFrame&, int textureId, const IntRect&, const WebKit::WebTransformationMatrix& drawMatrix); + void copyTextureToFramebuffer(const DrawingFrame&, int textureId, const gfx::Rect&, const WebKit::WebTransformationMatrix& drawMatrix); - bool useScopedTexture(DrawingFrame&, const CCScopedTexture*, const IntRect& viewportRect); + bool useScopedTexture(DrawingFrame&, const CCScopedTexture*, const gfx::Rect& viewportRect); bool makeContextCurrent(); @@ -204,7 +203,7 @@ private: WebKit::WebGraphicsContext3D* m_context; - IntRect m_swapBufferRect; + gfx::Rect m_swapBufferRect; bool m_isViewportChanged; bool m_isFramebufferDiscarded; bool m_discardFramebufferWhenNotVisible; diff --git a/cc/io_surface_draw_quad.cc b/cc/io_surface_draw_quad.cc index 2cd2ca6..6ce6af7 100644 --- a/cc/io_surface_draw_quad.cc +++ b/cc/io_surface_draw_quad.cc @@ -10,12 +10,12 @@ namespace cc { -scoped_ptr<CCIOSurfaceDrawQuad> CCIOSurfaceDrawQuad::create(const CCSharedQuadState* sharedQuadState, const IntRect& quadRect, const IntSize& ioSurfaceSize, unsigned ioSurfaceTextureId, Orientation orientation) +scoped_ptr<CCIOSurfaceDrawQuad> CCIOSurfaceDrawQuad::create(const CCSharedQuadState* sharedQuadState, const gfx::Rect& quadRect, const gfx::Size& ioSurfaceSize, unsigned ioSurfaceTextureId, Orientation orientation) { return make_scoped_ptr(new CCIOSurfaceDrawQuad(sharedQuadState, quadRect, ioSurfaceSize, ioSurfaceTextureId, orientation)); } -CCIOSurfaceDrawQuad::CCIOSurfaceDrawQuad(const CCSharedQuadState* sharedQuadState, const IntRect& quadRect, const IntSize& ioSurfaceSize, unsigned ioSurfaceTextureId, Orientation orientation) +CCIOSurfaceDrawQuad::CCIOSurfaceDrawQuad(const CCSharedQuadState* sharedQuadState, const gfx::Rect& quadRect, const gfx::Size& ioSurfaceSize, unsigned ioSurfaceTextureId, Orientation orientation) : CCDrawQuad(sharedQuadState, CCDrawQuad::IOSurfaceContent, quadRect) , m_ioSurfaceSize(ioSurfaceSize) , m_ioSurfaceTextureId(ioSurfaceTextureId) diff --git a/cc/io_surface_draw_quad.h b/cc/io_surface_draw_quad.h index bb5b028..bce3dd5 100644 --- a/cc/io_surface_draw_quad.h +++ b/cc/io_surface_draw_quad.h @@ -6,8 +6,8 @@ #define CCIOSurfaceDrawQuad_h #include "CCDrawQuad.h" -#include "IntSize.h" #include "base/memory/scoped_ptr.h" +#include "ui/gfx/size.h" namespace cc { @@ -20,17 +20,17 @@ public: Unflipped }; - static scoped_ptr<CCIOSurfaceDrawQuad> create(const CCSharedQuadState*, const IntRect&, const IntSize& ioSurfaceSize, unsigned ioSurfaceTextureId, Orientation); + static scoped_ptr<CCIOSurfaceDrawQuad> create(const CCSharedQuadState*, const gfx::Rect&, const gfx::Size& ioSurfaceSize, unsigned ioSurfaceTextureId, Orientation); - IntSize ioSurfaceSize() const { return m_ioSurfaceSize; } + gfx::Size ioSurfaceSize() const { return m_ioSurfaceSize; } unsigned ioSurfaceTextureId() const { return m_ioSurfaceTextureId; } Orientation orientation() const { return m_orientation; } static const CCIOSurfaceDrawQuad* materialCast(const CCDrawQuad*); private: - CCIOSurfaceDrawQuad(const CCSharedQuadState*, const IntRect&, const IntSize& ioSurfaceSize, unsigned ioSurfaceTextureId, Orientation); + CCIOSurfaceDrawQuad(const CCSharedQuadState*, const gfx::Rect&, const gfx::Size& ioSurfaceSize, unsigned ioSurfaceTextureId, Orientation); - IntSize m_ioSurfaceSize; + gfx::Size m_ioSurfaceSize; unsigned m_ioSurfaceTextureId; Orientation m_orientation; }; diff --git a/cc/layer_tree_host_impl.cc b/cc/layer_tree_host_impl.cc index 29d6bd9..a4367bf 100644 --- a/cc/layer_tree_host_impl.cc +++ b/cc/layer_tree_host_impl.cc @@ -551,7 +551,7 @@ static void removeRenderPassesRecursive(CCRenderPass::Id removeRenderPassId, CCL bool CCLayerTreeHostImpl::CullRenderPassesWithCachedTextures::shouldRemoveRenderPass(const CCRenderPassDrawQuad& quad, const FrameData&) const { - return quad.contentsChangedSinceLastFrame().isEmpty() && m_renderer.haveCachedResourcesForRenderPassId(quad.renderPassId()); + return quad.contentsChangedSinceLastFrame().IsEmpty() && m_renderer.haveCachedResourcesForRenderPassId(quad.renderPassId()); } bool CCLayerTreeHostImpl::CullRenderPassesWithNoQuads::shouldRemoveRenderPass(const CCRenderPassDrawQuad& quad, const FrameData& frame) const diff --git a/cc/layer_tree_host_impl_unittest.cc b/cc/layer_tree_host_impl_unittest.cc index 15228a7..719ae40 100644 --- a/cc/layer_tree_host_impl_unittest.cc +++ b/cc/layer_tree_host_impl_unittest.cc @@ -3043,7 +3043,7 @@ TEST_P(CCLayerTreeHostImplTest, textureCachingWithClipping) ASSERT_EQ(1U, frame.renderPasses[1]->quadList().size()); // Verify that the child layers are being clipped. - IntRect quadVisibleRect = frame.renderPasses[0]->quadList()[0]->quadVisibleRect(); + gfx::Rect quadVisibleRect = frame.renderPasses[0]->quadList()[0]->quadVisibleRect(); EXPECT_LT(quadVisibleRect.width(), 100); quadVisibleRect = frame.renderPasses[0]->quadList()[1]->quadVisibleRect(); @@ -3054,7 +3054,7 @@ TEST_P(CCLayerTreeHostImplTest, textureCachingWithClipping) EXPECT_EQ(CCDrawQuad::RenderPass, frame.renderPasses[1]->quadList()[0]->material()); CCRenderPassDrawQuad* quad = static_cast<CCRenderPassDrawQuad*>(frame.renderPasses[1]->quadList()[0]); - EXPECT_FALSE(quad->contentsChangedSinceLastFrame().isEmpty()); + EXPECT_FALSE(quad->contentsChangedSinceLastFrame().IsEmpty()); myHostImpl->drawLayers(frame); myHostImpl->didDrawAllLayers(frame); @@ -3725,7 +3725,7 @@ TEST_P(CCLayerTreeHostImplTest, surfaceTextureCaching) EXPECT_EQ(CCDrawQuad::RenderPass, frame.renderPasses[1]->quadList()[0]->material()); CCRenderPassDrawQuad* quad = static_cast<CCRenderPassDrawQuad*>(frame.renderPasses[1]->quadList()[0]); CCRenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId()); - EXPECT_FALSE(targetPass->damageRect().isEmpty()); + EXPECT_FALSE(targetPass->damageRect().IsEmpty()); myHostImpl->drawLayers(frame); myHostImpl->didDrawAllLayers(frame); @@ -3743,7 +3743,7 @@ TEST_P(CCLayerTreeHostImplTest, surfaceTextureCaching) EXPECT_EQ(CCDrawQuad::RenderPass, frame.renderPasses[0]->quadList()[0]->material()); CCRenderPassDrawQuad* quad = static_cast<CCRenderPassDrawQuad*>(frame.renderPasses[0]->quadList()[0]); CCRenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId()); - EXPECT_TRUE(targetPass->damageRect().isEmpty()); + EXPECT_TRUE(targetPass->damageRect().IsEmpty()); myHostImpl->drawLayers(frame); myHostImpl->didDrawAllLayers(frame); @@ -3762,7 +3762,7 @@ TEST_P(CCLayerTreeHostImplTest, surfaceTextureCaching) EXPECT_EQ(CCDrawQuad::RenderPass, frame.renderPasses[0]->quadList()[0]->material()); CCRenderPassDrawQuad* quad = static_cast<CCRenderPassDrawQuad*>(frame.renderPasses[0]->quadList()[0]); CCRenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId()); - EXPECT_TRUE(targetPass->damageRect().isEmpty()); + EXPECT_TRUE(targetPass->damageRect().IsEmpty()); myHostImpl->drawLayers(frame); myHostImpl->didDrawAllLayers(frame); @@ -3783,7 +3783,7 @@ TEST_P(CCLayerTreeHostImplTest, surfaceTextureCaching) EXPECT_EQ(CCDrawQuad::RenderPass, frame.renderPasses[1]->quadList()[0]->material()); CCRenderPassDrawQuad* quad = static_cast<CCRenderPassDrawQuad*>(frame.renderPasses[1]->quadList()[0]); CCRenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId()); - EXPECT_FALSE(targetPass->damageRect().isEmpty()); + EXPECT_FALSE(targetPass->damageRect().IsEmpty()); myHostImpl->drawLayers(frame); myHostImpl->didDrawAllLayers(frame); @@ -3810,7 +3810,7 @@ TEST_P(CCLayerTreeHostImplTest, surfaceTextureCaching) EXPECT_EQ(CCDrawQuad::RenderPass, frame.renderPasses[1]->quadList()[0]->material()); CCRenderPassDrawQuad* quad = static_cast<CCRenderPassDrawQuad*>(frame.renderPasses[1]->quadList()[0]); CCRenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId()); - EXPECT_TRUE(targetPass->damageRect().isEmpty()); + EXPECT_TRUE(targetPass->damageRect().IsEmpty()); // Was our surface evicted? EXPECT_FALSE(myHostImpl->renderer()->haveCachedResourcesForRenderPassId(targetPass->id())); @@ -3831,7 +3831,7 @@ TEST_P(CCLayerTreeHostImplTest, surfaceTextureCaching) EXPECT_EQ(CCDrawQuad::RenderPass, frame.renderPasses[0]->quadList()[0]->material()); CCRenderPassDrawQuad* quad = static_cast<CCRenderPassDrawQuad*>(frame.renderPasses[0]->quadList()[0]); CCRenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId()); - EXPECT_TRUE(targetPass->damageRect().isEmpty()); + EXPECT_TRUE(targetPass->damageRect().IsEmpty()); myHostImpl->drawLayers(frame); myHostImpl->didDrawAllLayers(frame); @@ -3852,7 +3852,7 @@ TEST_P(CCLayerTreeHostImplTest, surfaceTextureCaching) EXPECT_EQ(CCDrawQuad::RenderPass, frame.renderPasses[0]->quadList()[0]->material()); CCRenderPassDrawQuad* quad = static_cast<CCRenderPassDrawQuad*>(frame.renderPasses[0]->quadList()[0]); CCRenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId()); - EXPECT_TRUE(targetPass->damageRect().isEmpty()); + EXPECT_TRUE(targetPass->damageRect().IsEmpty()); myHostImpl->drawLayers(frame); myHostImpl->didDrawAllLayers(frame); @@ -3886,10 +3886,10 @@ TEST_P(CCLayerTreeHostImplTest, surfaceTextureCachingNoPartialSwap) EXPECT_EQ(CCDrawQuad::RenderPass, frame.renderPasses[1]->quadList()[0]->material()); CCRenderPassDrawQuad* quad = static_cast<CCRenderPassDrawQuad*>(frame.renderPasses[1]->quadList()[0]); CCRenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId()); - EXPECT_FALSE(targetPass->damageRect().isEmpty()); + EXPECT_FALSE(targetPass->damageRect().IsEmpty()); - EXPECT_FALSE(frame.renderPasses[0]->damageRect().isEmpty()); - EXPECT_FALSE(frame.renderPasses[1]->damageRect().isEmpty()); + EXPECT_FALSE(frame.renderPasses[0]->damageRect().IsEmpty()); + EXPECT_FALSE(frame.renderPasses[1]->damageRect().IsEmpty()); EXPECT_FALSE(frame.renderPasses[0]->hasOcclusionFromOutsideTargetSurface()); EXPECT_FALSE(frame.renderPasses[1]->hasOcclusionFromOutsideTargetSurface()); @@ -3909,7 +3909,7 @@ TEST_P(CCLayerTreeHostImplTest, surfaceTextureCachingNoPartialSwap) ASSERT_EQ(1U, frame.renderPasses.size()); EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size()); - EXPECT_TRUE(frame.renderPasses[0]->damageRect().isEmpty()); + EXPECT_TRUE(frame.renderPasses[0]->damageRect().IsEmpty()); myHostImpl->drawLayers(frame); myHostImpl->didDrawAllLayers(frame); @@ -3928,7 +3928,7 @@ TEST_P(CCLayerTreeHostImplTest, surfaceTextureCachingNoPartialSwap) EXPECT_EQ(CCDrawQuad::RenderPass, frame.renderPasses[0]->quadList()[0]->material()); CCRenderPassDrawQuad* quad = static_cast<CCRenderPassDrawQuad*>(frame.renderPasses[0]->quadList()[0]); CCRenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId()); - EXPECT_TRUE(targetPass->damageRect().isEmpty()); + EXPECT_TRUE(targetPass->damageRect().IsEmpty()); myHostImpl->drawLayers(frame); myHostImpl->didDrawAllLayers(frame); @@ -3949,7 +3949,7 @@ TEST_P(CCLayerTreeHostImplTest, surfaceTextureCachingNoPartialSwap) EXPECT_EQ(CCDrawQuad::RenderPass, frame.renderPasses[1]->quadList()[0]->material()); CCRenderPassDrawQuad* quad = static_cast<CCRenderPassDrawQuad*>(frame.renderPasses[1]->quadList()[0]); CCRenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId()); - EXPECT_FALSE(targetPass->damageRect().isEmpty()); + EXPECT_FALSE(targetPass->damageRect().IsEmpty()); myHostImpl->drawLayers(frame); myHostImpl->didDrawAllLayers(frame); @@ -3976,7 +3976,7 @@ TEST_P(CCLayerTreeHostImplTest, surfaceTextureCachingNoPartialSwap) EXPECT_EQ(CCDrawQuad::RenderPass, frame.renderPasses[1]->quadList()[0]->material()); CCRenderPassDrawQuad* quad = static_cast<CCRenderPassDrawQuad*>(frame.renderPasses[1]->quadList()[0]); CCRenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId()); - EXPECT_TRUE(targetPass->damageRect().isEmpty()); + EXPECT_TRUE(targetPass->damageRect().IsEmpty()); // Was our surface evicted? EXPECT_FALSE(myHostImpl->renderer()->haveCachedResourcesForRenderPassId(targetPass->id())); @@ -4015,7 +4015,7 @@ TEST_P(CCLayerTreeHostImplTest, surfaceTextureCachingNoPartialSwap) EXPECT_EQ(CCDrawQuad::RenderPass, frame.renderPasses[0]->quadList()[0]->material()); CCRenderPassDrawQuad* quad = static_cast<CCRenderPassDrawQuad*>(frame.renderPasses[0]->quadList()[0]); CCRenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId()); - EXPECT_TRUE(targetPass->damageRect().isEmpty()); + EXPECT_TRUE(targetPass->damageRect().IsEmpty()); myHostImpl->drawLayers(frame); myHostImpl->didDrawAllLayers(frame); diff --git a/cc/quad_culler.cc b/cc/quad_culler.cc index 6733b31..7e820fd 100644 --- a/cc/quad_culler.cc +++ b/cc/quad_culler.cc @@ -53,8 +53,8 @@ static inline bool appendQuadInternal(scoped_ptr<CCDrawQuad> drawQuad, const Int if (keepQuad) drawQuad->setQuadVisibleRect(culledRect); - occlusionTracker.overdrawMetrics().didCullForDrawing(drawQuad->quadTransform(), drawQuad->quadRect(), culledRect); - occlusionTracker.overdrawMetrics().didDraw(drawQuad->quadTransform(), culledRect, drawQuad->opaqueRect()); + occlusionTracker.overdrawMetrics().didCullForDrawing(drawQuad->quadTransform(), cc::IntRect(drawQuad->quadRect()), culledRect); + occlusionTracker.overdrawMetrics().didDraw(drawQuad->quadTransform(), culledRect, cc::IntRect(drawQuad->opaqueRect())); if (keepQuad) { if (createDebugBorderQuads && !drawQuad->isDebugQuad() && drawQuad->quadVisibleRect() != drawQuad->quadRect()) { @@ -79,9 +79,9 @@ bool CCQuadCuller::append(scoped_ptr<CCDrawQuad> drawQuad, CCAppendQuadsData& ap bool hasOcclusionFromOutsideTargetSurface; if (m_forSurface) - culledRect = m_occlusionTracker->unoccludedContributingSurfaceContentRect(m_layer, false, drawQuad->quadRect(), &hasOcclusionFromOutsideTargetSurface); + culledRect = m_occlusionTracker->unoccludedContributingSurfaceContentRect(m_layer, false, cc::IntRect(drawQuad->quadRect()), &hasOcclusionFromOutsideTargetSurface); else - culledRect = m_occlusionTracker->unoccludedContentRect(m_layer, drawQuad->quadRect(), &hasOcclusionFromOutsideTargetSurface); + culledRect = m_occlusionTracker->unoccludedContentRect(m_layer, cc::IntRect(drawQuad->quadRect()), &hasOcclusionFromOutsideTargetSurface); appendQuadsData.hadOcclusionFromOutsideTargetSurface |= hasOcclusionFromOutsideTargetSurface; diff --git a/cc/quad_culler_unittest.cc b/cc/quad_culler_unittest.cc index dd1b460..64b2d70 100644 --- a/cc/quad_culler_unittest.cc +++ b/cc/quad_culler_unittest.cc @@ -181,18 +181,18 @@ TEST(CCQuadCullerTest, verifyCullCenterTileOnly) appendQuads(quadList, sharedStateList, rootLayer.get(), it, occlusionTracker); ASSERT_EQ(quadList.size(), 12u); - IntRect quadVisibleRect1 = quadList[5]->quadVisibleRect(); + gfx::Rect quadVisibleRect1 = quadList[5]->quadVisibleRect(); EXPECT_EQ(quadVisibleRect1.height(), 50); - IntRect quadVisibleRect3 = quadList[7]->quadVisibleRect(); + gfx::Rect quadVisibleRect3 = quadList[7]->quadVisibleRect(); EXPECT_EQ(quadVisibleRect3.width(), 50); // Next index is 8, not 9, since centre quad culled. - IntRect quadVisibleRect4 = quadList[8]->quadVisibleRect(); + gfx::Rect quadVisibleRect4 = quadList[8]->quadVisibleRect(); EXPECT_EQ(quadVisibleRect4.width(), 50); EXPECT_EQ(quadVisibleRect4.x(), 250); - IntRect quadVisibleRect6 = quadList[10]->quadVisibleRect(); + gfx::Rect quadVisibleRect6 = quadList[10]->quadVisibleRect(); EXPECT_EQ(quadVisibleRect6.height(), 50); EXPECT_EQ(quadVisibleRect6.y(), 250); diff --git a/cc/render_pass.cc b/cc/render_pass.cc index 58e7dfe..d6e298f 100644 --- a/cc/render_pass.cc +++ b/cc/render_pass.cc @@ -17,12 +17,12 @@ using WebKit::WebTransformationMatrix; namespace cc { -scoped_ptr<CCRenderPass> CCRenderPass::create(Id id, IntRect outputRect, const WebKit::WebTransformationMatrix& transformToRootTarget) +scoped_ptr<CCRenderPass> CCRenderPass::create(Id id, gfx::Rect outputRect, const WebKit::WebTransformationMatrix& transformToRootTarget) { return make_scoped_ptr(new CCRenderPass(id, outputRect, transformToRootTarget)); } -CCRenderPass::CCRenderPass(Id id, IntRect outputRect, const WebKit::WebTransformationMatrix& transformToRootTarget) +CCRenderPass::CCRenderPass(Id id, gfx::Rect outputRect, const WebKit::WebTransformationMatrix& transformToRootTarget) : m_id(id) , m_transformToRootTarget(transformToRootTarget) , m_outputRect(outputRect) diff --git a/cc/render_pass.h b/cc/render_pass.h index 526d715..5289c2b 100644 --- a/cc/render_pass.h +++ b/cc/render_pass.h @@ -13,6 +13,7 @@ #include "cc/scoped_ptr_vector.h" #include "cc/shared_quad_state.h" #include "third_party/skia/include/core/SkColor.h" +#include "ui/gfx/rect_f.h" #include <public/WebFilterOperations.h> #include <public/WebTransformationMatrix.h> #include <vector> @@ -61,7 +62,7 @@ public: bool operator<(const Id& other) const { return layerId < other.layerId || (layerId == other.layerId && index < other.index); } }; - static scoped_ptr<CCRenderPass> create(Id, IntRect outputRect, const WebKit::WebTransformationMatrix& transformToRootTarget); + static scoped_ptr<CCRenderPass> create(Id, gfx::Rect outputRect, const WebKit::WebTransformationMatrix& transformToRootTarget); // A shallow copy of the render pass, which does not include its quads. scoped_ptr<CCRenderPass> copy(Id newId) const; @@ -79,10 +80,10 @@ public: const WebKit::WebTransformationMatrix& transformToRootTarget() const { return m_transformToRootTarget; } // This denotes the bounds in physical pixels of the output generated by this RenderPass. - const IntRect& outputRect() const { return m_outputRect; } + const gfx::Rect& outputRect() const { return m_outputRect; } - FloatRect damageRect() const { return m_damageRect; } - void setDamageRect(FloatRect rect) { m_damageRect = rect; } + gfx::RectF damageRect() const { return m_damageRect; } + void setDamageRect(gfx::RectF rect) { m_damageRect = rect; } const WebKit::WebFilterOperations& filters() const { return m_filters; } void setFilters(const WebKit::WebFilterOperations& filters) { m_filters = filters; } @@ -96,14 +97,14 @@ public: bool hasOcclusionFromOutsideTargetSurface() const { return m_hasOcclusionFromOutsideTargetSurface; } void setHasOcclusionFromOutsideTargetSurface(bool hasOcclusionFromOutsideTargetSurface) { m_hasOcclusionFromOutsideTargetSurface = hasOcclusionFromOutsideTargetSurface; } protected: - CCRenderPass(Id, IntRect outputRect, const WebKit::WebTransformationMatrix& transformToRootTarget); + CCRenderPass(Id, gfx::Rect outputRect, const WebKit::WebTransformationMatrix& transformToRootTarget); Id m_id; CCQuadList m_quadList; CCSharedQuadStateList m_sharedQuadStateList; WebKit::WebTransformationMatrix m_transformToRootTarget; - IntRect m_outputRect; - FloatRect m_damageRect; + gfx::Rect m_outputRect; + gfx::RectF m_damageRect; bool m_hasTransparentBackground; bool m_hasOcclusionFromOutsideTargetSurface; WebKit::WebFilterOperations m_filters; diff --git a/cc/render_pass_draw_quad.cc b/cc/render_pass_draw_quad.cc index 8cec50f..9457b08 100644 --- a/cc/render_pass_draw_quad.cc +++ b/cc/render_pass_draw_quad.cc @@ -8,12 +8,12 @@ namespace cc { -scoped_ptr<CCRenderPassDrawQuad> CCRenderPassDrawQuad::create(const CCSharedQuadState* sharedQuadState, const IntRect& quadRect, CCRenderPass::Id renderPassId, bool isReplica, const CCResourceProvider::ResourceId maskResourceId, const IntRect& contentsChangedSinceLastFrame, float maskTexCoordScaleX, float maskTexCoordScaleY, float maskTexCoordOffsetX, float maskTexCoordOffsetY) +scoped_ptr<CCRenderPassDrawQuad> CCRenderPassDrawQuad::create(const CCSharedQuadState* sharedQuadState, const gfx::Rect& quadRect, CCRenderPass::Id renderPassId, bool isReplica, const CCResourceProvider::ResourceId maskResourceId, const gfx::Rect& contentsChangedSinceLastFrame, float maskTexCoordScaleX, float maskTexCoordScaleY, float maskTexCoordOffsetX, float maskTexCoordOffsetY) { return make_scoped_ptr(new CCRenderPassDrawQuad(sharedQuadState, quadRect, renderPassId, isReplica, maskResourceId, contentsChangedSinceLastFrame, maskTexCoordScaleX, maskTexCoordScaleY, maskTexCoordOffsetX, maskTexCoordOffsetY)); } -CCRenderPassDrawQuad::CCRenderPassDrawQuad(const CCSharedQuadState* sharedQuadState, const IntRect& quadRect, CCRenderPass::Id renderPassId, bool isReplica, CCResourceProvider::ResourceId maskResourceId, const IntRect& contentsChangedSinceLastFrame, float maskTexCoordScaleX, float maskTexCoordScaleY, float maskTexCoordOffsetX, float maskTexCoordOffsetY) +CCRenderPassDrawQuad::CCRenderPassDrawQuad(const CCSharedQuadState* sharedQuadState, const gfx::Rect& quadRect, CCRenderPass::Id renderPassId, bool isReplica, CCResourceProvider::ResourceId maskResourceId, const gfx::Rect& contentsChangedSinceLastFrame, float maskTexCoordScaleX, float maskTexCoordScaleY, float maskTexCoordOffsetX, float maskTexCoordOffsetY) : CCDrawQuad(sharedQuadState, CCDrawQuad::RenderPass, quadRect) , m_renderPassId(renderPassId) , m_isReplica(isReplica) diff --git a/cc/render_pass_draw_quad.h b/cc/render_pass_draw_quad.h index 99222d9..9bc9ee9 100644 --- a/cc/render_pass_draw_quad.h +++ b/cc/render_pass_draw_quad.h @@ -10,18 +10,17 @@ #include "CCDrawQuad.h" #include "CCRenderPass.h" #include "CCResourceProvider.h" -#include "IntRect.h" namespace cc { class CCRenderPassDrawQuad : public CCDrawQuad { public: - static scoped_ptr<CCRenderPassDrawQuad> create(const CCSharedQuadState*, const IntRect&, CCRenderPass::Id renderPassId, bool isReplica, CCResourceProvider::ResourceId maskResourceId, const IntRect& contentsChangedSinceLastFrame, float maskTexCoordScaleX, float maskTexCoordScaleY, float maskTexCoordOffsetX, float maskTexCoordOffsetY); + static scoped_ptr<CCRenderPassDrawQuad> create(const CCSharedQuadState*, const gfx::Rect&, CCRenderPass::Id renderPassId, bool isReplica, CCResourceProvider::ResourceId maskResourceId, const gfx::Rect& contentsChangedSinceLastFrame, float maskTexCoordScaleX, float maskTexCoordScaleY, float maskTexCoordOffsetX, float maskTexCoordOffsetY); CCRenderPass::Id renderPassId() const { return m_renderPassId; } bool isReplica() const { return m_isReplica; } CCResourceProvider::ResourceId maskResourceId() const { return m_maskResourceId; } - const IntRect& contentsChangedSinceLastFrame() const { return m_contentsChangedSinceLastFrame; } + const gfx::Rect& contentsChangedSinceLastFrame() const { return m_contentsChangedSinceLastFrame; } static const CCRenderPassDrawQuad* materialCast(const CCDrawQuad*); float maskTexCoordScaleX() const { return m_maskTexCoordScaleX; } @@ -32,12 +31,12 @@ public: scoped_ptr<CCRenderPassDrawQuad> copy(const CCSharedQuadState* copiedSharedQuadState, CCRenderPass::Id copiedRenderPassId) const; private: - CCRenderPassDrawQuad(const CCSharedQuadState*, const IntRect&, CCRenderPass::Id renderPassId, bool isReplica, CCResourceProvider::ResourceId maskResourceId, const IntRect& contentsChangedSinceLastFrame, float maskTexCoordScaleX, float maskTexCoordScaleY, float maskTexCoordOffsetX, float maskTexCoordOffsetY); + CCRenderPassDrawQuad(const CCSharedQuadState*, const gfx::Rect&, CCRenderPass::Id renderPassId, bool isReplica, CCResourceProvider::ResourceId maskResourceId, const gfx::Rect& contentsChangedSinceLastFrame, float maskTexCoordScaleX, float maskTexCoordScaleY, float maskTexCoordOffsetX, float maskTexCoordOffsetY); CCRenderPass::Id m_renderPassId; bool m_isReplica; CCResourceProvider::ResourceId m_maskResourceId; - IntRect m_contentsChangedSinceLastFrame; + gfx::Rect m_contentsChangedSinceLastFrame; float m_maskTexCoordScaleX; float m_maskTexCoordScaleY; float m_maskTexCoordOffsetX; diff --git a/cc/render_pass_unittest.cc b/cc/render_pass_unittest.cc index 6a3a0ec..f7a3a75 100644 --- a/cc/render_pass_unittest.cc +++ b/cc/render_pass_unittest.cc @@ -32,8 +32,8 @@ struct CCRenderPassSize { CCQuadList m_quadList; CCSharedQuadStateList m_sharedQuadStateList; WebKit::WebTransformationMatrix m_transformToRootTarget; - IntRect m_outputRect; - FloatRect m_damageRect; + gfx::Rect m_outputRect; + gfx::RectF m_damageRect; bool m_hasTransparentBackground; bool m_hasOcclusionFromOutsideTargetSurface; WebKit::WebFilterOperations m_filters; @@ -43,12 +43,12 @@ struct CCRenderPassSize { TEST(CCRenderPassTest, copyShouldBeIdenticalExceptIdAndQuads) { CCRenderPass::Id id(3, 2); - IntRect outputRect(45, 22, 120, 13); + gfx::Rect outputRect(45, 22, 120, 13); WebTransformationMatrix transformToRoot(1, 0.5, 0.5, -0.5, -1, 0); scoped_ptr<CCRenderPass> pass = CCRenderPass::create(id, outputRect, transformToRoot); - IntRect damageRect(56, 123, 19, 43); + gfx::Rect damageRect(56, 123, 19, 43); bool hasTransparentBackground = true; bool hasOcclusionFromOutsideTargetSurface = true; WebFilterOperations filters; @@ -65,8 +65,8 @@ TEST(CCRenderPassTest, copyShouldBeIdenticalExceptIdAndQuads) // Stick a quad in the pass, this should not get copied. CCTestRenderPass* testPass = static_cast<CCTestRenderPass*>(pass.get()); - testPass->sharedQuadStateList().append(CCSharedQuadState::create(WebTransformationMatrix(), IntRect(), IntRect(), 1, false)); - testPass->quadList().append(CCCheckerboardDrawQuad::create(testPass->sharedQuadStateList().last(), IntRect(), SkColor()).PassAs<CCDrawQuad>()); + testPass->sharedQuadStateList().append(CCSharedQuadState::create(WebTransformationMatrix(), gfx::Rect(), gfx::Rect(), 1, false)); + testPass->quadList().append(CCCheckerboardDrawQuad::create(testPass->sharedQuadStateList().last(), gfx::Rect(), SkColor()).PassAs<CCDrawQuad>()); CCRenderPass::Id newId(63, 4); diff --git a/cc/render_surface_unittest.cc b/cc/render_surface_unittest.cc index 31ddd0d..e59a2a1 100644 --- a/cc/render_surface_unittest.cc +++ b/cc/render_surface_unittest.cc @@ -12,6 +12,7 @@ #include "cc/scoped_ptr_vector.h" #include "cc/shared_quad_state.h" #include "cc/single_thread_proxy.h" +#include "cc/test/geometry_test_utils.h" #include "cc/test/mock_quad_culler.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" @@ -112,7 +113,7 @@ TEST(CCRenderSurfaceTest, sanityCheckSurfaceCreatesCorrectSharedQuadState) EXPECT_EQ(30, sharedQuadState->quadTransform.m41()); EXPECT_EQ(40, sharedQuadState->quadTransform.m42()); - EXPECT_EQ(contentRect, IntRect(sharedQuadState->visibleContentRect)); + EXPECT_RECT_EQ(contentRect, IntRect(sharedQuadState->visibleContentRect)); EXPECT_EQ(1, sharedQuadState->opacity); EXPECT_FALSE(sharedQuadState->opaque); } @@ -157,7 +158,7 @@ TEST(CCRenderSurfaceTest, sanityCheckSurfaceCreatesCorrectRenderPass) CCRenderPass* pass = passSink.renderPasses()[0]; EXPECT_EQ(CCRenderPass::Id(2, 0), pass->id()); - EXPECT_EQ(contentRect, pass->outputRect()); + EXPECT_RECT_EQ(contentRect, pass->outputRect()); EXPECT_EQ(origin, pass->transformToRootTarget()); } diff --git a/cc/renderer.h b/cc/renderer.h index 1b32436..4106eee 100644 --- a/cc/renderer.h +++ b/cc/renderer.h @@ -9,7 +9,6 @@ #include "CCLayerTreeHost.h" #include "CCRenderPass.h" #include "FloatQuad.h" -#include "IntRect.h" namespace cc { @@ -42,7 +41,7 @@ public: const CCLayerTreeSettings& settings() const { return m_client->settings(); } - const IntSize& viewportSize() { return m_client->deviceViewportSize(); } + gfx::Size viewportSize() { return m_client->deviceViewportSize(); } int viewportWidth() { return viewportSize().width(); } int viewportHeight() { return viewportSize().height(); } diff --git a/cc/shared_quad_state.cc b/cc/shared_quad_state.cc index 926cd7eb..0d017c4f0 100644 --- a/cc/shared_quad_state.cc +++ b/cc/shared_quad_state.cc @@ -6,16 +6,14 @@ #include "cc/shared_quad_state.h" -#include "FloatQuad.h" - namespace cc { -scoped_ptr<CCSharedQuadState> CCSharedQuadState::create(const WebKit::WebTransformationMatrix& quadTransform, const IntRect& visibleContentRect, const IntRect& clippedRectInTarget, float opacity, bool opaque) +scoped_ptr<CCSharedQuadState> CCSharedQuadState::create(const WebKit::WebTransformationMatrix& quadTransform, const gfx::Rect& visibleContentRect, const gfx::Rect& clippedRectInTarget, float opacity, bool opaque) { return make_scoped_ptr(new CCSharedQuadState(quadTransform, visibleContentRect, clippedRectInTarget, opacity, opaque)); } -CCSharedQuadState::CCSharedQuadState(const WebKit::WebTransformationMatrix& quadTransform, const IntRect& visibleContentRect, const IntRect& clippedRectInTarget, float opacity, bool opaque) +CCSharedQuadState::CCSharedQuadState(const WebKit::WebTransformationMatrix& quadTransform, const gfx::Rect& visibleContentRect, const gfx::Rect& clippedRectInTarget, float opacity, bool opaque) : id(-1) , quadTransform(quadTransform) , visibleContentRect(visibleContentRect) diff --git a/cc/shared_quad_state.h b/cc/shared_quad_state.h index 0f5e386..00e5080 100644 --- a/cc/shared_quad_state.h +++ b/cc/shared_quad_state.h @@ -5,8 +5,8 @@ #ifndef CCSharedQuadState_h #define CCSharedQuadState_h -#include "IntRect.h" #include "base/memory/scoped_ptr.h" +#include "ui/gfx/rect.h" #include <public/WebTransformationMatrix.h> namespace cc { @@ -17,13 +17,13 @@ struct CCSharedQuadState { // Transforms from quad's original content space to its target content space. WebKit::WebTransformationMatrix quadTransform; // This rect lives in the content space for the quad's originating layer. - IntRect visibleContentRect; - IntRect clippedRectInTarget; + gfx::Rect visibleContentRect; + gfx::Rect clippedRectInTarget; float opacity; bool opaque; - static scoped_ptr<CCSharedQuadState> create(const WebKit::WebTransformationMatrix& quadTransform, const IntRect& visibleContentRect, const IntRect& clippedRectInTarget, float opacity, bool opaque); - CCSharedQuadState(const WebKit::WebTransformationMatrix& quadTransform, const IntRect& visibleContentRect, const IntRect& clippedRectInTarget, float opacity, bool opaque); + static scoped_ptr<CCSharedQuadState> create(const WebKit::WebTransformationMatrix& quadTransform, const gfx::Rect& visibleContentRect, const gfx::Rect& clippedRectInTarget, float opacity, bool opaque); + CCSharedQuadState(const WebKit::WebTransformationMatrix& quadTransform, const gfx::Rect& visibleContentRect, const gfx::Rect& clippedRectInTarget, float opacity, bool opaque); scoped_ptr<CCSharedQuadState> copy() const; }; diff --git a/cc/software_renderer.cc b/cc/software_renderer.cc index 4b427e8..3eda904 100644 --- a/cc/software_renderer.cc +++ b/cc/software_renderer.cc @@ -16,6 +16,7 @@ #include "third_party/skia/include/core/SkMatrix.h" #include "third_party/skia/include/core/SkShader.h" #include "third_party/skia/include/effects/SkLayerRasterizer.h" +#include "ui/gfx/rect_conversions.h" #include <public/WebImage.h> #include <public/WebSize.h> #include <public/WebTransformationMatrix.h> @@ -29,12 +30,12 @@ namespace cc { namespace { -SkRect toSkRect(const FloatRect& rect) +SkRect toSkRect(const gfx::RectF& rect) { return SkRect::MakeXYWH(rect.x(), rect.y(), rect.width(), rect.height()); } -SkIRect toSkIRect(const IntRect& rect) +SkIRect toSkIRect(const gfx::Rect& rect) { return SkIRect::MakeXYWH(rect.x(), rect.y(), rect.width(), rect.height()); } @@ -127,7 +128,7 @@ void CCRendererSoftware::bindFramebufferToOutputSurface(DrawingFrame& frame) m_skCurrentCanvas = m_skRootCanvas.get(); } -bool CCRendererSoftware::bindFramebufferToTexture(DrawingFrame& frame, const CCScopedTexture* texture, const IntRect& framebufferRect) +bool CCRendererSoftware::bindFramebufferToTexture(DrawingFrame& frame, const CCScopedTexture* texture, const gfx::Rect& framebufferRect) { m_currentFramebufferLock = make_scoped_ptr(new CCResourceProvider::ScopedWriteLockSoftware(m_resourceProvider, texture->id())); m_skCurrentCanvas = m_currentFramebufferLock->skCanvas(); @@ -137,14 +138,14 @@ bool CCRendererSoftware::bindFramebufferToTexture(DrawingFrame& frame, const CCS return true; } -void CCRendererSoftware::enableScissorTestRect(const IntRect& scissorRect) +void CCRendererSoftware::enableScissorTestRect(const gfx::Rect& scissorRect) { m_skCurrentCanvas->clipRect(toSkRect(scissorRect), SkRegion::kReplace_Op); } void CCRendererSoftware::disableScissorTest() { - IntRect canvasRect(IntPoint(), viewportSize()); + gfx::Rect canvasRect(gfx::Point(), viewportSize()); m_skCurrentCanvas->clipRect(toSkRect(canvasRect), SkRegion::kReplace_Op); } @@ -160,7 +161,7 @@ void CCRendererSoftware::clearFramebuffer(DrawingFrame& frame) } } -void CCRendererSoftware::setDrawViewportSize(const IntSize& viewportSize) +void CCRendererSoftware::setDrawViewportSize(const gfx::Size& viewportSize) { } @@ -254,9 +255,8 @@ void CCRendererSoftware::drawTextureQuad(const DrawingFrame& frame, const CCText // FIXME: Add support for non-premultiplied alpha. CCResourceProvider::ScopedReadLockSoftware quadResourceLock(m_resourceProvider, quad->resourceId()); - FloatRect uvRect = quad->uvRect(); - uvRect.scale(quad->quadRect().width(), quad->quadRect().height()); - SkIRect skUvRect = toSkIRect(enclosingIntRect(uvRect)); + gfx::RectF uvRect = quad->uvRect().Scale(quad->quadRect().width(), quad->quadRect().height()); + SkIRect skUvRect = toSkIRect(gfx::ToEnclosingRect(uvRect)); if (quad->flipped()) m_skCurrentCanvas->scale(1, -1); m_skCurrentCanvas->drawBitmapRect(*quadResourceLock.skBitmap(), &skUvRect, toSkRect(quadVertexRect()), &m_skCurrentPaint); @@ -267,7 +267,7 @@ void CCRendererSoftware::drawTileQuad(const DrawingFrame& frame, const CCTileDra DCHECK(isSoftwareResource(quad->resourceId())); CCResourceProvider::ScopedReadLockSoftware quadResourceLock(m_resourceProvider, quad->resourceId()); - SkIRect uvRect = toSkIRect(IntRect(quad->textureOffset(), quad->quadRect().size())); + SkIRect uvRect = toSkIRect(gfx::Rect(quad->textureOffset(), quad->quadRect().size())); m_skCurrentCanvas->drawBitmapRect(*quadResourceLock.skBitmap(), &uvRect, toSkRect(quadVertexRect()), &m_skCurrentPaint); } diff --git a/cc/software_renderer.h b/cc/software_renderer.h index 8c0334c..faa1551 100644 --- a/cc/software_renderer.h +++ b/cc/software_renderer.h @@ -38,9 +38,9 @@ public: protected: virtual void bindFramebufferToOutputSurface(DrawingFrame&) OVERRIDE; - virtual bool bindFramebufferToTexture(DrawingFrame&, const CCScopedTexture*, const IntRect& framebufferRect) OVERRIDE; - virtual void setDrawViewportSize(const IntSize&) OVERRIDE; - virtual void enableScissorTestRect(const IntRect& scissorRect) OVERRIDE; + virtual bool bindFramebufferToTexture(DrawingFrame&, const CCScopedTexture*, const gfx::Rect& framebufferRect) OVERRIDE; + virtual void setDrawViewportSize(const gfx::Size&) OVERRIDE; + virtual void enableScissorTestRect(const gfx::Rect& scissorRect) OVERRIDE; virtual void disableScissorTest() OVERRIDE; virtual void clearFramebuffer(DrawingFrame&) OVERRIDE; virtual void drawQuad(DrawingFrame&, const CCDrawQuad*) OVERRIDE; diff --git a/cc/solid_color_draw_quad.cc b/cc/solid_color_draw_quad.cc index cd395e5..ff7e992 100644 --- a/cc/solid_color_draw_quad.cc +++ b/cc/solid_color_draw_quad.cc @@ -10,12 +10,12 @@ namespace cc { -scoped_ptr<CCSolidColorDrawQuad> CCSolidColorDrawQuad::create(const CCSharedQuadState* sharedQuadState, const IntRect& quadRect, SkColor color) +scoped_ptr<CCSolidColorDrawQuad> CCSolidColorDrawQuad::create(const CCSharedQuadState* sharedQuadState, const gfx::Rect& quadRect, SkColor color) { return make_scoped_ptr(new CCSolidColorDrawQuad(sharedQuadState, quadRect, color)); } -CCSolidColorDrawQuad::CCSolidColorDrawQuad(const CCSharedQuadState* sharedQuadState, const IntRect& quadRect, SkColor color) +CCSolidColorDrawQuad::CCSolidColorDrawQuad(const CCSharedQuadState* sharedQuadState, const gfx::Rect& quadRect, SkColor color) : CCDrawQuad(sharedQuadState, CCDrawQuad::SolidColor, quadRect) , m_color(color) { diff --git a/cc/solid_color_draw_quad.h b/cc/solid_color_draw_quad.h index cd0619e..b864e44 100644 --- a/cc/solid_color_draw_quad.h +++ b/cc/solid_color_draw_quad.h @@ -15,13 +15,13 @@ namespace cc { class CCSolidColorDrawQuad : public CCDrawQuad { public: - static scoped_ptr<CCSolidColorDrawQuad> create(const CCSharedQuadState*, const IntRect&, SkColor); + static scoped_ptr<CCSolidColorDrawQuad> create(const CCSharedQuadState*, const gfx::Rect&, SkColor); SkColor color() const { return m_color; }; static const CCSolidColorDrawQuad* materialCast(const CCDrawQuad*); private: - CCSolidColorDrawQuad(const CCSharedQuadState*, const IntRect&, SkColor); + CCSolidColorDrawQuad(const CCSharedQuadState*, const gfx::Rect&, SkColor); SkColor m_color; }; diff --git a/cc/stream_video_draw_quad.cc b/cc/stream_video_draw_quad.cc index 5d29d45..46ebe07 100644 --- a/cc/stream_video_draw_quad.cc +++ b/cc/stream_video_draw_quad.cc @@ -10,12 +10,12 @@ namespace cc { -scoped_ptr<CCStreamVideoDrawQuad> CCStreamVideoDrawQuad::create(const CCSharedQuadState* sharedQuadState, const IntRect& quadRect, unsigned textureId, const WebKit::WebTransformationMatrix& matrix) +scoped_ptr<CCStreamVideoDrawQuad> CCStreamVideoDrawQuad::create(const CCSharedQuadState* sharedQuadState, const gfx::Rect& quadRect, unsigned textureId, const WebKit::WebTransformationMatrix& matrix) { return make_scoped_ptr(new CCStreamVideoDrawQuad(sharedQuadState, quadRect, textureId, matrix)); } -CCStreamVideoDrawQuad::CCStreamVideoDrawQuad(const CCSharedQuadState* sharedQuadState, const IntRect& quadRect, unsigned textureId, const WebKit::WebTransformationMatrix& matrix) +CCStreamVideoDrawQuad::CCStreamVideoDrawQuad(const CCSharedQuadState* sharedQuadState, const gfx::Rect& quadRect, unsigned textureId, const WebKit::WebTransformationMatrix& matrix) : CCDrawQuad(sharedQuadState, CCDrawQuad::StreamVideoContent, quadRect) , m_textureId(textureId) , m_matrix(matrix) diff --git a/cc/stream_video_draw_quad.h b/cc/stream_video_draw_quad.h index 6a1b6c4..68d3d02 100644 --- a/cc/stream_video_draw_quad.h +++ b/cc/stream_video_draw_quad.h @@ -15,14 +15,14 @@ namespace cc { class CCStreamVideoDrawQuad : public CCDrawQuad { public: - static scoped_ptr<CCStreamVideoDrawQuad> create(const CCSharedQuadState*, const IntRect&, unsigned textureId, const WebKit::WebTransformationMatrix&); + static scoped_ptr<CCStreamVideoDrawQuad> create(const CCSharedQuadState*, const gfx::Rect&, unsigned textureId, const WebKit::WebTransformationMatrix&); unsigned textureId() const { return m_textureId; } const WebKit::WebTransformationMatrix& matrix() const { return m_matrix; } static const CCStreamVideoDrawQuad* materialCast(const CCDrawQuad*); private: - CCStreamVideoDrawQuad(const CCSharedQuadState*, const IntRect&, unsigned textureId, const WebKit::WebTransformationMatrix&); + CCStreamVideoDrawQuad(const CCSharedQuadState*, const gfx::Rect&, unsigned textureId, const WebKit::WebTransformationMatrix&); unsigned m_textureId; WebKit::WebTransformationMatrix m_matrix; diff --git a/cc/stubs/float_point.h b/cc/stubs/float_point.h index 4ce2681..c762384 100644 --- a/cc/stubs/float_point.h +++ b/cc/stubs/float_point.h @@ -12,6 +12,7 @@ #else #include "third_party/WebKit/Source/WebCore/platform/graphics/FloatPoint.h" #endif +#include "ui/gfx/point_f.h" namespace cc { @@ -44,6 +45,8 @@ public: { } + + operator gfx::PointF() const { return gfx::PointF(x(), y()); } }; } diff --git a/cc/stubs/float_quad.h b/cc/stubs/float_quad.h index f2f45ed..9e6b1f4 100644 --- a/cc/stubs/float_quad.h +++ b/cc/stubs/float_quad.h @@ -5,6 +5,8 @@ #ifndef CC_STUBS_FLOATQUAD_H_ #define CC_STUBS_FLOATQUAD_H_ +#include "ui/gfx/rect.h" +#include "ui/gfx/rect_f.h" #include "FloatPoint.h" #include "FloatRect.h" #if INSIDE_WEBKIT_BUILD @@ -49,6 +51,16 @@ public: : WebCore::FloatQuad(quad) { } + + FloatQuad(const gfx::Rect& rect) + : WebCore::FloatQuad(WebCore::IntRect(rect.x(), rect.y(), rect.width(), rect.height())) + { + } + + FloatQuad(const gfx::RectF& rect) + : WebCore::FloatQuad(WebCore::FloatRect(rect.x(), rect.y(), rect.width(), rect.height())) + { + } }; } diff --git a/cc/stubs/float_rect.h b/cc/stubs/float_rect.h index 2eb03e2..e4a3709 100644 --- a/cc/stubs/float_rect.h +++ b/cc/stubs/float_rect.h @@ -13,6 +13,11 @@ #else #include "third_party/WebKit/Source/WebCore/platform/graphics/FloatRect.h" #endif +#include "ui/gfx/rect_f.h" + +#if defined(OS_MACOSX) +#include <ApplicationServices/ApplicationServices.h> +#endif namespace cc { @@ -49,6 +54,18 @@ public: :WebCore::FloatRect(rect) { } + + explicit FloatRect(gfx::RectF rect) + : WebCore::FloatRect(rect.x(), rect.y(), rect.width(), rect.height()) + { + } + + operator gfx::RectF() const { return gfx::RectF(x(), y(), width(), height()); } + +private: +#if defined(OS_MACOSX) + operator CGRect() const; +#endif }; } diff --git a/cc/stubs/float_size.h b/cc/stubs/float_size.h index 9db5978..acbd5da 100644 --- a/cc/stubs/float_size.h +++ b/cc/stubs/float_size.h @@ -11,6 +11,7 @@ #else #include "third_party/WebKit/Source/WebCore/platform/graphics/FloatSize.h" #endif +#include "ui/gfx/size_f.h" namespace cc { class FloatSize : public WebCore::FloatSize { @@ -36,6 +37,8 @@ public: : WebCore::FloatSize(size.width(), size.height()) { } + + operator gfx::SizeF() const { return gfx::SizeF(width(), height()); } }; } diff --git a/cc/stubs/int_point.h b/cc/stubs/int_point.h index fa12dea..2e39da6 100644 --- a/cc/stubs/int_point.h +++ b/cc/stubs/int_point.h @@ -11,6 +11,7 @@ #else #include "third_party/WebKit/Source/WebCore/platform/graphics/IntPoint.h" #endif +#include "ui/gfx/point.h" namespace cc { @@ -33,6 +34,8 @@ public: { } + + operator gfx::Point() const { return gfx::Point(x(), y()); } }; } diff --git a/cc/stubs/int_rect.h b/cc/stubs/int_rect.h index 1599967..4114d7b 100644 --- a/cc/stubs/int_rect.h +++ b/cc/stubs/int_rect.h @@ -12,6 +12,11 @@ #else #include "third_party/WebKit/Source/WebCore/platform/graphics/IntRect.h" #endif +#include "ui/gfx/rect.h" + +#if defined(OS_MACOSX) +#include <ApplicationServices/ApplicationServices.h> +#endif namespace cc { @@ -34,6 +39,18 @@ public: { } + + explicit IntRect(gfx::Rect rect) + : WebCore::IntRect(rect.x(), rect.y(), rect.width(), rect.height()) + { + } + + operator gfx::Rect() const { return gfx::Rect(x(), y(), width(), height()); } + +private: +#if defined(OS_MACOSX) + operator CGRect() const; +#endif }; } diff --git a/cc/stubs/int_size.h b/cc/stubs/int_size.h index c53f4f1..8b75f1e 100644 --- a/cc/stubs/int_size.h +++ b/cc/stubs/int_size.h @@ -10,6 +10,7 @@ #else #include "third_party/WebKit/Source/WebCore/platform/graphics/IntSize.h" #endif +#include "ui/gfx/size.h" namespace cc { @@ -27,6 +28,13 @@ public: { } + + explicit IntSize(gfx::Size size) + : WebCore::IntSize(size.width(), size.height()) + { + } + + operator gfx::Size() const { return gfx::Size(width(), height()); } }; } diff --git a/cc/test/geometry_test_utils.h b/cc/test/geometry_test_utils.h index dc0e8ec..9eaf52a 100644 --- a/cc/test/geometry_test_utils.h +++ b/cc/test/geometry_test_utils.h @@ -14,18 +14,18 @@ namespace WebKitTests { // These are macros instead of functions so that we get useful line numbers where a test failed. #define EXPECT_FLOAT_RECT_EQ(expected, actual) \ { \ - EXPECT_FLOAT_EQ((expected).location().x(), (actual).location().x()); \ - EXPECT_FLOAT_EQ((expected).location().y(), (actual).location().y()); \ - EXPECT_FLOAT_EQ((expected).size().width(), (actual).size().width()); \ - EXPECT_FLOAT_EQ((expected).size().height(), (actual).size().height()); \ + EXPECT_FLOAT_EQ((expected).x(), (actual).x()); \ + EXPECT_FLOAT_EQ((expected).y(), (actual).y()); \ + EXPECT_FLOAT_EQ((expected).width(), (actual).width()); \ + EXPECT_FLOAT_EQ((expected).height(), (actual).height()); \ } #define EXPECT_RECT_EQ(expected, actual) \ { \ - EXPECT_EQ((expected).location().x(), (actual).location().x()); \ - EXPECT_EQ((expected).location().y(), (actual).location().y()); \ - EXPECT_EQ((expected).size().width(), (actual).size().width()); \ - EXPECT_EQ((expected).size().height(), (actual).size().height()); \ + EXPECT_EQ((expected).x(), (actual).x()); \ + EXPECT_EQ((expected).y(), (actual).y()); \ + EXPECT_EQ((expected).width(), (actual).width()); \ + EXPECT_EQ((expected).height(), (actual).height()); \ } #define EXPECT_SIZE_EQ(expected, actual) \ diff --git a/cc/test/layer_test_common.cc b/cc/test/layer_test_common.cc index fda251c..f7ef384 100644 --- a/cc/test/layer_test_common.cc +++ b/cc/test/layer_test_common.cc @@ -20,7 +20,7 @@ void verifyQuadsExactlyCoverRect(const cc::CCQuadList& quads, for (size_t i = 0; i < quads.size(); ++i) { cc::CCDrawQuad* quad = quads[i]; - cc::IntRect quadRect = quad->quadRect(); + cc::IntRect quadRect = cc::IntRect(quad->quadRect()); EXPECT_TRUE(rect.contains(quadRect)) << quadString << i; EXPECT_TRUE(remaining.contains(quadRect)) << quadString << i; diff --git a/cc/test/mock_quad_culler.cc b/cc/test/mock_quad_culler.cc index 282dddc..d1ceae7 100644 --- a/cc/test/mock_quad_culler.cc +++ b/cc/test/mock_quad_culler.cc @@ -26,7 +26,7 @@ MockCCQuadCuller::~MockCCQuadCuller() bool MockCCQuadCuller::append(scoped_ptr<CCDrawQuad> drawQuad, CCAppendQuadsData&) { - if (!drawQuad->quadRect().isEmpty()) { + if (!drawQuad->quadRect().IsEmpty()) { m_activeQuadList.append(drawQuad.Pass()); return true; } diff --git a/cc/texture_draw_quad.cc b/cc/texture_draw_quad.cc index 5be8545..adde022 100644 --- a/cc/texture_draw_quad.cc +++ b/cc/texture_draw_quad.cc @@ -10,12 +10,12 @@ namespace cc { -scoped_ptr<CCTextureDrawQuad> CCTextureDrawQuad::create(const CCSharedQuadState* sharedQuadState, const IntRect& quadRect, unsigned resourceId, bool premultipliedAlpha, const FloatRect& uvRect, bool flipped) +scoped_ptr<CCTextureDrawQuad> CCTextureDrawQuad::create(const CCSharedQuadState* sharedQuadState, const gfx::Rect& quadRect, unsigned resourceId, bool premultipliedAlpha, const gfx::RectF& uvRect, bool flipped) { return make_scoped_ptr(new CCTextureDrawQuad(sharedQuadState, quadRect, resourceId, premultipliedAlpha, uvRect, flipped)); } -CCTextureDrawQuad::CCTextureDrawQuad(const CCSharedQuadState* sharedQuadState, const IntRect& quadRect, unsigned resourceId, bool premultipliedAlpha, const FloatRect& uvRect, bool flipped) +CCTextureDrawQuad::CCTextureDrawQuad(const CCSharedQuadState* sharedQuadState, const gfx::Rect& quadRect, unsigned resourceId, bool premultipliedAlpha, const gfx::RectF& uvRect, bool flipped) : CCDrawQuad(sharedQuadState, CCDrawQuad::TextureContent, quadRect) , m_resourceId(resourceId) , m_premultipliedAlpha(premultipliedAlpha) diff --git a/cc/texture_draw_quad.h b/cc/texture_draw_quad.h index daa600f..0c5736e 100644 --- a/cc/texture_draw_quad.h +++ b/cc/texture_draw_quad.h @@ -6,8 +6,8 @@ #define CCTextureDrawQuad_h #include "CCDrawQuad.h" -#include "FloatRect.h" #include "base/memory/scoped_ptr.h" +#include "ui/gfx/rect_f.h" namespace cc { @@ -15,8 +15,8 @@ namespace cc { class CCTextureDrawQuad : public CCDrawQuad { public: - static scoped_ptr<CCTextureDrawQuad> create(const CCSharedQuadState*, const IntRect&, unsigned resourceId, bool premultipliedAlpha, const FloatRect& uvRect, bool flipped); - FloatRect uvRect() const { return m_uvRect; } + static scoped_ptr<CCTextureDrawQuad> create(const CCSharedQuadState*, const gfx::Rect&, unsigned resourceId, bool premultipliedAlpha, const gfx::RectF& uvRect, bool flipped); + gfx::RectF uvRect() const { return m_uvRect; } unsigned resourceId() const { return m_resourceId; } bool premultipliedAlpha() const { return m_premultipliedAlpha; } @@ -26,11 +26,11 @@ public: static const CCTextureDrawQuad* materialCast(const CCDrawQuad*); private: - CCTextureDrawQuad(const CCSharedQuadState*, const IntRect&, unsigned resourceId, bool premultipliedAlpha, const FloatRect& uvRect, bool flipped); + CCTextureDrawQuad(const CCSharedQuadState*, const gfx::Rect&, unsigned resourceId, bool premultipliedAlpha, const gfx::RectF& uvRect, bool flipped); unsigned m_resourceId; bool m_premultipliedAlpha; - FloatRect m_uvRect; + gfx::RectF m_uvRect; bool m_flipped; }; diff --git a/cc/tile_draw_quad.cc b/cc/tile_draw_quad.cc index e50861e..1c61348 100644 --- a/cc/tile_draw_quad.cc +++ b/cc/tile_draw_quad.cc @@ -11,12 +11,12 @@ namespace cc { -scoped_ptr<CCTileDrawQuad> CCTileDrawQuad::create(const CCSharedQuadState* sharedQuadState, const IntRect& quadRect, const IntRect& opaqueRect, unsigned resourceId, const IntPoint& textureOffset, const IntSize& textureSize, GLint textureFilter, bool swizzleContents, bool leftEdgeAA, bool topEdgeAA, bool rightEdgeAA, bool bottomEdgeAA) +scoped_ptr<CCTileDrawQuad> CCTileDrawQuad::create(const CCSharedQuadState* sharedQuadState, const gfx::Rect& quadRect, const gfx::Rect& opaqueRect, unsigned resourceId, const gfx::Point& textureOffset, const gfx::Size& textureSize, GLint textureFilter, bool swizzleContents, bool leftEdgeAA, bool topEdgeAA, bool rightEdgeAA, bool bottomEdgeAA) { return make_scoped_ptr(new CCTileDrawQuad(sharedQuadState, quadRect, opaqueRect, resourceId, textureOffset, textureSize, textureFilter, swizzleContents, leftEdgeAA, topEdgeAA, rightEdgeAA, bottomEdgeAA)); } -CCTileDrawQuad::CCTileDrawQuad(const CCSharedQuadState* sharedQuadState, const IntRect& quadRect, const IntRect& opaqueRect, unsigned resourceId, const IntPoint& textureOffset, const IntSize& textureSize, GLint textureFilter, bool swizzleContents, bool leftEdgeAA, bool topEdgeAA, bool rightEdgeAA, bool bottomEdgeAA) +CCTileDrawQuad::CCTileDrawQuad(const CCSharedQuadState* sharedQuadState, const gfx::Rect& quadRect, const gfx::Rect& opaqueRect, unsigned resourceId, const gfx::Point& textureOffset, const gfx::Size& textureSize, GLint textureFilter, bool swizzleContents, bool leftEdgeAA, bool topEdgeAA, bool rightEdgeAA, bool bottomEdgeAA) : CCDrawQuad(sharedQuadState, CCDrawQuad::TiledContent, quadRect) , m_resourceId(resourceId) , m_textureOffset(textureOffset) diff --git a/cc/tile_draw_quad.h b/cc/tile_draw_quad.h index 4802d82..08d075f 100644 --- a/cc/tile_draw_quad.h +++ b/cc/tile_draw_quad.h @@ -7,9 +7,9 @@ #include "CCDrawQuad.h" #include "third_party/khronos/GLES2/gl2.h" -#include "IntPoint.h" -#include "IntSize.h" #include "base/memory/scoped_ptr.h" +#include "ui/gfx/point.h" +#include "ui/gfx/size.h" namespace cc { @@ -17,11 +17,11 @@ namespace cc { class CCTileDrawQuad : public CCDrawQuad { public: - static scoped_ptr<CCTileDrawQuad> create(const CCSharedQuadState*, const IntRect& quadRect, const IntRect& opaqueRect, unsigned resourceId, const IntPoint& textureOffset, const IntSize& textureSize, GLint textureFilter, bool swizzleContents, bool leftEdgeAA, bool topEdgeAA, bool rightEdgeAA, bool bottomEdgeAA); + static scoped_ptr<CCTileDrawQuad> create(const CCSharedQuadState*, const gfx::Rect& quadRect, const gfx::Rect& opaqueRect, unsigned resourceId, const gfx::Point& textureOffset, const gfx::Size& textureSize, GLint textureFilter, bool swizzleContents, bool leftEdgeAA, bool topEdgeAA, bool rightEdgeAA, bool bottomEdgeAA); unsigned resourceId() const { return m_resourceId; } - IntPoint textureOffset() const { return m_textureOffset; } - IntSize textureSize() const { return m_textureSize; } + gfx::Point textureOffset() const { return m_textureOffset; } + gfx::Size textureSize() const { return m_textureSize; } GLint textureFilter() const { return m_textureFilter; } bool swizzleContents() const { return m_swizzleContents; } @@ -34,11 +34,11 @@ public: static const CCTileDrawQuad* materialCast(const CCDrawQuad*); private: - CCTileDrawQuad(const CCSharedQuadState*, const IntRect& quadRect, const IntRect& opaqueRect, unsigned resourceId, const IntPoint& textureOffset, const IntSize& textureSize, GLint textureFilter, bool swizzleContents, bool leftEdgeAA, bool topEdgeAA, bool rightEdgeAA, bool bottomEdgeAA); + CCTileDrawQuad(const CCSharedQuadState*, const gfx::Rect& quadRect, const gfx::Rect& opaqueRect, unsigned resourceId, const gfx::Point& textureOffset, const gfx::Size& textureSize, GLint textureFilter, bool swizzleContents, bool leftEdgeAA, bool topEdgeAA, bool rightEdgeAA, bool bottomEdgeAA); unsigned m_resourceId; - IntPoint m_textureOffset; - IntSize m_textureSize; + gfx::Point m_textureOffset; + gfx::Size m_textureSize; GLint m_textureFilter; bool m_swizzleContents; bool m_leftEdgeAA; diff --git a/cc/tiled_layer_impl_unittest.cc b/cc/tiled_layer_impl_unittest.cc index 9c131f5..0bfceb0 100644 --- a/cc/tiled_layer_impl_unittest.cc +++ b/cc/tiled_layer_impl_unittest.cc @@ -219,7 +219,7 @@ TEST(CCTiledLayerImplTest, textureInfoForLayerNoBorders) EXPECT_NE(quad->resourceId(), 0u) << quadString << i; EXPECT_EQ(quad->textureOffset(), IntPoint()) << quadString << i; EXPECT_EQ(quad->textureSize(), tileSize) << quadString << i; - EXPECT_EQ(IntRect(0, 0, 1, 1), quad->opaqueRect()) << quadString << i; + EXPECT_EQ(gfx::Rect(0, 0, 1, 1), quad->opaqueRect()) << quadString << i; } } @@ -237,7 +237,7 @@ TEST(CCTiledLayerImplTest, tileOpaqueRectForLayerNoBorders) ASSERT_EQ(quads[i]->material(), CCDrawQuad::TiledContent) << quadString << i; CCTileDrawQuad* quad = static_cast<CCTileDrawQuad*>(quads[i]); - EXPECT_EQ(IntRect(0, 0, 1, 1), quad->opaqueRect()) << quadString << i; + EXPECT_EQ(gfx::Rect(0, 0, 1, 1), quad->opaqueRect()) << quadString << i; } } diff --git a/cc/yuv_video_draw_quad.cc b/cc/yuv_video_draw_quad.cc index eec671b..586e7fc 100644 --- a/cc/yuv_video_draw_quad.cc +++ b/cc/yuv_video_draw_quad.cc @@ -10,12 +10,12 @@ namespace cc { -scoped_ptr<CCYUVVideoDrawQuad> CCYUVVideoDrawQuad::create(const CCSharedQuadState* sharedQuadState, const IntRect& quadRect, const CCVideoLayerImpl::FramePlane& yPlane, const CCVideoLayerImpl::FramePlane& uPlane, const CCVideoLayerImpl::FramePlane& vPlane) +scoped_ptr<CCYUVVideoDrawQuad> CCYUVVideoDrawQuad::create(const CCSharedQuadState* sharedQuadState, const gfx::Rect& quadRect, const CCVideoLayerImpl::FramePlane& yPlane, const CCVideoLayerImpl::FramePlane& uPlane, const CCVideoLayerImpl::FramePlane& vPlane) { return make_scoped_ptr(new CCYUVVideoDrawQuad(sharedQuadState, quadRect, yPlane, uPlane, vPlane)); } -CCYUVVideoDrawQuad::CCYUVVideoDrawQuad(const CCSharedQuadState* sharedQuadState, const IntRect& quadRect, const CCVideoLayerImpl::FramePlane& yPlane, const CCVideoLayerImpl::FramePlane& uPlane, const CCVideoLayerImpl::FramePlane& vPlane) +CCYUVVideoDrawQuad::CCYUVVideoDrawQuad(const CCSharedQuadState* sharedQuadState, const gfx::Rect& quadRect, const CCVideoLayerImpl::FramePlane& yPlane, const CCVideoLayerImpl::FramePlane& uPlane, const CCVideoLayerImpl::FramePlane& vPlane) : CCDrawQuad(sharedQuadState, CCDrawQuad::YUVVideoContent, quadRect) , m_yPlane(yPlane) , m_uPlane(uPlane) diff --git a/cc/yuv_video_draw_quad.h b/cc/yuv_video_draw_quad.h index 5d574b7b..3b3fa5d 100644 --- a/cc/yuv_video_draw_quad.h +++ b/cc/yuv_video_draw_quad.h @@ -14,7 +14,7 @@ namespace cc { class CCYUVVideoDrawQuad : public CCDrawQuad { public: - static scoped_ptr<CCYUVVideoDrawQuad> create(const CCSharedQuadState*, const IntRect&, const CCVideoLayerImpl::FramePlane& yPlane, const CCVideoLayerImpl::FramePlane& uPlane, const CCVideoLayerImpl::FramePlane& vPlane); + static scoped_ptr<CCYUVVideoDrawQuad> create(const CCSharedQuadState*, const gfx::Rect&, const CCVideoLayerImpl::FramePlane& yPlane, const CCVideoLayerImpl::FramePlane& uPlane, const CCVideoLayerImpl::FramePlane& vPlane); const CCVideoLayerImpl::FramePlane& yPlane() const { return m_yPlane; } const CCVideoLayerImpl::FramePlane& uPlane() const { return m_uPlane; } @@ -22,7 +22,7 @@ public: static const CCYUVVideoDrawQuad* materialCast(const CCDrawQuad*); private: - CCYUVVideoDrawQuad(const CCSharedQuadState*, const IntRect&, const CCVideoLayerImpl::FramePlane& yPlane, const CCVideoLayerImpl::FramePlane& uPlane, const CCVideoLayerImpl::FramePlane& vPlane); + CCYUVVideoDrawQuad(const CCSharedQuadState*, const gfx::Rect&, const CCVideoLayerImpl::FramePlane& yPlane, const CCVideoLayerImpl::FramePlane& uPlane, const CCVideoLayerImpl::FramePlane& vPlane); CCVideoLayerImpl::FramePlane m_yPlane; CCVideoLayerImpl::FramePlane m_uPlane; |