Index: Source/WebCore/platform/graphics/chromium/Canvas2DLayerChromium.cpp |
=================================================================== |
--- Source/WebCore/platform/graphics/chromium/Canvas2DLayerChromium.cpp (revision 93254) |
+++ Source/WebCore/platform/graphics/chromium/Canvas2DLayerChromium.cpp (working copy) |
@@ -54,8 +54,6 @@ |
Canvas2DLayerChromium::~Canvas2DLayerChromium() |
{ |
- if (m_textureId) |
- layerRendererContext()->deleteTexture(m_textureId); |
if (m_drawingBuffer && layerRenderer()) |
layerRenderer()->removeChildContext(m_drawingBuffer->graphicsContext3D().get()); |
} |
@@ -72,27 +70,6 @@ |
{ |
if (!m_contentsDirty || !drawsContent()) |
return; |
- if (m_textureChanged) { // We have to generate a new backing texture. |
- GraphicsContext3D* context = layerRendererContext(); |
- if (m_textureId) |
- context->deleteTexture(m_textureId); |
- m_textureId = context->createTexture(); |
- context->activeTexture(GraphicsContext3D::TEXTURE0); |
- context->bindTexture(GraphicsContext3D::TEXTURE_2D, m_textureId); |
- IntSize size = m_drawingBuffer->size(); |
- context->texImage2DResourceSafe(GraphicsContext3D::TEXTURE_2D, 0, GraphicsContext3D::RGBA, size.width(), size.height(), 0, GraphicsContext3D::RGBA, GraphicsContext3D::UNSIGNED_BYTE); |
- // Set the min-mag filters to linear and wrap modes to GraphicsContext3D::CLAMP_TO_EDGE |
- // to get around NPOT texture limitations of GLES. |
- context->texParameteri(GraphicsContext3D::TEXTURE_2D, GraphicsContext3D::TEXTURE_MIN_FILTER, GraphicsContext3D::LINEAR); |
- context->texParameteri(GraphicsContext3D::TEXTURE_2D, GraphicsContext3D::TEXTURE_MAG_FILTER, GraphicsContext3D::LINEAR); |
- context->texParameteri(GraphicsContext3D::TEXTURE_2D, GraphicsContext3D::TEXTURE_WRAP_S, GraphicsContext3D::CLAMP_TO_EDGE); |
- context->texParameteri(GraphicsContext3D::TEXTURE_2D, GraphicsContext3D::TEXTURE_WRAP_T, GraphicsContext3D::CLAMP_TO_EDGE); |
- m_textureChanged = false; |
- // The flush() here is required because we have to make sure that the texture created in this |
- // context (the compositor context) is actually created by the service side before the child context |
- // attempts to use it (in publishToPlatformLayer). |
- context->flush(); |
- } |
// Update the contents of the texture used by the compositor. |
if (m_contentsDirty) { |
m_drawingBuffer->publishToPlatformLayer(); |
@@ -100,14 +77,9 @@ |
} |
} |
-void Canvas2DLayerChromium::setTextureChanged() |
-{ |
- m_textureChanged = true; |
-} |
- |
unsigned Canvas2DLayerChromium::textureId() const |
{ |
- return m_textureId; |
+ return m_drawingBuffer ? m_drawingBuffer->platformColorBuffer() : 0; |
} |
void Canvas2DLayerChromium::setDrawingBuffer(DrawingBuffer* drawingBuffer) |
@@ -117,7 +89,6 @@ |
layerRenderer()->removeChildContext(m_drawingBuffer->graphicsContext3D().get()); |
m_drawingBuffer = drawingBuffer; |
- m_textureChanged = true; |
if (drawingBuffer && layerRenderer()) |
layerRenderer()->addChildContext(m_drawingBuffer->graphicsContext3D().get()); |