OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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 "cc/output/gl_renderer.h" | 5 #include "cc/output/gl_renderer.h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 | 8 |
9 #include "cc/base/math_util.h" | 9 #include "cc/base/math_util.h" |
10 #include "cc/output/compositor_frame_metadata.h" | 10 #include "cc/output/compositor_frame_metadata.h" |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
152 FakeOutputSurface::Create3d(TestWebGraphicsContext3D::Create()).Pass(); | 152 FakeOutputSurface::Create3d(TestWebGraphicsContext3D::Create()).Pass(); |
153 CHECK(output_surface_->BindToClient(&output_surface_client_)); | 153 CHECK(output_surface_->BindToClient(&output_surface_client_)); |
154 | 154 |
155 shared_bitmap_manager_.reset(new TestSharedBitmapManager()); | 155 shared_bitmap_manager_.reset(new TestSharedBitmapManager()); |
156 resource_provider_ = ResourceProvider::Create(output_surface_.get(), | 156 resource_provider_ = ResourceProvider::Create(output_surface_.get(), |
157 shared_bitmap_manager_.get(), | 157 shared_bitmap_manager_.get(), |
158 NULL, | 158 NULL, |
159 NULL, | 159 NULL, |
160 0, | 160 0, |
161 false, | 161 false, |
162 1, | 162 1).Pass(); |
163 false).Pass(); | |
164 renderer_ = make_scoped_ptr(new FakeRendererGL(&renderer_client_, | 163 renderer_ = make_scoped_ptr(new FakeRendererGL(&renderer_client_, |
165 &settings_, | 164 &settings_, |
166 output_surface_.get(), | 165 output_surface_.get(), |
167 resource_provider_.get())); | 166 resource_provider_.get())); |
168 } | 167 } |
169 | 168 |
170 void SwapBuffers() { renderer_->SwapBuffers(CompositorFrameMetadata()); } | 169 void SwapBuffers() { renderer_->SwapBuffers(CompositorFrameMetadata()); } |
171 | 170 |
172 LayerTreeSettings settings_; | 171 LayerTreeSettings settings_; |
173 FakeOutputSurfaceClient output_surface_client_; | 172 FakeOutputSurfaceClient output_surface_client_; |
(...skipping 15 matching lines...) Expand all Loading... |
189 output_surface_ = FakeOutputSurface::Create3d().Pass(); | 188 output_surface_ = FakeOutputSurface::Create3d().Pass(); |
190 CHECK(output_surface_->BindToClient(&output_surface_client_)); | 189 CHECK(output_surface_->BindToClient(&output_surface_client_)); |
191 | 190 |
192 shared_bitmap_manager_.reset(new TestSharedBitmapManager()); | 191 shared_bitmap_manager_.reset(new TestSharedBitmapManager()); |
193 resource_provider_ = ResourceProvider::Create(output_surface_.get(), | 192 resource_provider_ = ResourceProvider::Create(output_surface_.get(), |
194 shared_bitmap_manager_.get(), | 193 shared_bitmap_manager_.get(), |
195 NULL, | 194 NULL, |
196 NULL, | 195 NULL, |
197 0, | 196 0, |
198 false, | 197 false, |
199 1, | 198 1).Pass(); |
200 false).Pass(); | |
201 renderer_.reset(new FakeRendererGL(&renderer_client_, | 199 renderer_.reset(new FakeRendererGL(&renderer_client_, |
202 &settings_, | 200 &settings_, |
203 output_surface_.get(), | 201 output_surface_.get(), |
204 resource_provider_.get())); | 202 resource_provider_.get())); |
205 } | 203 } |
206 | 204 |
207 void TestRenderPassProgram(TexCoordPrecision precision) { | 205 void TestRenderPassProgram(TexCoordPrecision precision) { |
208 EXPECT_PROGRAM_VALID(&renderer_->render_pass_program_[precision]); | 206 EXPECT_PROGRAM_VALID(&renderer_->render_pass_program_[precision]); |
209 EXPECT_EQ(renderer_->render_pass_program_[precision].program(), | 207 EXPECT_EQ(renderer_->render_pass_program_[precision].program(), |
210 renderer_->program_shadow_); | 208 renderer_->program_shadow_); |
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
483 | 481 |
484 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( | 482 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( |
485 new TestSharedBitmapManager()); | 483 new TestSharedBitmapManager()); |
486 scoped_ptr<ResourceProvider> resource_provider( | 484 scoped_ptr<ResourceProvider> resource_provider( |
487 ResourceProvider::Create(output_surface.get(), | 485 ResourceProvider::Create(output_surface.get(), |
488 shared_bitmap_manager.get(), | 486 shared_bitmap_manager.get(), |
489 NULL, | 487 NULL, |
490 NULL, | 488 NULL, |
491 0, | 489 0, |
492 false, | 490 false, |
493 1, | 491 1)); |
494 false)); | |
495 | 492 |
496 LayerTreeSettings settings; | 493 LayerTreeSettings settings; |
497 FakeRendererClient renderer_client; | 494 FakeRendererClient renderer_client; |
498 FakeRendererGL renderer(&renderer_client, | 495 FakeRendererGL renderer(&renderer_client, |
499 &settings, | 496 &settings, |
500 output_surface.get(), | 497 output_surface.get(), |
501 resource_provider.get()); | 498 resource_provider.get()); |
502 } | 499 } |
503 | 500 |
504 class LoseContextOnFirstGetContext : public TestWebGraphicsContext3D { | 501 class LoseContextOnFirstGetContext : public TestWebGraphicsContext3D { |
(...skipping 21 matching lines...) Expand all Loading... |
526 | 523 |
527 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( | 524 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( |
528 new TestSharedBitmapManager()); | 525 new TestSharedBitmapManager()); |
529 scoped_ptr<ResourceProvider> resource_provider( | 526 scoped_ptr<ResourceProvider> resource_provider( |
530 ResourceProvider::Create(output_surface.get(), | 527 ResourceProvider::Create(output_surface.get(), |
531 shared_bitmap_manager.get(), | 528 shared_bitmap_manager.get(), |
532 NULL, | 529 NULL, |
533 NULL, | 530 NULL, |
534 0, | 531 0, |
535 false, | 532 false, |
536 1, | 533 1)); |
537 false)); | |
538 | 534 |
539 LayerTreeSettings settings; | 535 LayerTreeSettings settings; |
540 FakeRendererClient renderer_client; | 536 FakeRendererClient renderer_client; |
541 FakeRendererGL renderer(&renderer_client, | 537 FakeRendererGL renderer(&renderer_client, |
542 &settings, | 538 &settings, |
543 output_surface.get(), | 539 output_surface.get(), |
544 resource_provider.get()); | 540 resource_provider.get()); |
545 } | 541 } |
546 | 542 |
547 class ClearCountingContext : public TestWebGraphicsContext3D { | 543 class ClearCountingContext : public TestWebGraphicsContext3D { |
(...skipping 18 matching lines...) Expand all Loading... |
566 | 562 |
567 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( | 563 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( |
568 new TestSharedBitmapManager()); | 564 new TestSharedBitmapManager()); |
569 scoped_ptr<ResourceProvider> resource_provider( | 565 scoped_ptr<ResourceProvider> resource_provider( |
570 ResourceProvider::Create(output_surface.get(), | 566 ResourceProvider::Create(output_surface.get(), |
571 shared_bitmap_manager.get(), | 567 shared_bitmap_manager.get(), |
572 NULL, | 568 NULL, |
573 NULL, | 569 NULL, |
574 0, | 570 0, |
575 false, | 571 false, |
576 1, | 572 1)); |
577 false)); | |
578 | 573 |
579 LayerTreeSettings settings; | 574 LayerTreeSettings settings; |
580 FakeRendererClient renderer_client; | 575 FakeRendererClient renderer_client; |
581 FakeRendererGL renderer(&renderer_client, | 576 FakeRendererGL renderer(&renderer_client, |
582 &settings, | 577 &settings, |
583 output_surface.get(), | 578 output_surface.get(), |
584 resource_provider.get()); | 579 resource_provider.get()); |
585 | 580 |
586 gfx::Rect viewport_rect(1, 1); | 581 gfx::Rect viewport_rect(1, 1); |
587 TestRenderPass* root_pass = AddRenderPass(&render_passes_in_draw_order_, | 582 TestRenderPass* root_pass = AddRenderPass(&render_passes_in_draw_order_, |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
619 | 614 |
620 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( | 615 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( |
621 new TestSharedBitmapManager()); | 616 new TestSharedBitmapManager()); |
622 scoped_ptr<ResourceProvider> resource_provider( | 617 scoped_ptr<ResourceProvider> resource_provider( |
623 ResourceProvider::Create(output_surface.get(), | 618 ResourceProvider::Create(output_surface.get(), |
624 shared_bitmap_manager.get(), | 619 shared_bitmap_manager.get(), |
625 NULL, | 620 NULL, |
626 NULL, | 621 NULL, |
627 0, | 622 0, |
628 false, | 623 false, |
629 1, | 624 1)); |
630 false)); | |
631 | 625 |
632 LayerTreeSettings settings; | 626 LayerTreeSettings settings; |
633 FakeRendererClient renderer_client; | 627 FakeRendererClient renderer_client; |
634 FakeRendererGL renderer(&renderer_client, | 628 FakeRendererGL renderer(&renderer_client, |
635 &settings, | 629 &settings, |
636 output_surface.get(), | 630 output_surface.get(), |
637 resource_provider.get()); | 631 resource_provider.get()); |
638 | 632 |
639 gfx::Rect viewport_rect(1, 1); | 633 gfx::Rect viewport_rect(1, 1); |
640 TestRenderPass* root_pass = AddRenderPass(&render_passes_in_draw_order_, | 634 TestRenderPass* root_pass = AddRenderPass(&render_passes_in_draw_order_, |
(...skipping 24 matching lines...) Expand all Loading... |
665 | 659 |
666 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( | 660 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( |
667 new TestSharedBitmapManager()); | 661 new TestSharedBitmapManager()); |
668 scoped_ptr<ResourceProvider> resource_provider( | 662 scoped_ptr<ResourceProvider> resource_provider( |
669 ResourceProvider::Create(output_surface.get(), | 663 ResourceProvider::Create(output_surface.get(), |
670 shared_bitmap_manager.get(), | 664 shared_bitmap_manager.get(), |
671 NULL, | 665 NULL, |
672 NULL, | 666 NULL, |
673 0, | 667 0, |
674 false, | 668 false, |
675 1, | 669 1)); |
676 false)); | |
677 | 670 |
678 LayerTreeSettings settings; | 671 LayerTreeSettings settings; |
679 FakeRendererClient renderer_client; | 672 FakeRendererClient renderer_client; |
680 FakeRendererGL renderer(&renderer_client, | 673 FakeRendererGL renderer(&renderer_client, |
681 &settings, | 674 &settings, |
682 output_surface.get(), | 675 output_surface.get(), |
683 resource_provider.get()); | 676 resource_provider.get()); |
684 | 677 |
685 gfx::Rect viewport_rect(1, 1); | 678 gfx::Rect viewport_rect(1, 1); |
686 AddRenderPass(&render_passes_in_draw_order_, | 679 AddRenderPass(&render_passes_in_draw_order_, |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
753 | 746 |
754 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( | 747 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( |
755 new TestSharedBitmapManager()); | 748 new TestSharedBitmapManager()); |
756 scoped_ptr<ResourceProvider> resource_provider( | 749 scoped_ptr<ResourceProvider> resource_provider( |
757 ResourceProvider::Create(output_surface.get(), | 750 ResourceProvider::Create(output_surface.get(), |
758 shared_bitmap_manager.get(), | 751 shared_bitmap_manager.get(), |
759 NULL, | 752 NULL, |
760 NULL, | 753 NULL, |
761 0, | 754 0, |
762 false, | 755 false, |
763 1, | 756 1)); |
764 false)); | |
765 | 757 |
766 LayerTreeSettings settings; | 758 LayerTreeSettings settings; |
767 FakeRendererClient renderer_client; | 759 FakeRendererClient renderer_client; |
768 FakeRendererGL renderer(&renderer_client, | 760 FakeRendererGL renderer(&renderer_client, |
769 &settings, | 761 &settings, |
770 output_surface.get(), | 762 output_surface.get(), |
771 resource_provider.get()); | 763 resource_provider.get()); |
772 | 764 |
773 gfx::Rect viewport_rect(1, 1); | 765 gfx::Rect viewport_rect(1, 1); |
774 AddRenderPass(&render_passes_in_draw_order_, | 766 AddRenderPass(&render_passes_in_draw_order_, |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
825 | 817 |
826 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( | 818 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( |
827 new TestSharedBitmapManager()); | 819 new TestSharedBitmapManager()); |
828 scoped_ptr<ResourceProvider> resource_provider( | 820 scoped_ptr<ResourceProvider> resource_provider( |
829 ResourceProvider::Create(output_surface.get(), | 821 ResourceProvider::Create(output_surface.get(), |
830 shared_bitmap_manager.get(), | 822 shared_bitmap_manager.get(), |
831 NULL, | 823 NULL, |
832 NULL, | 824 NULL, |
833 0, | 825 0, |
834 false, | 826 false, |
835 1, | 827 1)); |
836 false)); | |
837 | 828 |
838 LayerTreeSettings settings; | 829 LayerTreeSettings settings; |
839 FakeRendererClient renderer_client; | 830 FakeRendererClient renderer_client; |
840 FakeRendererGL renderer(&renderer_client, | 831 FakeRendererGL renderer(&renderer_client, |
841 &settings, | 832 &settings, |
842 output_surface.get(), | 833 output_surface.get(), |
843 resource_provider.get()); | 834 resource_provider.get()); |
844 | 835 |
845 // During initialization we are allowed to set any texture parameters. | 836 // During initialization we are allowed to set any texture parameters. |
846 EXPECT_CALL(*context, texParameteri(_, _, _)).Times(AnyNumber()); | 837 EXPECT_CALL(*context, texParameteri(_, _, _)).Times(AnyNumber()); |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
917 | 908 |
918 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( | 909 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( |
919 new TestSharedBitmapManager()); | 910 new TestSharedBitmapManager()); |
920 scoped_ptr<ResourceProvider> resource_provider( | 911 scoped_ptr<ResourceProvider> resource_provider( |
921 ResourceProvider::Create(output_surface.get(), | 912 ResourceProvider::Create(output_surface.get(), |
922 shared_bitmap_manager.get(), | 913 shared_bitmap_manager.get(), |
923 NULL, | 914 NULL, |
924 NULL, | 915 NULL, |
925 0, | 916 0, |
926 false, | 917 false, |
927 1, | 918 1)); |
928 false)); | |
929 | 919 |
930 LayerTreeSettings settings; | 920 LayerTreeSettings settings; |
931 settings.should_clear_root_render_pass = false; | 921 settings.should_clear_root_render_pass = false; |
932 | 922 |
933 FakeRendererClient renderer_client; | 923 FakeRendererClient renderer_client; |
934 FakeRendererGL renderer(&renderer_client, | 924 FakeRendererGL renderer(&renderer_client, |
935 &settings, | 925 &settings, |
936 output_surface.get(), | 926 output_surface.get(), |
937 resource_provider.get()); | 927 resource_provider.get()); |
938 | 928 |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1016 | 1006 |
1017 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( | 1007 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( |
1018 new TestSharedBitmapManager()); | 1008 new TestSharedBitmapManager()); |
1019 scoped_ptr<ResourceProvider> resource_provider( | 1009 scoped_ptr<ResourceProvider> resource_provider( |
1020 ResourceProvider::Create(output_surface.get(), | 1010 ResourceProvider::Create(output_surface.get(), |
1021 shared_bitmap_manager.get(), | 1011 shared_bitmap_manager.get(), |
1022 NULL, | 1012 NULL, |
1023 NULL, | 1013 NULL, |
1024 0, | 1014 0, |
1025 false, | 1015 false, |
1026 1, | 1016 1)); |
1027 false)); | |
1028 | 1017 |
1029 LayerTreeSettings settings; | 1018 LayerTreeSettings settings; |
1030 FakeRendererClient renderer_client; | 1019 FakeRendererClient renderer_client; |
1031 FakeRendererGL renderer(&renderer_client, | 1020 FakeRendererGL renderer(&renderer_client, |
1032 &settings, | 1021 &settings, |
1033 output_surface.get(), | 1022 output_surface.get(), |
1034 resource_provider.get()); | 1023 resource_provider.get()); |
1035 EXPECT_FALSE(renderer.Capabilities().using_partial_swap); | 1024 EXPECT_FALSE(renderer.Capabilities().using_partial_swap); |
1036 | 1025 |
1037 gfx::Rect viewport_rect(1, 1); | 1026 gfx::Rect viewport_rect(1, 1); |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1115 | 1104 |
1116 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( | 1105 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( |
1117 new TestSharedBitmapManager()); | 1106 new TestSharedBitmapManager()); |
1118 scoped_ptr<ResourceProvider> resource_provider( | 1107 scoped_ptr<ResourceProvider> resource_provider( |
1119 ResourceProvider::Create(output_surface.get(), | 1108 ResourceProvider::Create(output_surface.get(), |
1120 shared_bitmap_manager.get(), | 1109 shared_bitmap_manager.get(), |
1121 NULL, | 1110 NULL, |
1122 NULL, | 1111 NULL, |
1123 0, | 1112 0, |
1124 false, | 1113 false, |
1125 1, | 1114 1)); |
1126 false)); | |
1127 | 1115 |
1128 LayerTreeSettings settings; | 1116 LayerTreeSettings settings; |
1129 settings.partial_swap_enabled = true; | 1117 settings.partial_swap_enabled = true; |
1130 FakeRendererClient renderer_client; | 1118 FakeRendererClient renderer_client; |
1131 FakeRendererGL renderer(&renderer_client, | 1119 FakeRendererGL renderer(&renderer_client, |
1132 &settings, | 1120 &settings, |
1133 output_surface.get(), | 1121 output_surface.get(), |
1134 resource_provider.get()); | 1122 resource_provider.get()); |
1135 EXPECT_TRUE(renderer.Capabilities().using_partial_swap); | 1123 EXPECT_TRUE(renderer.Capabilities().using_partial_swap); |
1136 | 1124 |
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1307 | 1295 |
1308 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( | 1296 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( |
1309 new TestSharedBitmapManager()); | 1297 new TestSharedBitmapManager()); |
1310 scoped_ptr<ResourceProvider> resource_provider( | 1298 scoped_ptr<ResourceProvider> resource_provider( |
1311 ResourceProvider::Create(output_surface.get(), | 1299 ResourceProvider::Create(output_surface.get(), |
1312 shared_bitmap_manager.get(), | 1300 shared_bitmap_manager.get(), |
1313 NULL, | 1301 NULL, |
1314 NULL, | 1302 NULL, |
1315 0, | 1303 0, |
1316 false, | 1304 false, |
1317 1, | 1305 1)); |
1318 false)); | |
1319 | 1306 |
1320 LayerTreeSettings settings; | 1307 LayerTreeSettings settings; |
1321 FakeRendererClient renderer_client; | 1308 FakeRendererClient renderer_client; |
1322 FakeRendererGL renderer(&renderer_client, | 1309 FakeRendererGL renderer(&renderer_client, |
1323 &settings, | 1310 &settings, |
1324 output_surface.get(), | 1311 output_surface.get(), |
1325 resource_provider.get()); | 1312 resource_provider.get()); |
1326 EXPECT_FALSE(renderer.Capabilities().using_partial_swap); | 1313 EXPECT_FALSE(renderer.Capabilities().using_partial_swap); |
1327 | 1314 |
1328 gfx::Rect device_viewport_rect(10, 10, 100, 100); | 1315 gfx::Rect device_viewport_rect(10, 10, 100, 100); |
(...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1687 FakeOutputSurfaceClient output_surface_client_; | 1674 FakeOutputSurfaceClient output_surface_client_; |
1688 CHECK(output_surface_.BindToClient(&output_surface_client_)); | 1675 CHECK(output_surface_.BindToClient(&output_surface_client_)); |
1689 | 1676 |
1690 shared_bitmap_manager_.reset(new TestSharedBitmapManager()); | 1677 shared_bitmap_manager_.reset(new TestSharedBitmapManager()); |
1691 resource_provider_ = ResourceProvider::Create(&output_surface_, | 1678 resource_provider_ = ResourceProvider::Create(&output_surface_, |
1692 shared_bitmap_manager_.get(), | 1679 shared_bitmap_manager_.get(), |
1693 NULL, | 1680 NULL, |
1694 NULL, | 1681 NULL, |
1695 0, | 1682 0, |
1696 false, | 1683 false, |
1697 1, | 1684 1).Pass(); |
1698 false).Pass(); | |
1699 | 1685 |
1700 renderer_.reset(new FakeRendererGL(&renderer_client_, | 1686 renderer_.reset(new FakeRendererGL(&renderer_client_, |
1701 &settings_, | 1687 &settings_, |
1702 &output_surface_, | 1688 &output_surface_, |
1703 resource_provider_.get())); | 1689 resource_provider_.get())); |
1704 } | 1690 } |
1705 | 1691 |
1706 void SwapBuffers() { renderer_->SwapBuffers(CompositorFrameMetadata()); } | 1692 void SwapBuffers() { renderer_->SwapBuffers(CompositorFrameMetadata()); } |
1707 | 1693 |
1708 void DrawFrame(float device_scale_factor, | 1694 void DrawFrame(float device_scale_factor, |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1850 base::MessageLoop::current()->Run(); | 1836 base::MessageLoop::current()->Run(); |
1851 | 1837 |
1852 // The sync point should have happened. | 1838 // The sync point should have happened. |
1853 EXPECT_EQ(1, sync_point_callback_count); | 1839 EXPECT_EQ(1, sync_point_callback_count); |
1854 EXPECT_EQ(1, other_callback_count); | 1840 EXPECT_EQ(1, other_callback_count); |
1855 } | 1841 } |
1856 #endif // OS_ANDROID | 1842 #endif // OS_ANDROID |
1857 | 1843 |
1858 } // namespace | 1844 } // namespace |
1859 } // namespace cc | 1845 } // namespace cc |
OLD | NEW |