Index: Source/platform/graphics/gpu/DrawingBuffer.cpp |
diff --git a/Source/platform/graphics/gpu/DrawingBuffer.cpp b/Source/platform/graphics/gpu/DrawingBuffer.cpp |
index ef349001ef2377de78cb5a94b580bd712aeb6ef4..f0a287601cfc6d8885faed84a7728d7c40ef6349 100644 |
--- a/Source/platform/graphics/gpu/DrawingBuffer.cpp |
+++ b/Source/platform/graphics/gpu/DrawingBuffer.cpp |
@@ -194,7 +194,7 @@ void DrawingBuffer::setIsHidden(bool hidden) |
if (m_isHidden == hidden) |
return; |
m_isHidden = hidden; |
- if (m_isHidden) |
+ if (m_isHidden && !m_context->isContextLost()) |
danakj
2014/09/10 15:11:49
Can you explain why you don't free mailboxes when
Justin Novosad
2014/09/10 17:09:50
Had a similar issue with 2D canvas. It's because y
danakj
2014/09/10 17:12:12
I'm not sure why you can't delete things? You can
Justin Novosad
2014/09/10 17:16:24
It's the deleting of mailboxes that was causing tr
danakj
2014/09/10 17:18:11
As long as we don't use them anything is okay, but
|
freeRecycledMailboxes(); |
} |
@@ -208,10 +208,6 @@ void DrawingBuffer::freeRecycledMailboxes() |
bool DrawingBuffer::prepareMailbox(WebExternalTextureMailbox* outMailbox, WebExternalBitmap* bitmap) |
{ |
- ASSERT(!m_isHidden); |
- if (!m_contentsChanged) |
- return false; |
- |
if (m_destructionInProgress) { |
// It can be hit in the following sequence. |
// 1. WebGL draws something. |
@@ -220,6 +216,9 @@ bool DrawingBuffer::prepareMailbox(WebExternalTextureMailbox* outMailbox, WebExt |
// 4. Here. |
return false; |
} |
+ ASSERT(!m_isHidden); |
+ if (!m_contentsChanged) |
+ return false; |
// Resolve the multisampled buffer into m_colorBuffer texture. |
if (m_multisampleMode != None) |