| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "gpu/command_buffer/client/query_tracker.h" | 5 #include "gpu/command_buffer/client/query_tracker.h" |
| 6 | 6 |
| 7 #include <GLES2/gl2.h> | 7 #include <GLES2/gl2.h> |
| 8 #include <GLES2/gl2ext.h> | 8 #include <GLES2/gl2ext.h> |
| 9 #include <GLES2/gl2extchromium.h> | 9 #include <GLES2/gl2extchromium.h> |
| 10 | 10 |
| (...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 199 } | 199 } |
| 200 } | 200 } |
| 201 return state_ == kComplete; | 201 return state_ == kComplete; |
| 202 } | 202 } |
| 203 | 203 |
| 204 uint32 QueryTracker::Query::GetResult() const { | 204 uint32 QueryTracker::Query::GetResult() const { |
| 205 DCHECK(state_ == kComplete || state_ == kUninitialized); | 205 DCHECK(state_ == kComplete || state_ == kUninitialized); |
| 206 return result_; | 206 return result_; |
| 207 } | 207 } |
| 208 | 208 |
| 209 bool QueryTracker::Query::UpdateTarget(GLenum target) { |
| 210 switch (target_) { |
| 211 // The boolean occlusion targets are interchangable. |
| 212 case GL_ANY_SAMPLES_PASSED: |
| 213 case GL_ANY_SAMPLES_PASSED_CONSERVATIVE: |
| 214 if (target == GL_ANY_SAMPLES_PASSED || |
| 215 target == GL_ANY_SAMPLES_PASSED_CONSERVATIVE) { |
| 216 target_ = target; |
| 217 return true; |
| 218 }; |
| 219 return false; |
| 220 // Otherwise target is finalized the first time beginQuery() is called. |
| 221 default: |
| 222 return target_ == target; |
| 223 } |
| 224 } |
| 225 |
| 209 QueryTracker::QueryTracker(MappedMemoryManager* manager) | 226 QueryTracker::QueryTracker(MappedMemoryManager* manager) |
| 210 : query_sync_manager_(manager) { | 227 : query_sync_manager_(manager) { |
| 211 } | 228 } |
| 212 | 229 |
| 213 QueryTracker::~QueryTracker() { | 230 QueryTracker::~QueryTracker() { |
| 214 while (!queries_.empty()) { | 231 while (!queries_.empty()) { |
| 215 delete queries_.begin()->second; | 232 delete queries_.begin()->second; |
| 216 queries_.erase(queries_.begin()); | 233 queries_.erase(queries_.begin()); |
| 217 } | 234 } |
| 218 while (!removed_queries_.empty()) { | 235 while (!removed_queries_.empty()) { |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 272 } | 289 } |
| 273 | 290 |
| 274 query_sync_manager_.Free(query->info_); | 291 query_sync_manager_.Free(query->info_); |
| 275 it = removed_queries_.erase(it); | 292 it = removed_queries_.erase(it); |
| 276 delete query; | 293 delete query; |
| 277 } | 294 } |
| 278 } | 295 } |
| 279 | 296 |
| 280 } // namespace gles2 | 297 } // namespace gles2 |
| 281 } // namespace gpu | 298 } // namespace gpu |
| OLD | NEW |