Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2010 The Chromium Authors. All rights reserved. | 1 // Copyright 2010 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "cc/gl_renderer.h" | 5 #include "cc/gl_renderer.h" |
| 6 | 6 |
| 7 #include "base/debug/trace_event.h" | 7 #include "base/debug/trace_event.h" |
| 8 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "base/string_split.h" | 9 #include "base/string_split.h" |
| 10 #include "base/string_util.h" | 10 #include "base/string_util.h" |
| (...skipping 918 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 929 | 929 |
| 930 void GLRenderer::drawStreamVideoQuad(const DrawingFrame& frame, const StreamVide oDrawQuad* quad) | 930 void GLRenderer::drawStreamVideoQuad(const DrawingFrame& frame, const StreamVide oDrawQuad* quad) |
| 931 { | 931 { |
| 932 static float glMatrix[16]; | 932 static float glMatrix[16]; |
| 933 | 933 |
| 934 DCHECK(m_capabilities.usingEglImage); | 934 DCHECK(m_capabilities.usingEglImage); |
| 935 | 935 |
| 936 const VideoStreamTextureProgram* program = videoStreamTextureProgram(); | 936 const VideoStreamTextureProgram* program = videoStreamTextureProgram(); |
| 937 setUseProgram(program->program()); | 937 setUseProgram(program->program()); |
| 938 | 938 |
| 939 if (quad->texture_id == 0) { | |
| 940 // When texture_id == 0, punch a hole instead of rendering. | |
|
qinmin
2012/12/17 19:34:06
nit: fix indent
enne (OOO)
2012/12/17 20:38:28
What do you mean by punch a hole? Maybe I'm misund
wonsik2
2013/02/14 14:56:38
It seems that 4 spaces are used throughout the fil
wonsik2
2013/02/14 14:56:38
Skipping a quad will make the background occlude t
| |
| 941 GLC(m_context, m_context->blendFunc(GL_ZERO, GL_ONE_MINUS_SRC_ALPHA)); | |
| 942 drawQuadGeometry(frame, quad->quadTransform(), quad->rect, program->vert exShader().matrixLocation()); | |
| 943 GLC(m_context, m_context->blendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA)); | |
| 944 return; | |
| 945 } | |
| 939 toGLMatrix(&glMatrix[0], quad->matrix); | 946 toGLMatrix(&glMatrix[0], quad->matrix); |
| 940 GLC(context(), context()->uniformMatrix4fv(program->vertexShader().texMatrix Location(), 1, false, glMatrix)); | 947 GLC(context(), context()->uniformMatrix4fv(program->vertexShader().texMatrix Location(), 1, false, glMatrix)); |
| 941 | 948 |
| 942 GLC(context(), context()->bindTexture(GL_TEXTURE_EXTERNAL_OES, quad->texture _id)); | 949 GLC(context(), context()->bindTexture(GL_TEXTURE_EXTERNAL_OES, quad->texture _id)); |
| 943 | 950 |
| 944 GLC(context(), context()->uniform1i(program->fragmentShader().samplerLocatio n(), 0)); | 951 GLC(context(), context()->uniform1i(program->fragmentShader().samplerLocatio n(), 0)); |
| 945 | 952 |
| 946 setShaderOpacity(quad->opacity(), program->fragmentShader().alphaLocation()) ; | 953 setShaderOpacity(quad->opacity(), program->fragmentShader().alphaLocation()) ; |
| 947 drawQuadGeometry(frame, quad->quadTransform(), quad->rect, program->vertexSh ader().matrixLocation()); | 954 drawQuadGeometry(frame, quad->quadTransform(), quad->rect, program->vertexSh ader().matrixLocation()); |
| 948 } | 955 } |
| (...skipping 797 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1746 | 1753 |
| 1747 releaseRenderPassTextures(); | 1754 releaseRenderPassTextures(); |
| 1748 } | 1755 } |
| 1749 | 1756 |
| 1750 bool GLRenderer::isContextLost() | 1757 bool GLRenderer::isContextLost() |
| 1751 { | 1758 { |
| 1752 return (m_context->getGraphicsResetStatusARB() != GL_NO_ERROR); | 1759 return (m_context->getGraphicsResetStatusARB() != GL_NO_ERROR); |
| 1753 } | 1760 } |
| 1754 | 1761 |
| 1755 } // namespace cc | 1762 } // namespace cc |
| OLD | NEW |