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

Side by Side Diff: gpu/command_buffer/service/renderbuffer_manager_unittest.cc

Issue 8341128: Defer clearing textures and renderbuffers (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix one more unit test Created 9 years, 1 month 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
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/service/renderbuffer_manager.h" 5 #include "gpu/command_buffer/service/renderbuffer_manager.h"
6 6
7 #include "gpu/command_buffer/common/gl_mock.h" 7 #include "gpu/command_buffer/common/gl_mock.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 9
10 namespace gpu { 10 namespace gpu {
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 const GLint RenderbufferManagerTest::kMaxSize; 43 const GLint RenderbufferManagerTest::kMaxSize;
44 const GLint RenderbufferManagerTest::kMaxSamples; 44 const GLint RenderbufferManagerTest::kMaxSamples;
45 #endif 45 #endif
46 46
47 TEST_F(RenderbufferManagerTest, Basic) { 47 TEST_F(RenderbufferManagerTest, Basic) {
48 const GLuint kClient1Id = 1; 48 const GLuint kClient1Id = 1;
49 const GLuint kService1Id = 11; 49 const GLuint kService1Id = 11;
50 const GLuint kClient2Id = 2; 50 const GLuint kClient2Id = 2;
51 EXPECT_EQ(kMaxSize, manager_.max_renderbuffer_size()); 51 EXPECT_EQ(kMaxSize, manager_.max_renderbuffer_size());
52 EXPECT_EQ(kMaxSamples, manager_.max_samples()); 52 EXPECT_EQ(kMaxSamples, manager_.max_samples());
53 EXPECT_FALSE(manager_.HaveUnclearedRenderbuffers());
53 // Check we can create renderbuffer. 54 // Check we can create renderbuffer.
54 manager_.CreateRenderbufferInfo(kClient1Id, kService1Id); 55 manager_.CreateRenderbufferInfo(kClient1Id, kService1Id);
55 // Check renderbuffer got created. 56 // Check renderbuffer got created.
56 RenderbufferManager::RenderbufferInfo* info1 = 57 RenderbufferManager::RenderbufferInfo* info1 =
57 manager_.GetRenderbufferInfo(kClient1Id); 58 manager_.GetRenderbufferInfo(kClient1Id);
58 ASSERT_TRUE(info1 != NULL); 59 ASSERT_TRUE(info1 != NULL);
60 EXPECT_FALSE(manager_.HaveUnclearedRenderbuffers());
59 GLuint client_id = 0; 61 GLuint client_id = 0;
60 EXPECT_TRUE(manager_.GetClientId(info1->service_id(), &client_id)); 62 EXPECT_TRUE(manager_.GetClientId(info1->service_id(), &client_id));
61 EXPECT_EQ(kClient1Id, client_id); 63 EXPECT_EQ(kClient1Id, client_id);
62 // Check we get nothing for a non-existent renderbuffer. 64 // Check we get nothing for a non-existent renderbuffer.
63 EXPECT_TRUE(manager_.GetRenderbufferInfo(kClient2Id) == NULL); 65 EXPECT_TRUE(manager_.GetRenderbufferInfo(kClient2Id) == NULL);
64 // Check trying to a remove non-existent renderbuffers does not crash. 66 // Check trying to a remove non-existent renderbuffers does not crash.
65 manager_.RemoveRenderbufferInfo(kClient2Id); 67 manager_.RemoveRenderbufferInfo(kClient2Id);
66 // Check we can't get the renderbuffer after we remove it. 68 // Check we can't get the renderbuffer after we remove it.
67 manager_.RemoveRenderbufferInfo(kClient1Id); 69 manager_.RemoveRenderbufferInfo(kClient1Id);
68 EXPECT_TRUE(manager_.GetRenderbufferInfo(kClient1Id) == NULL); 70 EXPECT_TRUE(manager_.GetRenderbufferInfo(kClient1Id) == NULL);
71 EXPECT_FALSE(manager_.HaveUnclearedRenderbuffers());
69 } 72 }
70 73
71 TEST_F(RenderbufferManagerTest, Destroy) { 74 TEST_F(RenderbufferManagerTest, Destroy) {
72 const GLuint kClient1Id = 1; 75 const GLuint kClient1Id = 1;
73 const GLuint kService1Id = 11; 76 const GLuint kService1Id = 11;
74 // Check we can create renderbuffer. 77 // Check we can create renderbuffer.
75 manager_.CreateRenderbufferInfo(kClient1Id, kService1Id); 78 manager_.CreateRenderbufferInfo(kClient1Id, kService1Id);
76 // Check renderbuffer got created. 79 // Check renderbuffer got created.
77 RenderbufferManager::RenderbufferInfo* info1 = 80 RenderbufferManager::RenderbufferInfo* info1 =
78 manager_.GetRenderbufferInfo(kClient1Id); 81 manager_.GetRenderbufferInfo(kClient1Id);
(...skipping 13 matching lines...) Expand all
92 manager_.CreateRenderbufferInfo(kClient1Id, kService1Id); 95 manager_.CreateRenderbufferInfo(kClient1Id, kService1Id);
93 // Check renderbuffer got created. 96 // Check renderbuffer got created.
94 RenderbufferManager::RenderbufferInfo* info1 = 97 RenderbufferManager::RenderbufferInfo* info1 =
95 manager_.GetRenderbufferInfo(kClient1Id); 98 manager_.GetRenderbufferInfo(kClient1Id);
96 ASSERT_TRUE(info1 != NULL); 99 ASSERT_TRUE(info1 != NULL);
97 EXPECT_EQ(kService1Id, info1->service_id()); 100 EXPECT_EQ(kService1Id, info1->service_id());
98 EXPECT_EQ(0, info1->samples()); 101 EXPECT_EQ(0, info1->samples());
99 EXPECT_EQ(static_cast<GLenum>(GL_RGBA4), info1->internal_format()); 102 EXPECT_EQ(static_cast<GLenum>(GL_RGBA4), info1->internal_format());
100 EXPECT_EQ(0, info1->width()); 103 EXPECT_EQ(0, info1->width());
101 EXPECT_EQ(0, info1->height()); 104 EXPECT_EQ(0, info1->height());
102
103 EXPECT_FALSE(info1->cleared());
104 info1->set_cleared();
105 EXPECT_TRUE(info1->cleared()); 105 EXPECT_TRUE(info1->cleared());
106 106
107 // Check if we set the info it gets marked as not cleared. 107 // Check if we set the info it gets marked as not cleared.
108 const GLsizei kSamples = 4; 108 const GLsizei kSamples = 4;
109 const GLenum kFormat = GL_RGBA; 109 const GLenum kFormat = GL_RGBA;
110 const GLsizei kWidth = 128; 110 const GLsizei kWidth = 128;
111 const GLsizei kHeight = 64; 111 const GLsizei kHeight = 64;
112 info1->SetInfo(kSamples, kFormat, kWidth, kHeight); 112 manager_.SetInfo(info1, kSamples, kFormat, kWidth, kHeight);
113 EXPECT_EQ(kSamples, info1->samples()); 113 EXPECT_EQ(kSamples, info1->samples());
114 EXPECT_EQ(kFormat, info1->internal_format()); 114 EXPECT_EQ(kFormat, info1->internal_format());
115 EXPECT_EQ(kWidth, info1->width()); 115 EXPECT_EQ(kWidth, info1->width());
116 EXPECT_EQ(kHeight, info1->height()); 116 EXPECT_EQ(kHeight, info1->height());
117 EXPECT_FALSE(info1->cleared()); 117 EXPECT_FALSE(info1->cleared());
118 EXPECT_FALSE(info1->IsDeleted()); 118 EXPECT_FALSE(info1->IsDeleted());
119 EXPECT_TRUE(manager_.HaveUnclearedRenderbuffers());
120
121 manager_.SetCleared(info1);
122 EXPECT_TRUE(info1->cleared());
123 EXPECT_FALSE(manager_.HaveUnclearedRenderbuffers());
124
125 manager_.SetInfo(info1, kSamples, kFormat, kWidth, kHeight);
126 EXPECT_TRUE(manager_.HaveUnclearedRenderbuffers());
127
128 manager_.RemoveRenderbufferInfo(kClient1Id);
129 EXPECT_FALSE(manager_.HaveUnclearedRenderbuffers());
119 } 130 }
120 131
121 } // namespace gles2 132 } // namespace gles2
122 } // namespace gpu 133 } // namespace gpu
123 134
124 135
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/renderbuffer_manager.cc ('k') | gpu/command_buffer/service/texture_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698