Changeset 110635 in webkit
- Timestamp:
- Mar 13, 2012, 4:28:38 PM (15 years ago)
- Location:
- trunk/Source
- Files:
-
- 6 edited
-
WebCore/ChangeLog (modified) (1 diff)
-
WebCore/platform/graphics/chromium/cc/CCRenderPass.cpp (modified) (1 diff)
-
WebCore/platform/graphics/chromium/cc/CCRenderSurface.cpp (modified) (2 diffs)
-
WebCore/platform/graphics/chromium/cc/CCRenderSurface.h (modified) (2 diffs)
-
WebKit/chromium/ChangeLog (modified) (1 diff)
-
WebKit/chromium/tests/CCRenderSurfaceTest.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r110632 r110635 1 2012-03-13 Shawn Singh <shawnsingh@chromium.org> 2 3 [chromium] wrong transform causing incorrect culling 4 https://bugs.webkit.org/show_bug.cgi?id=80471 5 6 Reviewed by James Robinson. 7 8 Unit test added to CCRenderSurfaceTest.cpp 9 10 In addition to using originTransform() instead of drawTransform(), 11 this patch shuffles a bit of code so that a unit test can be 12 easily added. 13 14 * platform/graphics/chromium/cc/CCRenderPass.cpp: 15 (WebCore::CCRenderPass::appendQuadsForRenderSurfaceLayer): 16 * platform/graphics/chromium/cc/CCRenderSurface.cpp: 17 (WebCore::CCRenderSurface::createSharedQuadState): 18 (WebCore): 19 * platform/graphics/chromium/cc/CCRenderSurface.h: 20 (CCRenderSurface): 21 1 22 2012-03-13 Dave Tharp <dtharp@codeaurora.org> 2 23 -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCRenderPass.cpp
r110596 r110635 62 62 // not be handled specially here. 63 63 CCRenderSurface* surface = layer->renderSurface(); 64 bool isOpaque = false; 65 OwnPtr<CCSharedQuadState> sharedQuadState = CCSharedQuadState::create(surface->drawTransform(), surface->drawTransform(), surface->contentRect(), surface->clipRect(), surface->drawOpacity(), isOpaque); 64 OwnPtr<CCSharedQuadState> sharedQuadState = surface->createSharedQuadState(); 66 65 m_quadList.append(CCRenderSurfaceDrawQuad::create(sharedQuadState.get(), surface->contentRect(), layer, surfaceDamageRect())); 67 66 m_sharedQuadStateList.append(sharedQuadState.release()); -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCRenderSurface.cpp
r110483 r110635 42 42 #include "cc/CCProxy.h" 43 43 #include "cc/CCRenderSurfaceFilters.h" 44 #include "cc/CCSharedQuadState.h" 44 45 #include <wtf/text/CString.h> 45 46 … … 302 303 } 303 304 305 PassOwnPtr<CCSharedQuadState> CCRenderSurface::createSharedQuadState() const 306 { 307 bool isOpaque = false; 308 return CCSharedQuadState::create(originTransform(), drawTransform(), contentRect(), clipRect(), drawOpacity(), isOpaque); 309 } 310 304 311 } 305 312 #endif // USE(ACCELERATED_COMPOSITING) -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCRenderSurface.h
r109781 r110635 44 44 45 45 class CCDamageTracker; 46 class CCSharedQuadState; 46 47 class CCLayerImpl; 47 48 class LayerRendererChromium; … … 115 116 CCDamageTracker* damageTracker() const { return m_damageTracker.get(); } 116 117 118 PassOwnPtr<CCSharedQuadState> createSharedQuadState() const; 119 117 120 private: 118 121 void drawLayer(LayerRendererChromium*, CCLayerImpl*, const TransformationMatrix&, const SkBitmap& filterBitmap); -
trunk/Source/WebKit/chromium/ChangeLog
r110627 r110635 1 2012-03-13 Shawn Singh <shawnsingh@chromium.org> 2 3 [chromium] wrong transform causing incorrect culling 4 https://bugs.webkit.org/show_bug.cgi?id=80471 5 6 Reviewed by James Robinson. 7 8 * tests/CCRenderSurfaceTest.cpp: 9 (WebCore::TEST): 10 (WebCore): 11 1 12 2012-03-13 Nat Duca <nduca@chromium.org> 2 13 -
trunk/Source/WebKit/chromium/tests/CCRenderSurfaceTest.cpp
r108886 r110635 27 27 #include "cc/CCRenderSurface.h" 28 28 29 #include "TransformationMatrix.h" 29 30 #include "cc/CCLayerImpl.h" 31 #include "cc/CCSharedQuadState.h" 30 32 #include "cc/CCSingleThreadProxy.h" 31 33 #include <gmock/gmock.h> … … 90 92 } 91 93 94 TEST(CCRenderSurfaceTest, sanityCheckSurfaceCreatesCorrectSharedQuadState) 95 { 96 // This will fake that we are on the correct thread for testing purposes. 97 DebugScopedSetImplThread setImplThread; 98 99 OwnPtr<CCLayerImpl> owningLayer = CCLayerImpl::create(0); 100 owningLayer->createRenderSurface(); 101 ASSERT_TRUE(owningLayer->renderSurface()); 102 CCRenderSurface* renderSurface = owningLayer->renderSurface(); 103 104 IntRect contentRect = IntRect(IntPoint::zero(), IntSize(50, 50)); 105 IntRect clipRect = IntRect(IntPoint(5, 5), IntSize(40, 40)); 106 TransformationMatrix draw; 107 TransformationMatrix origin; 108 109 draw.translate(30, 40); 110 111 renderSurface->setDrawTransform(draw); 112 renderSurface->setOriginTransform(origin); 113 renderSurface->setContentRect(contentRect); 114 renderSurface->setClipRect(clipRect); 115 renderSurface->setDrawOpacity(1); 116 117 OwnPtr<CCSharedQuadState> sharedQuadState = renderSurface->createSharedQuadState(); 118 119 EXPECT_TRUE(sharedQuadState->quadTransform().isIdentity()); 120 EXPECT_EQ(30, sharedQuadState->layerTransform().m41()); 121 EXPECT_EQ(40, sharedQuadState->layerTransform().m42()); 122 EXPECT_EQ(contentRect, sharedQuadState->layerRect()); 123 EXPECT_EQ(clipRect, sharedQuadState->clipRect()); 124 EXPECT_EQ(1, sharedQuadState->opacity()); 125 EXPECT_FALSE(sharedQuadState->isOpaque()); 126 } 127 92 128 } // namespace
Note:
See TracChangeset
for help on using the changeset viewer.