OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 #ifndef CC_TEST_TEST_WEB_GRAPHICS_CONTEXT_3D_H_ | 5 #ifndef CC_TEST_TEST_WEB_GRAPHICS_CONTEXT_3D_H_ |
6 #define CC_TEST_TEST_WEB_GRAPHICS_CONTEXT_3D_H_ | 6 #define CC_TEST_TEST_WEB_GRAPHICS_CONTEXT_3D_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 #include <stdint.h> | 9 #include <stdint.h> |
10 | 10 |
| 11 #include <unordered_map> |
| 12 #include <unordered_set> |
11 #include <vector> | 13 #include <vector> |
12 | 14 |
13 #include "base/callback.h" | 15 #include "base/callback.h" |
14 #include "base/compiler_specific.h" | 16 #include "base/compiler_specific.h" |
15 #include "base/containers/hash_tables.h" | |
16 #include "base/containers/scoped_ptr_hash_map.h" | |
17 #include "base/macros.h" | 17 #include "base/macros.h" |
18 #include "base/memory/ref_counted.h" | 18 #include "base/memory/ref_counted.h" |
19 #include "base/memory/scoped_ptr.h" | 19 #include "base/memory/scoped_ptr.h" |
20 #include "base/memory/weak_ptr.h" | 20 #include "base/memory/weak_ptr.h" |
21 #include "base/stl_util.h" | 21 #include "base/stl_util.h" |
22 #include "base/synchronization/lock.h" | 22 #include "base/synchronization/lock.h" |
23 #include "cc/output/context_provider.h" | 23 #include "cc/output/context_provider.h" |
24 #include "cc/test/ordered_texture_map.h" | 24 #include "cc/test/ordered_texture_map.h" |
25 #include "cc/test/test_texture.h" | 25 #include "cc/test/test_texture.h" |
26 #include "gpu/command_buffer/common/sync_token.h" | 26 #include "gpu/command_buffer/common/sync_token.h" |
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
397 struct TextureTargets { | 397 struct TextureTargets { |
398 TextureTargets(); | 398 TextureTargets(); |
399 ~TextureTargets(); | 399 ~TextureTargets(); |
400 | 400 |
401 void BindTexture(GLenum target, GLuint id); | 401 void BindTexture(GLenum target, GLuint id); |
402 void UnbindTexture(GLuint id); | 402 void UnbindTexture(GLuint id); |
403 | 403 |
404 GLuint BoundTexture(GLenum target); | 404 GLuint BoundTexture(GLenum target); |
405 | 405 |
406 private: | 406 private: |
407 typedef base::hash_map<GLenum, GLuint> TargetTextureMap; | 407 using TargetTextureMap = std::unordered_map<GLenum, GLuint>; |
408 TargetTextureMap bound_textures_; | 408 TargetTextureMap bound_textures_; |
409 }; | 409 }; |
410 | 410 |
411 struct Buffer { | 411 struct Buffer { |
412 Buffer(); | 412 Buffer(); |
413 ~Buffer(); | 413 ~Buffer(); |
414 | 414 |
415 GLenum target; | 415 GLenum target; |
416 scoped_ptr<uint8_t[]> pixels; | 416 scoped_ptr<uint8_t[]> pixels; |
417 size_t size; | 417 size_t size; |
(...skipping 14 matching lines...) Expand all Loading... |
432 | 432 |
433 struct Namespace : public base::RefCountedThreadSafe<Namespace> { | 433 struct Namespace : public base::RefCountedThreadSafe<Namespace> { |
434 Namespace(); | 434 Namespace(); |
435 | 435 |
436 // Protects all fields. | 436 // Protects all fields. |
437 base::Lock lock; | 437 base::Lock lock; |
438 unsigned next_buffer_id; | 438 unsigned next_buffer_id; |
439 unsigned next_image_id; | 439 unsigned next_image_id; |
440 unsigned next_texture_id; | 440 unsigned next_texture_id; |
441 unsigned next_renderbuffer_id; | 441 unsigned next_renderbuffer_id; |
442 base::ScopedPtrHashMap<unsigned, scoped_ptr<Buffer>> buffers; | 442 std::unordered_map<unsigned, scoped_ptr<Buffer>> buffers; |
443 base::hash_set<unsigned> images; | 443 std::unordered_set<unsigned> images; |
444 OrderedTextureMap textures; | 444 OrderedTextureMap textures; |
445 base::hash_set<unsigned> renderbuffer_set; | 445 std::unordered_set<unsigned> renderbuffer_set; |
446 | 446 |
447 private: | 447 private: |
448 friend class base::RefCountedThreadSafe<Namespace>; | 448 friend class base::RefCountedThreadSafe<Namespace>; |
449 ~Namespace(); | 449 ~Namespace(); |
450 DISALLOW_COPY_AND_ASSIGN(Namespace); | 450 DISALLOW_COPY_AND_ASSIGN(Namespace); |
451 }; | 451 }; |
452 | 452 |
453 TestWebGraphicsContext3D(); | 453 TestWebGraphicsContext3D(); |
454 | 454 |
455 void CreateNamespace(); | 455 void CreateNamespace(); |
456 GLuint BoundTextureId(GLenum target); | 456 GLuint BoundTextureId(GLenum target); |
457 scoped_refptr<TestTexture> BoundTexture(GLenum target); | 457 scoped_refptr<TestTexture> BoundTexture(GLenum target); |
458 scoped_refptr<TestTexture> UnboundTexture(GLuint texture); | 458 scoped_refptr<TestTexture> UnboundTexture(GLuint texture); |
459 void CheckTextureIsBound(GLenum target); | 459 void CheckTextureIsBound(GLenum target); |
460 | 460 |
461 unsigned context_id_; | 461 unsigned context_id_; |
462 ContextProvider::Capabilities test_capabilities_; | 462 ContextProvider::Capabilities test_capabilities_; |
463 int times_bind_texture_succeeds_; | 463 int times_bind_texture_succeeds_; |
464 int times_end_query_succeeds_; | 464 int times_end_query_succeeds_; |
465 bool context_lost_; | 465 bool context_lost_; |
466 int times_map_buffer_chromium_succeeds_; | 466 int times_map_buffer_chromium_succeeds_; |
467 int current_used_transfer_buffer_usage_bytes_; | 467 int current_used_transfer_buffer_usage_bytes_; |
468 int max_used_transfer_buffer_usage_bytes_; | 468 int max_used_transfer_buffer_usage_bytes_; |
469 base::Closure context_lost_callback_; | 469 base::Closure context_lost_callback_; |
470 base::hash_set<unsigned> used_textures_; | 470 std::unordered_set<unsigned> used_textures_; |
471 unsigned next_program_id_; | 471 unsigned next_program_id_; |
472 base::hash_set<unsigned> program_set_; | 472 std::unordered_set<unsigned> program_set_; |
473 unsigned next_shader_id_; | 473 unsigned next_shader_id_; |
474 base::hash_set<unsigned> shader_set_; | 474 std::unordered_set<unsigned> shader_set_; |
475 unsigned next_framebuffer_id_; | 475 unsigned next_framebuffer_id_; |
476 base::hash_set<unsigned> framebuffer_set_; | 476 std::unordered_set<unsigned> framebuffer_set_; |
477 unsigned current_framebuffer_; | 477 unsigned current_framebuffer_; |
478 std::vector<TestWebGraphicsContext3D*> shared_contexts_; | 478 std::vector<TestWebGraphicsContext3D*> shared_contexts_; |
479 int max_texture_size_; | 479 int max_texture_size_; |
480 bool reshape_called_; | 480 bool reshape_called_; |
481 int width_; | 481 int width_; |
482 int height_; | 482 int height_; |
483 float scale_factor_; | 483 float scale_factor_; |
484 TestContextSupport* test_support_; | 484 TestContextSupport* test_support_; |
485 gfx::Rect update_rect_; | 485 gfx::Rect update_rect_; |
486 UpdateType last_update_type_; | 486 UpdateType last_update_type_; |
487 GLuint64 next_insert_fence_sync_; | 487 GLuint64 next_insert_fence_sync_; |
488 gpu::SyncToken last_waited_sync_token_; | 488 gpu::SyncToken last_waited_sync_token_; |
489 int unpack_alignment_; | 489 int unpack_alignment_; |
490 | 490 |
491 unsigned bound_buffer_; | 491 unsigned bound_buffer_; |
492 TextureTargets texture_targets_; | 492 TextureTargets texture_targets_; |
493 | 493 |
494 scoped_refptr<Namespace> namespace_; | 494 scoped_refptr<Namespace> namespace_; |
495 static Namespace* shared_namespace_; | 495 static Namespace* shared_namespace_; |
496 | 496 |
497 base::WeakPtrFactory<TestWebGraphicsContext3D> weak_ptr_factory_; | 497 base::WeakPtrFactory<TestWebGraphicsContext3D> weak_ptr_factory_; |
498 }; | 498 }; |
499 | 499 |
500 } // namespace cc | 500 } // namespace cc |
501 | 501 |
502 #endif // CC_TEST_TEST_WEB_GRAPHICS_CONTEXT_3D_H_ | 502 #endif // CC_TEST_TEST_WEB_GRAPHICS_CONTEXT_3D_H_ |
OLD | NEW |