Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: cc/trees/layer_tree_host_unittest_context.cc

Issue 126973002: Decouple cc::FakeWebGraphicsContext3D from blink::WGC3D (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « cc/trees/layer_tree_host_unittest.cc ('k') | cc/trees/layer_tree_host_unittest_copyrequest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/trees/layer_tree_host.h" 5 #include "cc/trees/layer_tree_host.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "cc/layers/content_layer.h" 8 #include "cc/layers/content_layer.h"
9 #include "cc/layers/delegated_frame_provider.h" 9 #include "cc/layers/delegated_frame_provider.h"
10 #include "cc/layers/delegated_frame_resource_collection.h" 10 #include "cc/layers/delegated_frame_resource_collection.h"
(...skipping 23 matching lines...) Expand all
34 #include "cc/test/render_pass_test_common.h" 34 #include "cc/test/render_pass_test_common.h"
35 #include "cc/test/test_context_provider.h" 35 #include "cc/test/test_context_provider.h"
36 #include "cc/test/test_web_graphics_context_3d.h" 36 #include "cc/test/test_web_graphics_context_3d.h"
37 #include "cc/trees/layer_tree_host_impl.h" 37 #include "cc/trees/layer_tree_host_impl.h"
38 #include "cc/trees/layer_tree_impl.h" 38 #include "cc/trees/layer_tree_impl.h"
39 #include "cc/trees/single_thread_proxy.h" 39 #include "cc/trees/single_thread_proxy.h"
40 #include "gpu/GLES2/gl2extchromium.h" 40 #include "gpu/GLES2/gl2extchromium.h"
41 #include "media/base/media.h" 41 #include "media/base/media.h"
42 42
43 using media::VideoFrame; 43 using media::VideoFrame;
44 using blink::WebGraphicsContext3D;
45 44
46 namespace cc { 45 namespace cc {
47 namespace { 46 namespace {
48 47
49 // These tests deal with losing the 3d graphics context. 48 // These tests deal with losing the 3d graphics context.
50 class LayerTreeHostContextTest : public LayerTreeTest { 49 class LayerTreeHostContextTest : public LayerTreeTest {
51 public: 50 public:
52 LayerTreeHostContextTest() 51 LayerTreeHostContextTest()
53 : LayerTreeTest(), 52 : LayerTreeTest(),
54 context3d_(NULL), 53 context3d_(NULL),
(...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after
419 FakeContentLayerImpl* content_impl = static_cast<FakeContentLayerImpl*>( 418 FakeContentLayerImpl* content_impl = static_cast<FakeContentLayerImpl*>(
420 host_impl->active_tree()->root_layer()->children()[0]); 419 host_impl->active_tree()->root_layer()->children()[0]);
421 // Even though the context was lost, we should have a resource. The 420 // Even though the context was lost, we should have a resource. The
422 // TestWebGraphicsContext3D ensures that this resource is created with 421 // TestWebGraphicsContext3D ensures that this resource is created with
423 // the active context. 422 // the active context.
424 EXPECT_TRUE(content_impl->HaveResourceForTileAt(0, 0)); 423 EXPECT_TRUE(content_impl->HaveResourceForTileAt(0, 0));
425 424
426 ContextProvider* contexts = host_impl->offscreen_context_provider(); 425 ContextProvider* contexts = host_impl->offscreen_context_provider();
427 if (use_surface_) { 426 if (use_surface_) {
428 ASSERT_TRUE(contexts); 427 ASSERT_TRUE(contexts);
429 EXPECT_TRUE(contexts->Context3d()); 428 EXPECT_TRUE(contexts->ContextGL());
430 // TODO(danakj): Make a fake GrContext. 429 // TODO(danakj): Make a fake GrContext.
431 // EXPECT_TRUE(contexts->GrContext()); 430 // EXPECT_TRUE(contexts->GrContext());
432 } else { 431 } else {
433 EXPECT_FALSE(contexts); 432 EXPECT_FALSE(contexts);
434 } 433 }
435 } 434 }
436 435
437 virtual void AfterTest() OVERRIDE { 436 virtual void AfterTest() OVERRIDE {
438 LayerTreeHostContextTestLostContextSucceeds::AfterTest(); 437 LayerTreeHostContextTestLostContextSucceeds::AfterTest();
439 if (use_surface_) { 438 if (use_surface_) {
(...skipping 519 matching lines...) Expand 10 before | Expand all | Expand 10 after
959 ResourceProvider::Create(child_output_surface_.get(), 958 ResourceProvider::Create(child_output_surface_.get(),
960 NULL, 959 NULL,
961 0, 960 0,
962 false, 961 false,
963 1); 962 1);
964 } 963 }
965 964
966 static void EmptyReleaseCallback(unsigned sync_point, bool lost) {} 965 static void EmptyReleaseCallback(unsigned sync_point, bool lost) {}
967 966
968 virtual void SetupTree() OVERRIDE { 967 virtual void SetupTree() OVERRIDE {
969 blink::WebGraphicsContext3D* context3d = 968 gpu::gles2::GLES2Interface* gl =
970 child_output_surface_->context_provider()->Context3d(); 969 child_output_surface_->context_provider()->ContextGL();
971 970
972 scoped_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData); 971 scoped_ptr<DelegatedFrameData> frame_data(new DelegatedFrameData);
973 972
974 scoped_ptr<TestRenderPass> pass_for_quad = TestRenderPass::Create(); 973 scoped_ptr<TestRenderPass> pass_for_quad = TestRenderPass::Create();
975 pass_for_quad->SetNew( 974 pass_for_quad->SetNew(
976 // AppendOneOfEveryQuadType() makes a RenderPass quad with this id. 975 // AppendOneOfEveryQuadType() makes a RenderPass quad with this id.
977 RenderPass::Id(2, 1), 976 RenderPass::Id(2, 1),
978 gfx::Rect(0, 0, 10, 10), 977 gfx::Rect(0, 0, 10, 10),
979 gfx::Rect(0, 0, 10, 10), 978 gfx::Rect(0, 0, 10, 10),
980 gfx::Transform()); 979 gfx::Transform());
(...skipping 16 matching lines...) Expand all
997 ResourceProvider::ResourceId resource = 996 ResourceProvider::ResourceId resource =
998 child_resource_provider_->CreateResource( 997 child_resource_provider_->CreateResource(
999 gfx::Size(4, 4), 998 gfx::Size(4, 4),
1000 GL_CLAMP_TO_EDGE, 999 GL_CLAMP_TO_EDGE,
1001 ResourceProvider::TextureUsageAny, 1000 ResourceProvider::TextureUsageAny,
1002 RGBA_8888); 1001 RGBA_8888);
1003 ResourceProvider::ScopedWriteLockGL lock(child_resource_provider_.get(), 1002 ResourceProvider::ScopedWriteLockGL lock(child_resource_provider_.get(),
1004 resource); 1003 resource);
1005 1004
1006 gpu::Mailbox mailbox; 1005 gpu::Mailbox mailbox;
1007 context3d->genMailboxCHROMIUM(mailbox.name); 1006 gl->GenMailboxCHROMIUM(mailbox.name);
1008 unsigned sync_point = context3d->insertSyncPoint(); 1007 GLuint sync_point = gl->InsertSyncPointCHROMIUM();
1009 1008
1010 scoped_refptr<Layer> root = Layer::Create(); 1009 scoped_refptr<Layer> root = Layer::Create();
1011 root->SetBounds(gfx::Size(10, 10)); 1010 root->SetBounds(gfx::Size(10, 10));
1012 root->SetAnchorPoint(gfx::PointF()); 1011 root->SetAnchorPoint(gfx::PointF());
1013 root->SetIsDrawable(true); 1012 root->SetIsDrawable(true);
1014 1013
1015 scoped_refptr<FakeDelegatedRendererLayer> delegated = 1014 scoped_refptr<FakeDelegatedRendererLayer> delegated =
1016 FakeDelegatedRendererLayer::Create(delegated_frame_provider_.get()); 1015 FakeDelegatedRendererLayer::Create(delegated_frame_provider_.get());
1017 delegated->SetBounds(gfx::Size(10, 10)); 1016 delegated->SetBounds(gfx::Size(10, 10));
1018 delegated->SetAnchorPoint(gfx::PointF()); 1017 delegated->SetAnchorPoint(gfx::PointF());
(...skipping 873 matching lines...) Expand 10 before | Expand all | Expand 10 after
1892 ui_resource_.reset(); 1891 ui_resource_.reset();
1893 EndTest(); 1892 EndTest();
1894 break; 1893 break;
1895 case 4: 1894 case 4:
1896 NOTREACHED(); 1895 NOTREACHED();
1897 } 1896 }
1898 } 1897 }
1899 1898
1900 virtual void DidSetVisibleOnImplTree(LayerTreeHostImpl* impl, 1899 virtual void DidSetVisibleOnImplTree(LayerTreeHostImpl* impl,
1901 bool visible) OVERRIDE { 1900 bool visible) OVERRIDE {
1902 TestWebGraphicsContext3D* context = static_cast<TestWebGraphicsContext3D*>( 1901 TestWebGraphicsContext3D* context = static_cast<TestContextProvider*>(
1903 impl->output_surface()->context_provider()->Context3d()); 1902 impl->output_surface()->context_provider().get())->TestContext3d();
1904 if (!visible) { 1903 if (!visible) {
1905 // All resources should have been evicted. 1904 // All resources should have been evicted.
1906 ASSERT_EQ(0u, context->NumTextures()); 1905 ASSERT_EQ(0u, context->NumTextures());
1907 EXPECT_EQ(0u, impl->ResourceIdForUIResource(ui_resource_->id())); 1906 EXPECT_EQ(0u, impl->ResourceIdForUIResource(ui_resource_->id()));
1908 EXPECT_EQ(2, ui_resource_->resource_create_count); 1907 EXPECT_EQ(2, ui_resource_->resource_create_count);
1909 EXPECT_EQ(1, ui_resource_->lost_resource_count); 1908 EXPECT_EQ(1, ui_resource_->lost_resource_count);
1910 // Drawing is disabled both because of the evicted resources and 1909 // Drawing is disabled both because of the evicted resources and
1911 // because the renderer is not visible. 1910 // because the renderer is not visible.
1912 EXPECT_FALSE(impl->CanDraw()); 1911 EXPECT_FALSE(impl->CanDraw());
1913 // Make the renderer visible again. 1912 // Make the renderer visible again.
1914 PostSetVisibleToMainThread(true); 1913 PostSetVisibleToMainThread(true);
1915 } 1914 }
1916 } 1915 }
1917 1916
1918 virtual void StepCompleteOnImplThread(LayerTreeHostImpl* impl) OVERRIDE { 1917 virtual void StepCompleteOnImplThread(LayerTreeHostImpl* impl) OVERRIDE {
1919 TestWebGraphicsContext3D* context = static_cast<TestWebGraphicsContext3D*>( 1918 TestWebGraphicsContext3D* context = static_cast<TestContextProvider*>(
1920 impl->output_surface()->context_provider()->Context3d()); 1919 impl->output_surface()->context_provider().get())->TestContext3d();
1921 LayerTreeHostContextTest::CommitCompleteOnThread(impl); 1920 LayerTreeHostContextTest::CommitCompleteOnThread(impl);
1922 switch (time_step_) { 1921 switch (time_step_) {
1923 case 1: 1922 case 1:
1924 // The resource should have been created on LTHI after the commit. 1923 // The resource should have been created on LTHI after the commit.
1925 ASSERT_EQ(1u, context->NumTextures()); 1924 ASSERT_EQ(1u, context->NumTextures());
1926 EXPECT_NE(0u, impl->ResourceIdForUIResource(ui_resource_->id())); 1925 EXPECT_NE(0u, impl->ResourceIdForUIResource(ui_resource_->id()));
1927 EXPECT_EQ(1, ui_resource_->resource_create_count); 1926 EXPECT_EQ(1, ui_resource_->resource_create_count);
1928 EXPECT_EQ(0, ui_resource_->lost_resource_count); 1927 EXPECT_EQ(0, ui_resource_->lost_resource_count);
1929 EXPECT_TRUE(impl->CanDraw()); 1928 EXPECT_TRUE(impl->CanDraw());
1930 // Evict all UI resources. This will trigger a commit. 1929 // Evict all UI resources. This will trigger a commit.
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
2022 protected: 2021 protected:
2023 FakeContentLayerClient client_; 2022 FakeContentLayerClient client_;
2024 scoped_refptr<FakeContentLayer> layer_; 2023 scoped_refptr<FakeContentLayer> layer_;
2025 int num_commits_; 2024 int num_commits_;
2026 }; 2025 };
2027 2026
2028 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostContextTestSurfaceCreateCallback); 2027 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostContextTestSurfaceCreateCallback);
2029 2028
2030 } // namespace 2029 } // namespace
2031 } // namespace cc 2030 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_unittest.cc ('k') | cc/trees/layer_tree_host_unittest_copyrequest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698