Chromium Code Reviews| Index: Source/core/html/canvas/WebGLQuery.cpp |
| diff --git a/Source/core/html/canvas/WebGLQuery.cpp b/Source/core/html/canvas/WebGLQuery.cpp |
| index 58c5f0c83fbf8072f77d1213f0a87b200988ad29..2c1ff460aae9734c5778e0bdf5a0fa12ed1903dd 100644 |
| --- a/Source/core/html/canvas/WebGLQuery.cpp |
| +++ b/Source/core/html/canvas/WebGLQuery.cpp |
| @@ -29,10 +29,35 @@ WebGLQuery::~WebGLQuery() |
| WebGLQuery::WebGLQuery(WebGL2RenderingContextBase* ctx) |
| : WebGLSharedPlatform3DObject(ctx) |
| + , m_target(0) |
| { |
| setObject(ctx->webContext()->createQueryEXT()); |
| } |
| +void WebGLQuery::setTarget(GLenum target) |
| +{ |
| + if (!object() || !compatibleTarget(target)) |
| + return; |
|
Ken Russell (switch to Gerrit)
2015/06/24 21:07:22
These checks are supposed to be validated by the c
|
| + |
| + m_target = target; |
| +} |
| + |
| +bool WebGLQuery::compatibleTarget(GLenum target) |
| +{ |
| + if (!m_target) |
| + return true; |
| + |
| + switch (target) { |
| + // The SAMPLES_PASSED targets are interchangable. |
| + case GL_ANY_SAMPLES_PASSED: |
| + case GL_ANY_SAMPLES_PASSED_CONSERVATIVE: |
| + return m_target == GL_ANY_SAMPLES_PASSED || m_target == GL_ANY_SAMPLES_PASSED_CONSERVATIVE; |
| + // Otherwise target is finalized the first time beginQuery() is called. |
| + default: |
| + return m_target == target; |
| + } |
| +} |
| + |
| void WebGLQuery::deleteObjectImpl(WebGraphicsContext3D* context3d) |
| { |
| context3d->deleteQueryEXT(m_object); |