| Index: Source/core/html/canvas/WebGLRenderingContext.cpp
|
| diff --git a/Source/core/html/canvas/WebGLRenderingContext.cpp b/Source/core/html/canvas/WebGLRenderingContext.cpp
|
| index 25d1a547343d0422b4992852fb71b84794ee5cfe..b8b92201a3911263dd34b94318fad84d606511ec 100644
|
| --- a/Source/core/html/canvas/WebGLRenderingContext.cpp
|
| +++ b/Source/core/html/canvas/WebGLRenderingContext.cpp
|
| @@ -74,6 +74,7 @@
|
| #include "platform/NotImplemented.h"
|
| #include "platform/geometry/IntSize.h"
|
| #include "platform/graphics/Extensions3D.h"
|
| +#include "platform/graphics/UnacceleratedImageBufferSurface.h"
|
| #include "platform/graphics/gpu/DrawingBuffer.h"
|
|
|
| #include "wtf/PassOwnPtr.h"
|
| @@ -3362,10 +3363,9 @@ bool WebGLRenderingContext::validateTexFunc(const char* functionName, TexFuncVal
|
| return true;
|
| }
|
|
|
| -PassRefPtr<Image> WebGLRenderingContext::drawImageIntoBuffer(Image* image, int width, int height, int deviceScaleFactor)
|
| +PassRefPtr<Image> WebGLRenderingContext::drawImageIntoBuffer(Image* image, int width, int height)
|
| {
|
| IntSize size(width, height);
|
| - size.scale(deviceScaleFactor);
|
| ImageBuffer* buf = m_generatedImageCache.imageBuffer(size);
|
| if (!buf) {
|
| synthesizeGLError(GraphicsContext3D::OUT_OF_MEMORY, "texImage2D", "out of memory");
|
| @@ -3437,7 +3437,7 @@ void WebGLRenderingContext::texImage2D(GC3Denum target, GC3Dint level, GC3Denum
|
|
|
| RefPtr<Image> imageForRender = image->cachedImage()->imageForRenderer(image->renderer());
|
| if (imageForRender->isSVGImage())
|
| - imageForRender = drawImageIntoBuffer(imageForRender.get(), image->width(), image->height(), canvas()->deviceScaleFactor());
|
| + imageForRender = drawImageIntoBuffer(imageForRender.get(), image->width(), image->height());
|
|
|
| if (!imageForRender || !validateTexFunc("texImage2D", NotTexSubImage2D, SourceHTMLImageElement, target, level, internalformat, imageForRender->width(), imageForRender->height(), 0, format, type, 0, 0))
|
| return;
|
| @@ -3676,7 +3676,7 @@ void WebGLRenderingContext::texSubImage2D(GC3Denum target, GC3Dint level, GC3Din
|
|
|
| RefPtr<Image> imageForRender = image->cachedImage()->imageForRenderer(image->renderer());
|
| if (imageForRender->isSVGImage())
|
| - imageForRender = drawImageIntoBuffer(imageForRender.get(), image->width(), image->height(), canvas()->deviceScaleFactor());
|
| + imageForRender = drawImageIntoBuffer(imageForRender.get(), image->width(), image->height());
|
|
|
| if (!imageForRender || !validateTexFunc("texSubImage2D", TexSubImage2D, SourceHTMLImageElement, target, level, format, imageForRender->width(), imageForRender->height(), 0, format, type, xoffset, yoffset))
|
| return;
|
| @@ -5452,13 +5452,13 @@ ImageBuffer* WebGLRenderingContext::LRUImageBufferCache::imageBuffer(const IntSi
|
| ImageBuffer* buf = m_buffers[i].get();
|
| if (!buf)
|
| break;
|
| - if (buf->logicalSize() != size)
|
| + if (buf->size() != size)
|
| continue;
|
| bubbleToFront(i);
|
| return buf;
|
| }
|
|
|
| - OwnPtr<ImageBuffer> temp = ImageBuffer::create(size, 1);
|
| + OwnPtr<ImageBuffer> temp(ImageBuffer::create(size));
|
| if (!temp)
|
| return 0;
|
| i = std::min(m_capacity - 1, i);
|
|
|