OSDN Git Service

The CPU code path for uploading the textures
authorTeng-Hui Zhu <ztenghui@google.com>
Fri, 2 Sep 2011 17:54:20 +0000 (10:54 -0700)
committerTeng-Hui Zhu <ztenghui@google.com>
Wed, 7 Sep 2011 00:05:42 +0000 (17:05 -0700)
This is just for debugging anything related to the driver/HW.

Change-Id: I26757f8259ec6b6c2406f78bf7aa9c5f527e31e7

Source/WebCore/platform/graphics/android/BaseTileTexture.h
Source/WebCore/platform/graphics/android/TransferQueue.cpp

index bc66195..3efc2bf 100644 (file)
@@ -34,6 +34,8 @@
 
 class SkCanvas;
 
+#define DEBUG_TRANSFER_USING_CPU_UPLOAD 0
+
 namespace WebCore {
 
 class BaseTile;
@@ -86,6 +88,9 @@ public:
     TransferItemStatus status;
     BaseTile* savedBaseTilePtr;
     TextureTileInfo tileInfo;
+#if DEBUG_TRANSFER_USING_CPU_UPLOAD
+    SkBitmap bitmap;
+#endif
 };
 
 // DoubleBufferedTexture using a SkBitmap as backing mechanism
index 851d02c..095d014 100644 (file)
@@ -260,9 +260,15 @@ void TransferQueue::updateDirtyBaseTiles()
                 continue;
             }
 
+#if DEBUG_TRANSFER_USING_CPU_UPLOAD
+            // Here we just need to upload the bitmap content to the GL Texture
+            GLUtils::updateTextureWithBitmap(destTexture->m_ownTextureId, 0, 0,
+                                             m_transferQueue[index].bitmap);
+#else
             blitTileFromQueue(m_fboID, destTexture,
                               m_sharedSurfaceTextureId,
                               m_sharedSurfaceTexture->getCurrentTextureTarget());
+#endif
 
             // After the base tile copied into the GL texture, we need to
             // update the texture's info such that at draw time, readyFor
@@ -335,6 +341,9 @@ void TransferQueue::updateQueueWithBitmap(const TileRenderInfo* renderInfo,
     m_transferQueueItemLocks.lock();
     // b) After update the Surface Texture, now udpate the transfer queue info.
     addItemInTransferQueue(renderInfo);
+#if DEBUG_TRANSFER_USING_CPU_UPLOAD
+    bitmap.copyTo(&(m_transferQueue[m_transferQueueIndex].bitmap), bitmap.config());
+#endif
     m_transferQueueItemLocks.unlock();
     XLOG("Bitmap updated x, y %d %d, baseTile %p",
          renderInfo->x, renderInfo->y, renderInfo->baseTile);