Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(17)

Unified Diff: Source/core/html/canvas/WebGLRenderingContext.cpp

Issue 104023007: Refactoring ImageBuffer to decouple it from Canvas2DLayerBridge (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: rebase mayhem Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/html/canvas/WebGLRenderingContext.h ('k') | Source/core/platform/DragImage.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
« no previous file with comments | « Source/core/html/canvas/WebGLRenderingContext.h ('k') | Source/core/platform/DragImage.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698