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

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

Issue 12326146: Refactor/Rename a bunch of GPU stuff (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 10 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 | « gpu/command_buffer/service/vertex_attrib_manager.cc ('k') | gpu/demos/framework/window.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 (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/service/vertex_attrib_manager.h" 5 #include "gpu/command_buffer/service/vertex_attrib_manager.h"
6 6
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "gpu/command_buffer/service/feature_info.h" 8 #include "gpu/command_buffer/service/feature_info.h"
9 #include "gpu/command_buffer/service/test_helper.h" 9 #include "gpu/command_buffer/service/test_helper.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 } 42 }
43 43
44 virtual void TearDown() { 44 virtual void TearDown() {
45 manager_ = NULL; 45 manager_ = NULL;
46 ::gfx::GLInterface::SetGLInterface(NULL); 46 ::gfx::GLInterface::SetGLInterface(NULL);
47 gl_.reset(); 47 gl_.reset();
48 } 48 }
49 49
50 // Use StrictMock to make 100% sure we know how GL will be called. 50 // Use StrictMock to make 100% sure we know how GL will be called.
51 scoped_ptr< ::testing::StrictMock< ::gfx::MockGLInterface> > gl_; 51 scoped_ptr< ::testing::StrictMock< ::gfx::MockGLInterface> > gl_;
52 VertexAttribManager::Ref manager_; 52 scoped_refptr<VertexAttribManager> manager_;
53 }; 53 };
54 54
55 // GCC requires these declarations, but MSVC requires they not be present 55 // GCC requires these declarations, but MSVC requires they not be present
56 #ifndef COMPILER_MSVC 56 #ifndef COMPILER_MSVC
57 const uint32 VertexAttribManagerTest::kNumVertexAttribs; 57 const uint32 VertexAttribManagerTest::kNumVertexAttribs;
58 #endif 58 #endif
59 59
60 TEST_F(VertexAttribManagerTest, Basic) { 60 TEST_F(VertexAttribManagerTest, Basic) {
61 EXPECT_TRUE(manager_->GetVertexAttribInfo(kNumVertexAttribs) == NULL); 61 EXPECT_TRUE(manager_->GetVertexAttrib(kNumVertexAttribs) == NULL);
62 EXPECT_FALSE(manager_->HaveFixedAttribs()); 62 EXPECT_FALSE(manager_->HaveFixedAttribs());
63 63
64 const VertexAttribManager::VertexAttribInfoList& infos = 64 const VertexAttribManager::VertexAttribInfoList& infos =
65 manager_->GetEnabledVertexAttribInfos(); 65 manager_->GetEnabledVertexAttribInfos();
66 EXPECT_EQ(0u, infos.size()); 66 EXPECT_EQ(0u, infos.size());
67 67
68 for (uint32 ii = 0; ii < kNumVertexAttribs; ii += kNumVertexAttribs - 1) { 68 for (uint32 ii = 0; ii < kNumVertexAttribs; ii += kNumVertexAttribs - 1) {
69 VertexAttribManager::VertexAttribInfo* info = 69 VertexAttrib* info =
70 manager_->GetVertexAttribInfo(ii); 70 manager_->GetVertexAttrib(ii);
71 ASSERT_TRUE(info != NULL); 71 ASSERT_TRUE(info != NULL);
72 EXPECT_EQ(ii, info->index()); 72 EXPECT_EQ(ii, info->index());
73 EXPECT_TRUE(info->buffer() == NULL); 73 EXPECT_TRUE(info->buffer() == NULL);
74 EXPECT_EQ(0, info->offset()); 74 EXPECT_EQ(0, info->offset());
75 EXPECT_EQ(4, info->size()); 75 EXPECT_EQ(4, info->size());
76 EXPECT_EQ(static_cast<GLenum>(GL_FLOAT), info->type()); 76 EXPECT_EQ(static_cast<GLenum>(GL_FLOAT), info->type());
77 EXPECT_EQ(GL_FALSE, info->normalized()); 77 EXPECT_EQ(GL_FALSE, info->normalized());
78 EXPECT_EQ(0, info->gl_stride()); 78 EXPECT_EQ(0, info->gl_stride());
79 EXPECT_FALSE(info->enabled()); 79 EXPECT_FALSE(info->enabled());
80 manager_->Enable(ii, true); 80 manager_->Enable(ii, true);
81 EXPECT_TRUE(info->enabled()); 81 EXPECT_TRUE(info->enabled());
82 } 82 }
83 } 83 }
84 84
85 TEST_F(VertexAttribManagerTest, Enable) { 85 TEST_F(VertexAttribManagerTest, Enable) {
86 const VertexAttribManager::VertexAttribInfoList& infos = 86 const VertexAttribManager::VertexAttribInfoList& infos =
87 manager_->GetEnabledVertexAttribInfos(); 87 manager_->GetEnabledVertexAttribInfos();
88 88
89 VertexAttribManager::VertexAttribInfo* info1 = 89 VertexAttrib* info1 =
90 manager_->GetVertexAttribInfo(1); 90 manager_->GetVertexAttrib(1);
91 VertexAttribManager::VertexAttribInfo* info2 = 91 VertexAttrib* info2 =
92 manager_->GetVertexAttribInfo(3); 92 manager_->GetVertexAttrib(3);
93 93
94 manager_->Enable(1, true); 94 manager_->Enable(1, true);
95 ASSERT_EQ(1u, infos.size()); 95 ASSERT_EQ(1u, infos.size());
96 EXPECT_TRUE(info1->enabled()); 96 EXPECT_TRUE(info1->enabled());
97 manager_->Enable(3, true); 97 manager_->Enable(3, true);
98 ASSERT_EQ(2u, infos.size()); 98 ASSERT_EQ(2u, infos.size());
99 EXPECT_TRUE(info2->enabled()); 99 EXPECT_TRUE(info2->enabled());
100 100
101 manager_->Enable(1, false); 101 manager_->Enable(1, false);
102 ASSERT_EQ(1u, infos.size()); 102 ASSERT_EQ(1u, infos.size());
103 EXPECT_FALSE(info1->enabled()); 103 EXPECT_FALSE(info1->enabled());
104 104
105 manager_->Enable(3, false); 105 manager_->Enable(3, false);
106 ASSERT_EQ(0u, infos.size()); 106 ASSERT_EQ(0u, infos.size());
107 EXPECT_FALSE(info2->enabled()); 107 EXPECT_FALSE(info2->enabled());
108 } 108 }
109 109
110 TEST_F(VertexAttribManagerTest, SetAttribInfo) { 110 TEST_F(VertexAttribManagerTest, SetAttribInfo) {
111 BufferManager buffer_manager(NULL); 111 BufferManager buffer_manager(NULL);
112 buffer_manager.CreateBufferInfo(1, 2); 112 buffer_manager.CreateBuffer(1, 2);
113 BufferManager::BufferInfo* buffer = buffer_manager.GetBufferInfo(1); 113 BufferManager::Buffer* buffer = buffer_manager.GetBuffer(1);
114 ASSERT_TRUE(buffer != NULL); 114 ASSERT_TRUE(buffer != NULL);
115 115
116 VertexAttribManager::VertexAttribInfo* info = 116 VertexAttrib* info =
117 manager_->GetVertexAttribInfo(1); 117 manager_->GetVertexAttrib(1);
118 118
119 manager_->SetAttribInfo(1, buffer, 3, GL_SHORT, GL_TRUE, 32, 32, 4); 119 manager_->SetAttribInfo(1, buffer, 3, GL_SHORT, GL_TRUE, 32, 32, 4);
120 120
121 EXPECT_EQ(buffer, info->buffer()); 121 EXPECT_EQ(buffer, info->buffer());
122 EXPECT_EQ(4, info->offset()); 122 EXPECT_EQ(4, info->offset());
123 EXPECT_EQ(3, info->size()); 123 EXPECT_EQ(3, info->size());
124 EXPECT_EQ(static_cast<GLenum>(GL_SHORT), info->type()); 124 EXPECT_EQ(static_cast<GLenum>(GL_SHORT), info->type());
125 EXPECT_EQ(GL_TRUE, info->normalized()); 125 EXPECT_EQ(GL_TRUE, info->normalized());
126 EXPECT_EQ(32, info->gl_stride()); 126 EXPECT_EQ(32, info->gl_stride());
127 127
(...skipping 10 matching lines...) Expand all
138 manager_->SetAttribInfo(3, NULL, 4, GL_FIXED, GL_FALSE, 0, 16, 0); 138 manager_->SetAttribInfo(3, NULL, 4, GL_FIXED, GL_FALSE, 0, 16, 0);
139 EXPECT_TRUE(manager_->HaveFixedAttribs()); 139 EXPECT_TRUE(manager_->HaveFixedAttribs());
140 manager_->SetAttribInfo(1, NULL, 4, GL_FLOAT, GL_FALSE, 0, 16, 0); 140 manager_->SetAttribInfo(1, NULL, 4, GL_FLOAT, GL_FALSE, 0, 16, 0);
141 EXPECT_TRUE(manager_->HaveFixedAttribs()); 141 EXPECT_TRUE(manager_->HaveFixedAttribs());
142 manager_->SetAttribInfo(3, NULL, 4, GL_FLOAT, GL_FALSE, 0, 16, 0); 142 manager_->SetAttribInfo(3, NULL, 4, GL_FLOAT, GL_FALSE, 0, 16, 0);
143 EXPECT_FALSE(manager_->HaveFixedAttribs()); 143 EXPECT_FALSE(manager_->HaveFixedAttribs());
144 } 144 }
145 145
146 TEST_F(VertexAttribManagerTest, CanAccess) { 146 TEST_F(VertexAttribManagerTest, CanAccess) {
147 BufferManager buffer_manager(NULL); 147 BufferManager buffer_manager(NULL);
148 buffer_manager.CreateBufferInfo(1, 2); 148 buffer_manager.CreateBuffer(1, 2);
149 BufferManager::BufferInfo* buffer = buffer_manager.GetBufferInfo(1); 149 BufferManager::Buffer* buffer = buffer_manager.GetBuffer(1);
150 ASSERT_TRUE(buffer != NULL); 150 ASSERT_TRUE(buffer != NULL);
151 151
152 VertexAttribManager::VertexAttribInfo* info = 152 VertexAttrib* info =
153 manager_->GetVertexAttribInfo(1); 153 manager_->GetVertexAttrib(1);
154 154
155 EXPECT_TRUE(info->CanAccess(0)); 155 EXPECT_TRUE(info->CanAccess(0));
156 manager_->Enable(1, true); 156 manager_->Enable(1, true);
157 EXPECT_FALSE(info->CanAccess(0)); 157 EXPECT_FALSE(info->CanAccess(0));
158 158
159 manager_->SetAttribInfo(1, buffer, 4, GL_FLOAT, GL_FALSE, 0, 16, 0); 159 manager_->SetAttribInfo(1, buffer, 4, GL_FLOAT, GL_FALSE, 0, 16, 0);
160 EXPECT_FALSE(info->CanAccess(0)); 160 EXPECT_FALSE(info->CanAccess(0));
161 161
162 EXPECT_TRUE(buffer_manager.SetTarget(buffer, GL_ARRAY_BUFFER)); 162 EXPECT_TRUE(buffer_manager.SetTarget(buffer, GL_ARRAY_BUFFER));
163 buffer_manager.SetInfo(buffer, 15, GL_STATIC_DRAW); 163 buffer_manager.SetInfo(buffer, 15, GL_STATIC_DRAW);
(...skipping 16 matching lines...) Expand all
180 EXPECT_FALSE(info->CanAccess(1)); 180 EXPECT_FALSE(info->CanAccess(1));
181 181
182 // The VertexAttribManager must be destroyed before the BufferManager 182 // The VertexAttribManager must be destroyed before the BufferManager
183 // so it releases its buffers. 183 // so it releases its buffers.
184 manager_ = NULL; 184 manager_ = NULL;
185 buffer_manager.Destroy(false); 185 buffer_manager.Destroy(false);
186 } 186 }
187 187
188 TEST_F(VertexAttribManagerTest, Unbind) { 188 TEST_F(VertexAttribManagerTest, Unbind) {
189 BufferManager buffer_manager(NULL); 189 BufferManager buffer_manager(NULL);
190 buffer_manager.CreateBufferInfo(1, 2); 190 buffer_manager.CreateBuffer(1, 2);
191 buffer_manager.CreateBufferInfo(3, 4); 191 buffer_manager.CreateBuffer(3, 4);
192 BufferManager::BufferInfo* buffer1 = buffer_manager.GetBufferInfo(1); 192 BufferManager::Buffer* buffer1 = buffer_manager.GetBuffer(1);
193 BufferManager::BufferInfo* buffer2 = buffer_manager.GetBufferInfo(3); 193 BufferManager::Buffer* buffer2 = buffer_manager.GetBuffer(3);
194 ASSERT_TRUE(buffer1 != NULL); 194 ASSERT_TRUE(buffer1 != NULL);
195 ASSERT_TRUE(buffer2 != NULL); 195 ASSERT_TRUE(buffer2 != NULL);
196 196
197 VertexAttribManager::VertexAttribInfo* info1 = 197 VertexAttrib* info1 =
198 manager_->GetVertexAttribInfo(1); 198 manager_->GetVertexAttrib(1);
199 VertexAttribManager::VertexAttribInfo* info3 = 199 VertexAttrib* info3 =
200 manager_->GetVertexAttribInfo(3); 200 manager_->GetVertexAttrib(3);
201 201
202 // Attach to 2 buffers. 202 // Attach to 2 buffers.
203 manager_->SetAttribInfo(1, buffer1, 3, GL_SHORT, GL_TRUE, 32, 32, 4); 203 manager_->SetAttribInfo(1, buffer1, 3, GL_SHORT, GL_TRUE, 32, 32, 4);
204 manager_->SetAttribInfo(3, buffer1, 3, GL_SHORT, GL_TRUE, 32, 32, 4); 204 manager_->SetAttribInfo(3, buffer1, 3, GL_SHORT, GL_TRUE, 32, 32, 4);
205 // Check they were attached. 205 // Check they were attached.
206 EXPECT_EQ(buffer1, info1->buffer()); 206 EXPECT_EQ(buffer1, info1->buffer());
207 EXPECT_EQ(buffer1, info3->buffer()); 207 EXPECT_EQ(buffer1, info3->buffer());
208 // Unbind unattached buffer. 208 // Unbind unattached buffer.
209 manager_->Unbind(buffer2); 209 manager_->Unbind(buffer2);
210 // Should be no-op. 210 // Should be no-op.
211 EXPECT_EQ(buffer1, info1->buffer()); 211 EXPECT_EQ(buffer1, info1->buffer());
212 EXPECT_EQ(buffer1, info3->buffer()); 212 EXPECT_EQ(buffer1, info3->buffer());
213 // Unbind buffer. 213 // Unbind buffer.
214 manager_->Unbind(buffer1); 214 manager_->Unbind(buffer1);
215 // Check they were detached 215 // Check they were detached
216 EXPECT_TRUE(NULL == info1->buffer()); 216 EXPECT_TRUE(NULL == info1->buffer());
217 EXPECT_TRUE(NULL == info3->buffer()); 217 EXPECT_TRUE(NULL == info3->buffer());
218 218
219 // The VertexAttribManager must be destroyed before the BufferManager 219 // The VertexAttribManager must be destroyed before the BufferManager
220 // so it releases its buffers. 220 // so it releases its buffers.
221 manager_ = NULL; 221 manager_ = NULL;
222 buffer_manager.Destroy(false); 222 buffer_manager.Destroy(false);
223 } 223 }
224 224
225 } // namespace gles2 225 } // namespace gles2
226 } // namespace gpu 226 } // namespace gpu
227 227
228 228
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/vertex_attrib_manager.cc ('k') | gpu/demos/framework/window.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698