Title: [112026] trunk/Source
- Revision
- 112026
- Author
- [email protected]
- Date
- 2012-03-25 05:16:02 -0700 (Sun, 25 Mar 2012)
Log Message
[BlackBerry] Accelerated compositing layers fail to render when using WebPageCompositor
https://bugs.webkit.org/show_bug.cgi?id=82104
RIM PR: 145963
Patch by Arvid Nilsson <[email protected]> on 2012-03-25
Reviewed by Rob Buis.
Source/WebCore:
The embedder may use vertex buffers, which affected the interpretation
our vertex array pointers from memory pointers to offsets into a vertex
buffer. The resulting geometry often resulted in no visible layers on
screen.
Fixed by getting rid of any bound buffer when we enter
LayerRenderer::drawLayers().
* platform/graphics/blackberry/LayerRenderer.cpp:
(WebCore::LayerRenderer::drawLayers):
Source/WebKit/blackberry:
The root layer may be set before we have a layer renderer, because the
latter is not created until we get an OpenGL context from the embedder.
Fixed by setting the root layer on the layer renderer when it's created
instead of assuming a certain order of events.
* Api/WebPageCompositor.cpp:
(BlackBerry::WebKit::WebPageCompositorPrivate::setContext):
(BlackBerry::WebKit::WebPageCompositorPrivate::setRootLayer):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (112025 => 112026)
--- trunk/Source/WebCore/ChangeLog 2012-03-25 10:41:21 UTC (rev 112025)
+++ trunk/Source/WebCore/ChangeLog 2012-03-25 12:16:02 UTC (rev 112026)
@@ -1,3 +1,22 @@
+2012-03-25 Arvid Nilsson <[email protected]>
+
+ [BlackBerry] Accelerated compositing layers fail to render when using WebPageCompositor
+ https://bugs.webkit.org/show_bug.cgi?id=82104
+ RIM PR: 145963
+
+ Reviewed by Rob Buis.
+
+ The embedder may use vertex buffers, which affected the interpretation
+ our vertex array pointers from memory pointers to offsets into a vertex
+ buffer. The resulting geometry often resulted in no visible layers on
+ screen.
+
+ Fixed by getting rid of any bound buffer when we enter
+ LayerRenderer::drawLayers().
+
+ * platform/graphics/blackberry/LayerRenderer.cpp:
+ (WebCore::LayerRenderer::drawLayers):
+
2012-03-24 Nat Duca <[email protected]>
[chromium] Instrument gesture animations with async traces
Modified: trunk/Source/WebCore/platform/graphics/blackberry/LayerRenderer.cpp (112025 => 112026)
--- trunk/Source/WebCore/platform/graphics/blackberry/LayerRenderer.cpp 2012-03-25 10:41:21 UTC (rev 112025)
+++ trunk/Source/WebCore/platform/graphics/blackberry/LayerRenderer.cpp 2012-03-25 12:16:02 UTC (rev 112026)
@@ -270,6 +270,11 @@
// Okay, we're going to do some drawing.
makeContextCurrent();
+ // Get rid of any bound buffer that might affect the interpretation of our
+ // glVertexAttribPointer calls.
+ glBindBuffer(GL_ARRAY_BUFFER, 0);
+ glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
+
glEnableVertexAttribArray(m_positionLocation);
glEnableVertexAttribArray(m_texCoordLocation);
glActiveTexture(GL_TEXTURE0);
Modified: trunk/Source/WebKit/blackberry/Api/WebPageCompositor.cpp (112025 => 112026)
--- trunk/Source/WebKit/blackberry/Api/WebPageCompositor.cpp 2012-03-25 10:41:21 UTC (rev 112025)
+++ trunk/Source/WebKit/blackberry/Api/WebPageCompositor.cpp 2012-03-25 12:16:02 UTC (rev 112026)
@@ -68,6 +68,7 @@
}
m_layerRenderer = LayerRenderer::create(m_context);
+ m_layerRenderer->setRootLayer(m_rootLayer.get());
}
bool WebPageCompositorPrivate::hardwareCompositing() const
@@ -79,7 +80,6 @@
{
m_rootLayer = rootLayer;
- ASSERT(m_layerRenderer);
if (m_layerRenderer)
m_layerRenderer->setRootLayer(m_rootLayer.get());
}
Modified: trunk/Source/WebKit/blackberry/ChangeLog (112025 => 112026)
--- trunk/Source/WebKit/blackberry/ChangeLog 2012-03-25 10:41:21 UTC (rev 112025)
+++ trunk/Source/WebKit/blackberry/ChangeLog 2012-03-25 12:16:02 UTC (rev 112026)
@@ -1,3 +1,21 @@
+2012-03-25 Arvid Nilsson <[email protected]>
+
+ [BlackBerry] Accelerated compositing layers fail to render when using WebPageCompositor
+ https://bugs.webkit.org/show_bug.cgi?id=82104
+ RIM PR: 145963
+
+ Reviewed by Rob Buis.
+
+ The root layer may be set before we have a layer renderer, because the
+ latter is not created until we get an OpenGL context from the embedder.
+
+ Fixed by setting the root layer on the layer renderer when it's created
+ instead of assuming a certain order of events.
+
+ * Api/WebPageCompositor.cpp:
+ (BlackBerry::WebKit::WebPageCompositorPrivate::setContext):
+ (BlackBerry::WebKit::WebPageCompositorPrivate::setRootLayer):
+
2012-03-23 Arvid Nilsson <[email protected]>
[BlackBerry] Add WebPageCompositor class to BlackBerry WebKit API
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes