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

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

Issue 12542009: Revert "Revert 186416" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 9 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
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/buffer_manager.h" 8 #include "gpu/command_buffer/service/buffer_manager.h"
9 #include "gpu/command_buffer/service/feature_info.h" 9 #include "gpu/command_buffer/service/feature_info.h"
10 #include "gpu/command_buffer/service/gles2_cmd_decoder_mock.h"
10 #include "gpu/command_buffer/service/test_helper.h" 11 #include "gpu/command_buffer/service/test_helper.h"
11 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
12 #include "ui/gl/gl_mock.h" 13 #include "ui/gl/gl_mock.h"
13 14
14 using ::testing::Pointee; 15 using ::testing::Pointee;
15 using ::testing::_; 16 using ::testing::_;
16 17
17 namespace gpu { 18 namespace gpu {
18 namespace gles2 { 19 namespace gles2 {
19 20
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 manager_->Enable(1, false); 103 manager_->Enable(1, false);
103 ASSERT_EQ(1u, infos.size()); 104 ASSERT_EQ(1u, infos.size());
104 EXPECT_FALSE(info1->enabled()); 105 EXPECT_FALSE(info1->enabled());
105 106
106 manager_->Enable(3, false); 107 manager_->Enable(3, false);
107 ASSERT_EQ(0u, infos.size()); 108 ASSERT_EQ(0u, infos.size());
108 EXPECT_FALSE(info2->enabled()); 109 EXPECT_FALSE(info2->enabled());
109 } 110 }
110 111
111 TEST_F(VertexAttribManagerTest, SetAttribInfo) { 112 TEST_F(VertexAttribManagerTest, SetAttribInfo) {
112 BufferManager buffer_manager(NULL); 113 BufferManager buffer_manager(NULL, NULL);
113 buffer_manager.CreateBuffer(1, 2); 114 buffer_manager.CreateBuffer(1, 2);
114 Buffer* buffer = buffer_manager.GetBuffer(1); 115 Buffer* buffer = buffer_manager.GetBuffer(1);
115 ASSERT_TRUE(buffer != NULL); 116 ASSERT_TRUE(buffer != NULL);
116 117
117 VertexAttrib* info = 118 VertexAttrib* info =
118 manager_->GetVertexAttrib(1); 119 manager_->GetVertexAttrib(1);
119 120
120 manager_->SetAttribInfo(1, buffer, 3, GL_SHORT, GL_TRUE, 32, 32, 4); 121 manager_->SetAttribInfo(1, buffer, 3, GL_SHORT, GL_TRUE, 32, 32, 4);
121 122
122 EXPECT_EQ(buffer, info->buffer()); 123 EXPECT_EQ(buffer, info->buffer());
(...skipping 15 matching lines...) Expand all
138 EXPECT_TRUE(manager_->HaveFixedAttribs()); 139 EXPECT_TRUE(manager_->HaveFixedAttribs());
139 manager_->SetAttribInfo(3, NULL, 4, GL_FIXED, GL_FALSE, 0, 16, 0); 140 manager_->SetAttribInfo(3, NULL, 4, GL_FIXED, GL_FALSE, 0, 16, 0);
140 EXPECT_TRUE(manager_->HaveFixedAttribs()); 141 EXPECT_TRUE(manager_->HaveFixedAttribs());
141 manager_->SetAttribInfo(1, NULL, 4, GL_FLOAT, GL_FALSE, 0, 16, 0); 142 manager_->SetAttribInfo(1, NULL, 4, GL_FLOAT, GL_FALSE, 0, 16, 0);
142 EXPECT_TRUE(manager_->HaveFixedAttribs()); 143 EXPECT_TRUE(manager_->HaveFixedAttribs());
143 manager_->SetAttribInfo(3, NULL, 4, GL_FLOAT, GL_FALSE, 0, 16, 0); 144 manager_->SetAttribInfo(3, NULL, 4, GL_FLOAT, GL_FALSE, 0, 16, 0);
144 EXPECT_FALSE(manager_->HaveFixedAttribs()); 145 EXPECT_FALSE(manager_->HaveFixedAttribs());
145 } 146 }
146 147
147 TEST_F(VertexAttribManagerTest, CanAccess) { 148 TEST_F(VertexAttribManagerTest, CanAccess) {
148 BufferManager buffer_manager(NULL); 149 MockGLES2Decoder decoder;
150 BufferManager buffer_manager(NULL, NULL);
149 buffer_manager.CreateBuffer(1, 2); 151 buffer_manager.CreateBuffer(1, 2);
150 Buffer* buffer = buffer_manager.GetBuffer(1); 152 Buffer* buffer = buffer_manager.GetBuffer(1);
151 ASSERT_TRUE(buffer != NULL); 153 ASSERT_TRUE(buffer != NULL);
152 154
153 VertexAttrib* info = 155 VertexAttrib* info =
154 manager_->GetVertexAttrib(1); 156 manager_->GetVertexAttrib(1);
155 157
156 EXPECT_TRUE(info->CanAccess(0)); 158 EXPECT_TRUE(info->CanAccess(0));
157 manager_->Enable(1, true); 159 manager_->Enable(1, true);
158 EXPECT_FALSE(info->CanAccess(0)); 160 EXPECT_FALSE(info->CanAccess(0));
159 161
160 manager_->SetAttribInfo(1, buffer, 4, GL_FLOAT, GL_FALSE, 0, 16, 0); 162 manager_->SetAttribInfo(1, buffer, 4, GL_FLOAT, GL_FALSE, 0, 16, 0);
161 EXPECT_FALSE(info->CanAccess(0)); 163 EXPECT_FALSE(info->CanAccess(0));
162 164
163 EXPECT_TRUE(buffer_manager.SetTarget(buffer, GL_ARRAY_BUFFER)); 165 EXPECT_TRUE(buffer_manager.SetTarget(buffer, GL_ARRAY_BUFFER));
164 buffer_manager.SetInfo(buffer, 15, GL_STATIC_DRAW); 166 TestHelper::DoBufferData(
167 gl_.get(), &decoder, &buffer_manager, buffer, 15, GL_STATIC_DRAW, NULL,
168 GL_NO_ERROR);
165 169
166 EXPECT_FALSE(info->CanAccess(0)); 170 EXPECT_FALSE(info->CanAccess(0));
167 buffer_manager.SetInfo(buffer, 16, GL_STATIC_DRAW); 171 TestHelper::DoBufferData(
172 gl_.get(), &decoder, &buffer_manager, buffer, 16, GL_STATIC_DRAW, NULL,
173 GL_NO_ERROR);
168 EXPECT_TRUE(info->CanAccess(0)); 174 EXPECT_TRUE(info->CanAccess(0));
169 EXPECT_FALSE(info->CanAccess(1)); 175 EXPECT_FALSE(info->CanAccess(1));
170 176
171 manager_->SetAttribInfo(1, buffer, 4, GL_FLOAT, GL_FALSE, 0, 16, 1); 177 manager_->SetAttribInfo(1, buffer, 4, GL_FLOAT, GL_FALSE, 0, 16, 1);
172 EXPECT_FALSE(info->CanAccess(0)); 178 EXPECT_FALSE(info->CanAccess(0));
173 179
174 buffer_manager.SetInfo(buffer, 32, GL_STATIC_DRAW); 180 TestHelper::DoBufferData(
181 gl_.get(), &decoder, &buffer_manager, buffer, 32, GL_STATIC_DRAW, NULL,
182 GL_NO_ERROR);
175 EXPECT_TRUE(info->CanAccess(0)); 183 EXPECT_TRUE(info->CanAccess(0));
176 EXPECT_FALSE(info->CanAccess(1)); 184 EXPECT_FALSE(info->CanAccess(1));
177 manager_->SetAttribInfo(1, buffer, 4, GL_FLOAT, GL_FALSE, 0, 16, 0); 185 manager_->SetAttribInfo(1, buffer, 4, GL_FLOAT, GL_FALSE, 0, 16, 0);
178 EXPECT_TRUE(info->CanAccess(1)); 186 EXPECT_TRUE(info->CanAccess(1));
179 manager_->SetAttribInfo(1, buffer, 4, GL_FLOAT, GL_FALSE, 0, 20, 0); 187 manager_->SetAttribInfo(1, buffer, 4, GL_FLOAT, GL_FALSE, 0, 20, 0);
180 EXPECT_TRUE(info->CanAccess(0)); 188 EXPECT_TRUE(info->CanAccess(0));
181 EXPECT_FALSE(info->CanAccess(1)); 189 EXPECT_FALSE(info->CanAccess(1));
182 190
183 // The VertexAttribManager must be destroyed before the BufferManager 191 // The VertexAttribManager must be destroyed before the BufferManager
184 // so it releases its buffers. 192 // so it releases its buffers.
185 manager_ = NULL; 193 manager_ = NULL;
186 buffer_manager.Destroy(false); 194 buffer_manager.Destroy(false);
187 } 195 }
188 196
189 TEST_F(VertexAttribManagerTest, Unbind) { 197 TEST_F(VertexAttribManagerTest, Unbind) {
190 BufferManager buffer_manager(NULL); 198 BufferManager buffer_manager(NULL, NULL);
191 buffer_manager.CreateBuffer(1, 2); 199 buffer_manager.CreateBuffer(1, 2);
192 buffer_manager.CreateBuffer(3, 4); 200 buffer_manager.CreateBuffer(3, 4);
193 Buffer* buffer1 = buffer_manager.GetBuffer(1); 201 Buffer* buffer1 = buffer_manager.GetBuffer(1);
194 Buffer* buffer2 = buffer_manager.GetBuffer(3); 202 Buffer* buffer2 = buffer_manager.GetBuffer(3);
195 ASSERT_TRUE(buffer1 != NULL); 203 ASSERT_TRUE(buffer1 != NULL);
196 ASSERT_TRUE(buffer2 != NULL); 204 ASSERT_TRUE(buffer2 != NULL);
197 205
198 VertexAttrib* info1 = 206 VertexAttrib* info1 =
199 manager_->GetVertexAttrib(1); 207 manager_->GetVertexAttrib(1);
200 VertexAttrib* info3 = 208 VertexAttrib* info3 =
(...skipping 15 matching lines...) Expand all
216 // Check they were detached 224 // Check they were detached
217 EXPECT_TRUE(NULL == info1->buffer()); 225 EXPECT_TRUE(NULL == info1->buffer());
218 EXPECT_TRUE(NULL == info3->buffer()); 226 EXPECT_TRUE(NULL == info3->buffer());
219 227
220 // The VertexAttribManager must be destroyed before the BufferManager 228 // The VertexAttribManager must be destroyed before the BufferManager
221 // so it releases its buffers. 229 // so it releases its buffers.
222 manager_ = NULL; 230 manager_ = NULL;
223 buffer_manager.Destroy(false); 231 buffer_manager.Destroy(false);
224 } 232 }
225 233
234 // TODO(gman): Test ValidateBindings
235 // TODO(gman): Test ValidateBindings with client side arrays.
236
226 } // namespace gles2 237 } // namespace gles2
227 } // namespace gpu 238 } // namespace gpu
228 239
229 240
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/vertex_attrib_manager.cc ('k') | gpu/command_buffer/tests/gl_stream_draw_unittests.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698