OLD | NEW |
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/shader_manager.h" | 5 #include "gpu/command_buffer/service/shader_manager.h" |
6 | 6 |
7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
8 #include "gpu/command_buffer/service/gpu_service_test.h" | 8 #include "gpu/command_buffer/service/gpu_service_test.h" |
9 #include "gpu/command_buffer/service/mocks.h" | 9 #include "gpu/command_buffer/service/mocks.h" |
10 #include "gpu/command_buffer/service/test_helper.h" | 10 #include "gpu/command_buffer/service/test_helper.h" |
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
182 kUniform1StaticUse, kUniform1Name); | 182 kUniform1StaticUse, kUniform1Name); |
183 uniform_map[kUniform2Name] = TestHelper::ConstructUniform( | 183 uniform_map[kUniform2Name] = TestHelper::ConstructUniform( |
184 kUniform2Type, kUniform2Size, kUniform2Precision, | 184 kUniform2Type, kUniform2Size, kUniform2Precision, |
185 kUniform2StaticUse, kUniform2Name); | 185 kUniform2StaticUse, kUniform2Name); |
186 VaryingMap varying_map; | 186 VaryingMap varying_map; |
187 varying_map[kVarying1Name] = TestHelper::ConstructVarying( | 187 varying_map[kVarying1Name] = TestHelper::ConstructVarying( |
188 kVarying1Type, kVarying1Size, kVarying1Precision, | 188 kVarying1Type, kVarying1Size, kVarying1Precision, |
189 kVarying1StaticUse, kVarying1Name); | 189 kVarying1StaticUse, kVarying1Name); |
190 | 190 |
191 TestHelper::SetShaderStates( | 191 TestHelper::SetShaderStates( |
192 gl_.get(), shader1, true, &kLog, &kTranslatedSource, | 192 gl_.get(), shader1, true, &kLog, &kTranslatedSource, NULL, |
193 &attrib_map, &uniform_map, &varying_map, NULL); | 193 &attrib_map, &uniform_map, &varying_map, NULL); |
194 EXPECT_TRUE(shader1->valid()); | 194 EXPECT_TRUE(shader1->valid()); |
195 // When compilation succeeds, no log is recorded. | 195 // When compilation succeeds, no log is recorded. |
196 EXPECT_STREQ("", shader1->log_info().c_str()); | 196 EXPECT_STREQ("", shader1->log_info().c_str()); |
197 EXPECT_STREQ(kClient1Source, shader1->last_compiled_source().c_str()); | 197 EXPECT_STREQ(kClient1Source, shader1->last_compiled_source().c_str()); |
198 EXPECT_STREQ(kTranslatedSource.c_str(), shader1->translated_source().c_str()); | 198 EXPECT_STREQ(kTranslatedSource.c_str(), shader1->translated_source().c_str()); |
199 | 199 |
200 // Check varying infos got copied. | 200 // Check varying infos got copied. |
201 EXPECT_EQ(attrib_map.size(), shader1->attrib_map().size()); | 201 EXPECT_EQ(attrib_map.size(), shader1->attrib_map().size()); |
202 for (AttributeMap::const_iterator it = attrib_map.begin(); | 202 for (AttributeMap::const_iterator it = attrib_map.begin(); |
(...skipping 26 matching lines...) Expand all Loading... |
229 ASSERT_TRUE(variable_info != NULL); | 229 ASSERT_TRUE(variable_info != NULL); |
230 EXPECT_EQ(it->second.type, variable_info->type); | 230 EXPECT_EQ(it->second.type, variable_info->type); |
231 EXPECT_EQ(it->second.arraySize, variable_info->arraySize); | 231 EXPECT_EQ(it->second.arraySize, variable_info->arraySize); |
232 EXPECT_EQ(it->second.precision, variable_info->precision); | 232 EXPECT_EQ(it->second.precision, variable_info->precision); |
233 EXPECT_EQ(it->second.staticUse, variable_info->staticUse); | 233 EXPECT_EQ(it->second.staticUse, variable_info->staticUse); |
234 EXPECT_STREQ(it->second.name.c_str(), variable_info->name.c_str()); | 234 EXPECT_STREQ(it->second.name.c_str(), variable_info->name.c_str()); |
235 } | 235 } |
236 | 236 |
237 // Compile failure case. | 237 // Compile failure case. |
238 TestHelper::SetShaderStates( | 238 TestHelper::SetShaderStates( |
239 gl_.get(), shader1, false, &kLog, &kTranslatedSource, | 239 gl_.get(), shader1, false, &kLog, &kTranslatedSource, NULL, |
240 &attrib_map, &uniform_map, &varying_map, NULL); | 240 &attrib_map, &uniform_map, &varying_map, NULL); |
241 EXPECT_FALSE(shader1->valid()); | 241 EXPECT_FALSE(shader1->valid()); |
242 EXPECT_STREQ(kLog.c_str(), shader1->log_info().c_str()); | 242 EXPECT_STREQ(kLog.c_str(), shader1->log_info().c_str()); |
243 EXPECT_STREQ("", shader1->translated_source().c_str()); | 243 EXPECT_STREQ("", shader1->translated_source().c_str()); |
244 EXPECT_TRUE(shader1->attrib_map().empty()); | 244 EXPECT_TRUE(shader1->attrib_map().empty()); |
245 EXPECT_TRUE(shader1->uniform_map().empty()); | 245 EXPECT_TRUE(shader1->uniform_map().empty()); |
246 EXPECT_TRUE(shader1->varying_map().empty()); | 246 EXPECT_TRUE(shader1->varying_map().empty()); |
247 } | 247 } |
248 | 248 |
249 TEST_F(ShaderManagerTest, ShaderInfoUseCount) { | 249 TEST_F(ShaderManagerTest, ShaderInfoUseCount) { |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
290 EXPECT_CALL(*gl_, DeleteShader(kService1Id)) | 290 EXPECT_CALL(*gl_, DeleteShader(kService1Id)) |
291 .Times(1) | 291 .Times(1) |
292 .RetiresOnSaturation(); | 292 .RetiresOnSaturation(); |
293 manager_.Delete(shader1); // this should delete the shader. | 293 manager_.Delete(shader1); // this should delete the shader. |
294 shader2 = manager_.GetShader(kClient1Id); | 294 shader2 = manager_.GetShader(kClient1Id); |
295 EXPECT_TRUE(shader2 == NULL); | 295 EXPECT_TRUE(shader2 == NULL); |
296 } | 296 } |
297 | 297 |
298 } // namespace gles2 | 298 } // namespace gles2 |
299 } // namespace gpu | 299 } // namespace gpu |
OLD | NEW |