Index: cc/gl_renderer.cc |
diff --git a/cc/gl_renderer.cc b/cc/gl_renderer.cc |
index 773a88e8c2534bae73fd740395f06dcbbefebd0a..d4dbce5cfa2f420cb20a719684670ed20a8dbc1a 100644 |
--- a/cc/gl_renderer.cc |
+++ b/cc/gl_renderer.cc |
@@ -23,6 +23,7 @@ |
#include "base/debug/trace_event.h" |
#include "base/string_split.h" |
#include "base/string_util.h" |
+#include "base/logging.h" |
#include "cc/geometry_binding.h" |
#include "cc/platform_color.h" |
#include "third_party/skia/include/core/SkBitmap.h" |
@@ -77,7 +78,7 @@ CCRendererGL::CCRendererGL(CCRendererClient* client, |
, m_isUsingBindUniform(false) |
, m_visible(true) |
{ |
- ASSERT(m_context); |
+ DCHECK(m_context); |
} |
bool CCRendererGL::initialize() |
@@ -113,7 +114,7 @@ bool CCRendererGL::initialize() |
m_capabilities.usingSetVisibility = extensions.count("GL_CHROMIUM_set_visibility"); |
if (extensions.count("GL_CHROMIUM_iosurface")) |
- ASSERT(extensions.count("GL_ARB_texture_rectangle")); |
+ DCHECK(extensions.count("GL_ARB_texture_rectangle")); |
m_capabilities.usingGpuMemoryManager = extensions.count("GL_CHROMIUM_gpu_memory_manager"); |
if (m_capabilities.usingGpuMemoryManager) |
@@ -138,7 +139,7 @@ bool CCRendererGL::initialize() |
CCRendererGL::~CCRendererGL() |
{ |
- ASSERT(CCProxy::isImplThread()); |
+ DCHECK(CCProxy::isImplThread()); |
m_context->setSwapBuffersCompleteCallbackCHROMIUM(0); |
m_context->setMemoryAllocationChangedCallbackCHROMIUM(0); |
m_context->setContextLostCallback(0); |
@@ -159,7 +160,7 @@ void CCRendererGL::debugGLCall(WebGraphicsContext3D* context, const char* comman |
{ |
unsigned long error = context->getError(); |
if (error != GraphicsContext3D::NO_ERROR) |
- LOG_ERROR("GL command failed: File: %s\n\tLine %d\n\tcommand: %s, error %x\n", file, line, command, static_cast<int>(error)); |
+ LOG(ERROR) << "GL command failed: File: " << file << "\n\tLine " << line << "\n\tcommand: " << command << ", error " << static_cast<int>(error) << "\n"; |
} |
void CCRendererGL::setVisible(bool visible) |
@@ -194,7 +195,7 @@ void CCRendererGL::clearFramebuffer(DrawingFrame& frame) |
else |
GLC(m_context, m_context->clearColor(0, 0, 1, 1)); |
-#if defined(NDEBUG) |
+#ifdef NDEBUG |
if (frame.currentRenderPass->hasTransparentBackground()) |
#endif |
m_context->clear(GraphicsContext3D::COLOR_BUFFER_BIT); |
@@ -243,7 +244,7 @@ void CCRendererGL::drawQuad(DrawingFrame& frame, const CCDrawQuad* quad) |
switch (quad->material()) { |
case CCDrawQuad::Invalid: |
- ASSERT_NOT_REACHED(); |
+ NOTREACHED(); |
break; |
case CCDrawQuad::Checkerboard: |
drawCheckerboardQuad(frame, CCCheckerboardDrawQuad::materialCast(quad)); |
@@ -278,7 +279,7 @@ void CCRendererGL::drawQuad(DrawingFrame& frame, const CCDrawQuad* quad) |
void CCRendererGL::drawCheckerboardQuad(const DrawingFrame& frame, const CCCheckerboardDrawQuad* quad) |
{ |
const TileCheckerboardProgram* program = tileCheckerboardProgram(); |
- ASSERT(program && program->initialized()); |
+ DCHECK(program && program->initialized()); |
GLC(context(), context()->useProgram(program->program())); |
SkColor color = quad->color(); |
@@ -304,7 +305,7 @@ void CCRendererGL::drawDebugBorderQuad(const DrawingFrame& frame, const CCDebugB |
{ |
static float glMatrix[16]; |
const SolidColorProgram* program = solidColorProgram(); |
- ASSERT(program && program->initialized()); |
+ DCHECK(program && program->initialized()); |
GLC(context(), context()->useProgram(program->program())); |
// Use the full quadRect for debug quads to not move the edges based on partial swaps. |
@@ -369,7 +370,7 @@ scoped_ptr<CCScopedTexture> CCRendererGL::drawBackgroundFilters(DrawingFrame& fr |
// translucent pixels, and the contents behind those translucent pixels wouldn't have the filter applied. |
if (frame.currentRenderPass->hasTransparentBackground()) |
return scoped_ptr<CCScopedTexture>(); |
- ASSERT(!frame.currentTexture); |
+ DCHECK(!frame.currentTexture); |
// FIXME: Do a single readback for both the surface and replica and cache the filtered results (once filter textures are not reused). |
IntRect deviceRect = enclosingIntRect(CCMathUtil::mapClippedRect(contentsDeviceTransform, sharedGeometryQuad().boundingBox())); |
@@ -422,7 +423,7 @@ void CCRendererGL::drawRenderPassQuad(DrawingFrame& frame, const CCRenderPassDra |
return; |
const CCRenderPass* renderPass = frame.renderPassesById->get(quad->renderPassId()); |
- ASSERT(renderPass); |
+ DCHECK(renderPass); |
if (!renderPass) |
return; |
@@ -451,14 +452,14 @@ void CCRendererGL::drawRenderPassQuad(DrawingFrame& frame, const CCRenderPassDra |
// Draw the background texture if there is one. |
if (backgroundTexture) { |
- ASSERT(backgroundTexture->size() == quad->quadRect().size()); |
+ DCHECK(backgroundTexture->size() == quad->quadRect().size()); |
CCResourceProvider::ScopedReadLockGL lock(m_resourceProvider, backgroundTexture->id()); |
copyTextureToFramebuffer(frame, lock.textureId(), quad->quadRect(), quad->quadTransform()); |
} |
bool clipped = false; |
FloatQuad deviceQuad = CCMathUtil::mapQuad(contentsDeviceTransform, sharedGeometryQuad(), clipped); |
- ASSERT(!clipped); |
+ DCHECK(!clipped); |
CCLayerQuad deviceLayerBounds = CCLayerQuad(FloatQuad(deviceQuad.boundingBox())); |
CCLayerQuad deviceLayerEdges = CCLayerQuad(deviceQuad); |
@@ -529,8 +530,8 @@ void CCRendererGL::drawRenderPassQuad(DrawingFrame& frame, const CCRenderPassDra |
} |
if (shaderMaskSamplerLocation != -1) { |
- ASSERT(shaderMaskTexCoordScaleLocation != 1); |
- ASSERT(shaderMaskTexCoordOffsetLocation != 1); |
+ DCHECK(shaderMaskTexCoordScaleLocation != 1); |
+ DCHECK(shaderMaskTexCoordOffsetLocation != 1); |
GLC(context(), context()->activeTexture(GraphicsContext3D::TEXTURE1)); |
GLC(context(), context()->uniform1i(shaderMaskSamplerLocation, 1)); |
GLC(context(), context()->uniform2f(shaderMaskTexCoordScaleLocation, quad->maskTexCoordScaleX(), quad->maskTexCoordScaleY())); |
@@ -548,7 +549,7 @@ void CCRendererGL::drawRenderPassQuad(DrawingFrame& frame, const CCRenderPassDra |
// Map device space quad to surface space. contentsDeviceTransform has no 3d component since it was generated with to2dTransform() so we don't need to project. |
FloatQuad surfaceQuad = CCMathUtil::mapQuad(contentsDeviceTransform.inverse(), deviceLayerEdges.floatQuad(), clipped); |
- ASSERT(!clipped); |
+ DCHECK(!clipped); |
setShaderOpacity(quad->opacity(), shaderAlphaLocation); |
setShaderFloatQuad(surfaceQuad, shaderQuadLocation); |
@@ -636,7 +637,7 @@ void CCRendererGL::drawTileQuad(const DrawingFrame& frame, const CCTileDrawQuad* |
bool clipped = false; |
FloatQuad deviceLayerQuad = CCMathUtil::mapQuad(deviceTransform, FloatQuad(quad->visibleContentRect()), clipped); |
- ASSERT(!clipped); |
+ DCHECK(!clipped); |
TileProgramUniforms uniforms; |
// For now, we simply skip anti-aliasing with the quad is clipped. This only happens |
@@ -691,13 +692,13 @@ void CCRendererGL::drawTileQuad(const DrawingFrame& frame, const CCTileDrawQuad* |
// Map points to device space. |
bottomRight = CCMathUtil::mapPoint(deviceTransform, bottomRight, clipped); |
- ASSERT(!clipped); |
+ DCHECK(!clipped); |
bottomLeft = CCMathUtil::mapPoint(deviceTransform, bottomLeft, clipped); |
- ASSERT(!clipped); |
+ DCHECK(!clipped); |
topLeft = CCMathUtil::mapPoint(deviceTransform, topLeft, clipped); |
- ASSERT(!clipped); |
+ DCHECK(!clipped); |
topRight = CCMathUtil::mapPoint(deviceTransform, topRight, clipped); |
- ASSERT(!clipped); |
+ DCHECK(!clipped); |
CCLayerQuad::Edge bottomEdge(bottomRight, bottomLeft); |
CCLayerQuad::Edge leftEdge(bottomLeft, topLeft); |
@@ -727,7 +728,7 @@ void CCRendererGL::drawTileQuad(const DrawingFrame& frame, const CCTileDrawQuad* |
WebTransformationMatrix inverseDeviceTransform = deviceTransform.inverse(); |
localQuad = CCMathUtil::mapQuad(inverseDeviceTransform, deviceQuad.floatQuad(), clipped); |
- // We should not ASSERT(!clipped) here, because anti-aliasing inflation may cause deviceQuad to become |
+ // We should not DCHECK(!clipped) here, because anti-aliasing inflation may cause deviceQuad to become |
// clipped. To our knowledge this scenario does not need to be handled differently than the unclipped case. |
} else { |
// Move fragment shader transform to vertex shader. We can do this while |
@@ -764,7 +765,7 @@ void CCRendererGL::drawTileQuad(const DrawingFrame& frame, const CCTileDrawQuad* |
void CCRendererGL::drawYUVVideoQuad(const DrawingFrame& frame, const CCYUVVideoDrawQuad* quad) |
{ |
const VideoYUVProgram* program = videoYUVProgram(); |
- ASSERT(program && program->initialized()); |
+ DCHECK(program && program->initialized()); |
const CCVideoLayerImpl::FramePlane& yPlane = quad->yPlane(); |
const CCVideoLayerImpl::FramePlane& uPlane = quad->uPlane(); |
@@ -825,7 +826,7 @@ void CCRendererGL::drawStreamVideoQuad(const DrawingFrame& frame, const CCStream |
{ |
static float glMatrix[16]; |
- ASSERT(m_capabilities.usingEglImage); |
+ DCHECK(m_capabilities.usingEglImage); |
const VideoStreamTextureProgram* program = videoStreamTextureProgram(); |
GLC(context(), context()->useProgram(program->program())); |
@@ -845,7 +846,7 @@ void CCRendererGL::drawStreamVideoQuad(const DrawingFrame& frame, const CCStream |
struct TextureProgramBinding { |
template<class Program> void set(Program* program) |
{ |
- ASSERT(program && program->initialized()); |
+ DCHECK(program && program->initialized()); |
programId = program->program(); |
samplerLocation = program->fragmentShader().samplerLocation(); |
matrixLocation = program->vertexShader().matrixLocation(); |
@@ -868,7 +869,7 @@ struct TexTransformTextureProgramBinding : TextureProgramBinding { |
void CCRendererGL::drawTextureQuad(const DrawingFrame& frame, const CCTextureDrawQuad* quad) |
{ |
- ASSERT(CCProxy::isImplThread()); |
+ DCHECK(CCProxy::isImplThread()); |
TexTransformTextureProgramBinding binding; |
if (quad->flipped()) |
@@ -912,7 +913,7 @@ void CCRendererGL::drawTextureQuad(const DrawingFrame& frame, const CCTextureDra |
void CCRendererGL::drawIOSurfaceQuad(const DrawingFrame& frame, const CCIOSurfaceDrawQuad* quad) |
{ |
- ASSERT(CCProxy::isImplThread()); |
+ DCHECK(CCProxy::isImplThread()); |
TexTransformTextureProgramBinding binding; |
binding.set(textureIOSurfaceProgram()); |
@@ -1025,8 +1026,8 @@ void CCRendererGL::finish() |
bool CCRendererGL::swapBuffers() |
{ |
- ASSERT(m_visible); |
- ASSERT(!m_isFramebufferDiscarded); |
+ DCHECK(m_visible); |
+ DCHECK(!m_isFramebufferDiscarded); |
TRACE_EVENT0("cc", "CCRendererGL::swapBuffers"); |
// We're done! Time to swapbuffers! |
@@ -1056,11 +1057,11 @@ void CCRendererGL::onMemoryAllocationChanged(WebGraphicsMemoryAllocation allocat |
{ |
// FIXME: This is called on the main thread in single threaded mode, but we expect it on the impl thread. |
if (!CCProxy::hasImplThread()) { |
- ASSERT(CCProxy::isMainThread()); |
+ DCHECK(CCProxy::isMainThread()); |
DebugScopedSetImplThread impl; |
onMemoryAllocationChangedOnImplThread(allocation); |
} else { |
- ASSERT(CCProxy::isImplThread()); |
+ DCHECK(CCProxy::isImplThread()); |
onMemoryAllocationChangedOnImplThread(allocation); |
} |
} |
@@ -1123,7 +1124,8 @@ void CCRendererGL::onContextLost() |
void CCRendererGL::getFramebufferPixels(void *pixels, const IntRect& rect) |
{ |
- ASSERT(rect.maxX() <= viewportWidth() && rect.maxY() <= viewportHeight()); |
+ DCHECK(rect.maxX() <= viewportWidth()); |
+ DCHECK(rect.maxY() <= viewportHeight()); |
if (!pixels) |
return; |
@@ -1154,7 +1156,7 @@ void CCRendererGL::getFramebufferPixels(void *pixels, const IntRect& rect) |
GLC(m_context, m_context->bindFramebuffer(GraphicsContext3D::FRAMEBUFFER, temporaryFBO)); |
GLC(m_context, m_context->framebufferTexture2D(GraphicsContext3D::FRAMEBUFFER, GraphicsContext3D::COLOR_ATTACHMENT0, GraphicsContext3D::TEXTURE_2D, temporaryTexture, 0)); |
- ASSERT(m_context->checkFramebufferStatus(GraphicsContext3D::FRAMEBUFFER) == GraphicsContext3D::FRAMEBUFFER_COMPLETE); |
+ DCHECK(m_context->checkFramebufferStatus(GraphicsContext3D::FRAMEBUFFER) == GraphicsContext3D::FRAMEBUFFER_COMPLETE); |
} |
scoped_array<uint8_t> srcPixels(new uint8_t[rect.width() * rect.height() * 4]); |
@@ -1190,7 +1192,7 @@ void CCRendererGL::getFramebufferPixels(void *pixels, const IntRect& rect) |
bool CCRendererGL::getFramebufferTexture(CCScopedTexture* texture, const IntRect& deviceRect) |
{ |
- ASSERT(!texture->id() || (texture->size() == deviceRect.size() && texture->format() == GraphicsContext3D::RGB)); |
+ DCHECK(!texture->id() || (texture->size() == deviceRect.size() && texture->format() == GraphicsContext3D::RGB)); |
if (!texture->id() && !texture->allocate(CCRenderer::ImplPool, deviceRect.size(), GraphicsContext3D::RGB, CCResourceProvider::TextureUsageAny)) |
return false; |
@@ -1204,7 +1206,7 @@ bool CCRendererGL::getFramebufferTexture(CCScopedTexture* texture, const IntRect |
bool CCRendererGL::useScopedTexture(DrawingFrame& frame, const CCScopedTexture* texture, const IntRect& viewportRect) |
{ |
- ASSERT(texture->id()); |
+ DCHECK(texture->id()); |
frame.currentRenderPass = 0; |
frame.currentTexture = texture; |
@@ -1219,19 +1221,14 @@ void CCRendererGL::bindFramebufferToOutputSurface(DrawingFrame& frame) |
bool CCRendererGL::bindFramebufferToTexture(DrawingFrame& frame, const CCScopedTexture* texture, const IntRect& framebufferRect) |
{ |
- ASSERT(texture->id()); |
+ DCHECK(texture->id()); |
GLC(m_context, m_context->bindFramebuffer(GraphicsContext3D::FRAMEBUFFER, m_offscreenFramebufferId)); |
m_currentFramebufferLock = make_scoped_ptr(new CCResourceProvider::ScopedWriteLockGL(m_resourceProvider, texture->id())); |
unsigned textureId = m_currentFramebufferLock->textureId(); |
GLC(m_context, m_context->framebufferTexture2D(GraphicsContext3D::FRAMEBUFFER, GraphicsContext3D::COLOR_ATTACHMENT0, GraphicsContext3D::TEXTURE_2D, textureId, 0)); |
-#if !defined ( NDEBUG ) |
- if (m_context->checkFramebufferStatus(GraphicsContext3D::FRAMEBUFFER) != GraphicsContext3D::FRAMEBUFFER_COMPLETE) { |
- ASSERT_NOT_REACHED(); |
- return false; |
- } |
-#endif |
+ DCHECK(m_context->checkFramebufferStatus(GraphicsContext3D::FRAMEBUFFER) == GraphicsContext3D::FRAMEBUFFER_COMPLETE); |
initializeMatrices(frame, framebufferRect, false); |
setDrawViewportSize(framebufferRect.size()); |
@@ -1304,7 +1301,7 @@ const CCRendererGL::SolidColorProgram* CCRendererGL::solidColorProgram() |
const CCRendererGL::RenderPassProgram* CCRendererGL::renderPassProgram() |
{ |
- ASSERT(m_renderPassProgram); |
+ DCHECK(m_renderPassProgram); |
if (!m_renderPassProgram->initialized()) { |
TRACE_EVENT0("cc", "CCRendererGL::renderPassProgram::initialize"); |
m_renderPassProgram->initialize(m_context, m_isUsingBindUniform); |
@@ -1347,7 +1344,7 @@ const CCRendererGL::RenderPassMaskProgramAA* CCRendererGL::renderPassMaskProgram |
const CCRendererGL::TileProgram* CCRendererGL::tileProgram() |
{ |
- ASSERT(m_tileProgram); |
+ DCHECK(m_tileProgram); |
if (!m_tileProgram->initialized()) { |
TRACE_EVENT0("cc", "CCRendererGL::tileProgram::initialize"); |
m_tileProgram->initialize(m_context, m_isUsingBindUniform); |
@@ -1357,7 +1354,7 @@ const CCRendererGL::TileProgram* CCRendererGL::tileProgram() |
const CCRendererGL::TileProgramOpaque* CCRendererGL::tileProgramOpaque() |
{ |
- ASSERT(m_tileProgramOpaque); |
+ DCHECK(m_tileProgramOpaque); |
if (!m_tileProgramOpaque->initialized()) { |
TRACE_EVENT0("cc", "CCRendererGL::tileProgramOpaque::initialize"); |
m_tileProgramOpaque->initialize(m_context, m_isUsingBindUniform); |