| OLD | NEW |
| 1 // Copyright (c) 2010 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/shader_manager.h" | 5 #include "gpu/command_buffer/service/shader_manager.h" |
| 6 | 6 |
| 7 #include "base/scoped_ptr.h" | 7 #include "base/scoped_ptr.h" |
| 8 #include "gpu/command_buffer/common/gl_mock.h" | 8 #include "gpu/command_buffer/common/gl_mock.h" |
| 9 #include "gpu/command_buffer/service/mocks.h" | 9 #include "gpu/command_buffer/service/mocks.h" |
| 10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
| 11 | 11 |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 68 ASSERT_TRUE(info1 != NULL); | 68 ASSERT_TRUE(info1 != NULL); |
| 69 EXPECT_CALL(*gl_, DeleteShader(kService1Id)) | 69 EXPECT_CALL(*gl_, DeleteShader(kService1Id)) |
| 70 .Times(1) | 70 .Times(1) |
| 71 .RetiresOnSaturation(); | 71 .RetiresOnSaturation(); |
| 72 manager_.Destroy(true); | 72 manager_.Destroy(true); |
| 73 // Check that resources got freed. | 73 // Check that resources got freed. |
| 74 info1 = manager_.GetShaderInfo(kClient1Id); | 74 info1 = manager_.GetShaderInfo(kClient1Id); |
| 75 ASSERT_TRUE(info1 == NULL); | 75 ASSERT_TRUE(info1 == NULL); |
| 76 } | 76 } |
| 77 | 77 |
| 78 TEST_F(ShaderManagerTest, DeleteBug) { |
| 79 const GLuint kClient1Id = 1; |
| 80 const GLuint kClient2Id = 2; |
| 81 const GLuint kService1Id = 11; |
| 82 const GLuint kService2Id = 12; |
| 83 const GLenum kShaderType = GL_VERTEX_SHADER; |
| 84 // Check we can create shader. |
| 85 manager_.CreateShaderInfo(kClient1Id, kService1Id, kShaderType); |
| 86 manager_.CreateShaderInfo(kClient2Id, kService2Id, kShaderType); |
| 87 ShaderManager::ShaderInfo::Ref info1(manager_.GetShaderInfo(kClient1Id)); |
| 88 ShaderManager::ShaderInfo::Ref info2(manager_.GetShaderInfo(kClient2Id)); |
| 89 ASSERT_TRUE(info1.get() != NULL); |
| 90 ASSERT_TRUE(info2.get() != NULL); |
| 91 manager_.UseShader(info1); |
| 92 manager_.MarkAsDeleted(info1); |
| 93 manager_.MarkAsDeleted(info2); |
| 94 EXPECT_TRUE(manager_.IsOwned(info1)); |
| 95 EXPECT_FALSE(manager_.IsOwned(info2)); |
| 96 } |
| 97 |
| 78 TEST_F(ShaderManagerTest, ShaderInfo) { | 98 TEST_F(ShaderManagerTest, ShaderInfo) { |
| 79 const GLuint kClient1Id = 1; | 99 const GLuint kClient1Id = 1; |
| 80 const GLuint kService1Id = 11; | 100 const GLuint kService1Id = 11; |
| 81 const GLenum kShader1Type = GL_VERTEX_SHADER; | 101 const GLenum kShader1Type = GL_VERTEX_SHADER; |
| 82 const char* kClient1Source = "hello world"; | 102 const char* kClient1Source = "hello world"; |
| 83 // Check we can create shader. | 103 // Check we can create shader. |
| 84 manager_.CreateShaderInfo(kClient1Id, kService1Id, kShader1Type); | 104 manager_.CreateShaderInfo(kClient1Id, kService1Id, kShader1Type); |
| 85 // Check shader got created. | 105 // Check shader got created. |
| 86 ShaderManager::ShaderInfo* info1 = manager_.GetShaderInfo(kClient1Id); | 106 ShaderManager::ShaderInfo* info1 = manager_.GetShaderInfo(kClient1Id); |
| 87 ASSERT_TRUE(info1 != NULL); | 107 ASSERT_TRUE(info1 != NULL); |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 213 EXPECT_EQ(info1, info2); | 233 EXPECT_EQ(info1, info2); |
| 214 manager_.MarkAsDeleted(info1); // this should delete the shader. | 234 manager_.MarkAsDeleted(info1); // this should delete the shader. |
| 215 info2 = manager_.GetShaderInfo(kClient1Id); | 235 info2 = manager_.GetShaderInfo(kClient1Id); |
| 216 EXPECT_TRUE(info2 == NULL); | 236 EXPECT_TRUE(info2 == NULL); |
| 217 } | 237 } |
| 218 | 238 |
| 219 } // namespace gles2 | 239 } // namespace gles2 |
| 220 } // namespace gpu | 240 } // namespace gpu |
| 221 | 241 |
| 222 | 242 |
| OLD | NEW |