Index: cc/LayerTextureSubImage.cpp |
diff --git a/cc/LayerTextureSubImage.cpp b/cc/LayerTextureSubImage.cpp |
deleted file mode 100644 |
index 60f5311a1fba02c4f17656dbcf751a17090b4b34..0000000000000000000000000000000000000000 |
--- a/cc/LayerTextureSubImage.cpp |
+++ /dev/null |
@@ -1,117 +0,0 @@ |
-// Copyright 2011 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "config.h" |
- |
-#if USE(ACCELERATED_COMPOSITING) |
- |
-#include "LayerTextureSubImage.h" |
- |
-#include "CCRendererGL.h" // For the GLC() macro. |
-#include "GraphicsContext3D.h" |
-#include "Extensions3DChromium.h" |
-#include "TraceEvent.h" |
-#include <public/WebGraphicsContext3D.h> |
- |
-using WebKit::WebGraphicsContext3D; |
- |
-namespace cc { |
- |
-LayerTextureSubImage::LayerTextureSubImage(bool useMapTexSubImage) |
- : m_useMapTexSubImage(useMapTexSubImage) |
- , m_subImageSize(0) |
-{ |
-} |
- |
-LayerTextureSubImage::~LayerTextureSubImage() |
-{ |
-} |
- |
-void LayerTextureSubImage::upload(const uint8_t* image, const IntRect& imageRect, |
- const IntRect& sourceRect, const IntSize& destOffset, |
- GC3Denum format, WebGraphicsContext3D* context) |
-{ |
- if (m_useMapTexSubImage) |
- uploadWithMapTexSubImage(image, imageRect, sourceRect, destOffset, format, context); |
- else |
- uploadWithTexSubImage(image, imageRect, sourceRect, destOffset, format, context); |
-} |
- |
-void LayerTextureSubImage::uploadWithTexSubImage(const uint8_t* image, const IntRect& imageRect, |
- const IntRect& sourceRect, const IntSize& destOffset, |
- GC3Denum format, WebGraphicsContext3D* context) |
-{ |
- TRACE_EVENT0("cc", "LayerTextureSubImage::uploadWithTexSubImage"); |
- |
- // Offset from image-rect to source-rect. |
- IntPoint offset(sourceRect.x() - imageRect.x(), sourceRect.y() - imageRect.y()); |
- |
- const uint8_t* pixelSource; |
- if (imageRect.width() == sourceRect.width() && !offset.x()) |
- pixelSource = &image[4 * offset.y() * imageRect.width()]; |
- else { |
- size_t neededSize = 4 * sourceRect.width() * sourceRect.height(); |
- if (m_subImageSize < neededSize) { |
- m_subImage = adoptArrayPtr(new uint8_t[neededSize]); |
- m_subImageSize = neededSize; |
- } |
- // Strides not equal, so do a row-by-row memcpy from the |
- // paint results into a temp buffer for uploading. |
- for (int row = 0; row < sourceRect.height(); ++row) |
- memcpy(&m_subImage[sourceRect.width() * 4 * row], |
- &image[4 * (offset.x() + (offset.y() + row) * imageRect.width())], |
- sourceRect.width() * 4); |
- |
- pixelSource = &m_subImage[0]; |
- } |
- |
- GLC(context, context->texSubImage2D(GraphicsContext3D::TEXTURE_2D, 0, destOffset.width(), destOffset.height(), sourceRect.width(), sourceRect.height(), format, GraphicsContext3D::UNSIGNED_BYTE, pixelSource)); |
-} |
- |
-void LayerTextureSubImage::uploadWithMapTexSubImage(const uint8_t* image, const IntRect& imageRect, |
- const IntRect& sourceRect, const IntSize& destOffset, |
- GC3Denum format, WebGraphicsContext3D* context) |
-{ |
- TRACE_EVENT0("cc", "LayerTextureSubImage::uploadWithMapTexSubImage"); |
- // Offset from image-rect to source-rect. |
- IntPoint offset(sourceRect.x() - imageRect.x(), sourceRect.y() - imageRect.y()); |
- |
- // Upload tile data via a mapped transfer buffer |
- uint8_t* pixelDest = static_cast<uint8_t*>(context->mapTexSubImage2DCHROMIUM(GraphicsContext3D::TEXTURE_2D, 0, destOffset.width(), destOffset.height(), sourceRect.width(), sourceRect.height(), format, GraphicsContext3D::UNSIGNED_BYTE, Extensions3DChromium::WRITE_ONLY)); |
- |
- if (!pixelDest) { |
- uploadWithTexSubImage(image, imageRect, sourceRect, destOffset, format, context); |
- return; |
- } |
- |
- unsigned int componentsPerPixel = 0; |
- switch (format) { |
- case GraphicsContext3D::RGBA: |
- case Extensions3D::BGRA_EXT: |
- componentsPerPixel = 4; |
- break; |
- case GraphicsContext3D::LUMINANCE: |
- componentsPerPixel = 1; |
- break; |
- default: |
- ASSERT_NOT_REACHED(); |
- } |
- unsigned int bytesPerComponent = 1; |
- |
- if (imageRect.width() == sourceRect.width() && !offset.x()) |
- memcpy(pixelDest, &image[offset.y() * imageRect.width() * componentsPerPixel * bytesPerComponent], imageRect.width() * sourceRect.height() * componentsPerPixel * bytesPerComponent); |
- else { |
- // Strides not equal, so do a row-by-row memcpy from the |
- // paint results into the pixelDest |
- for (int row = 0; row < sourceRect.height(); ++row) |
- memcpy(&pixelDest[sourceRect.width() * row * componentsPerPixel * bytesPerComponent], |
- &image[4 * (offset.x() + (offset.y() + row) * imageRect.width())], |
- sourceRect.width() * componentsPerPixel * bytesPerComponent); |
- } |
- GLC(context, context->unmapTexSubImage2DCHROMIUM(pixelDest)); |
-} |
- |
-} // namespace cc |
- |
-#endif // USE(ACCELERATED_COMPOSITING) |