| 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/memory_program_cache.h" | 5 #include "gpu/command_buffer/service/memory_program_cache.h" |
| 6 | 6 |
| 7 #include "gpu/command_buffer/common/gles2_cmd_format.h" | 7 #include "gpu/command_buffer/common/gles2_cmd_format.h" |
| 8 #include "gpu/command_buffer/service/gl_utils.h" | 8 #include "gpu/command_buffer/service/gl_utils.h" |
| 9 #include "gpu/command_buffer/service/shader_translator.h" | 9 #include "gpu/command_buffer/service/shader_translator.h" |
| 10 #include "testing/gtest/include/gtest/gtest.h" | 10 #include "testing/gtest/include/gtest/gtest.h" |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 77 fragment_shader_(NULL) { } | 77 fragment_shader_(NULL) { } |
| 78 virtual ~MemoryProgramCacheTest() { | 78 virtual ~MemoryProgramCacheTest() { |
| 79 shader_manager_.Destroy(false); | 79 shader_manager_.Destroy(false); |
| 80 } | 80 } |
| 81 | 81 |
| 82 protected: | 82 protected: |
| 83 virtual void SetUp() { | 83 virtual void SetUp() { |
| 84 gl_.reset(new ::testing::StrictMock<gfx::MockGLInterface>()); | 84 gl_.reset(new ::testing::StrictMock<gfx::MockGLInterface>()); |
| 85 ::gfx::GLInterface::SetGLInterface(gl_.get()); | 85 ::gfx::GLInterface::SetGLInterface(gl_.get()); |
| 86 | 86 |
| 87 vertex_shader_ = shader_manager_.CreateShaderInfo(kVertexShaderClientId, | 87 vertex_shader_ = shader_manager_.CreateShader(kVertexShaderClientId, |
| 88 kVertexShaderServiceId, | 88 kVertexShaderServiceId, |
| 89 GL_VERTEX_SHADER); | 89 GL_VERTEX_SHADER); |
| 90 fragment_shader_ = shader_manager_.CreateShaderInfo( | 90 fragment_shader_ = shader_manager_.CreateShader( |
| 91 kFragmentShaderClientId, | 91 kFragmentShaderClientId, |
| 92 kFragmentShaderServiceId, | 92 kFragmentShaderServiceId, |
| 93 GL_FRAGMENT_SHADER); | 93 GL_FRAGMENT_SHADER); |
| 94 ASSERT_TRUE(vertex_shader_ != NULL); | 94 ASSERT_TRUE(vertex_shader_ != NULL); |
| 95 ASSERT_TRUE(fragment_shader_ != NULL); | 95 ASSERT_TRUE(fragment_shader_ != NULL); |
| 96 typedef ShaderTranslatorInterface::VariableInfo VariableInfo; | 96 typedef ShaderTranslatorInterface::VariableInfo VariableInfo; |
| 97 typedef ShaderTranslator::VariableMap VariableMap; | 97 typedef ShaderTranslator::VariableMap VariableMap; |
| 98 VariableMap vertex_attrib_map; | 98 VariableMap vertex_attrib_map; |
| 99 VariableMap vertex_uniform_map; | 99 VariableMap vertex_uniform_map; |
| 100 VariableMap fragment_attrib_map; | 100 VariableMap fragment_attrib_map; |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 161 .WillOnce(Invoke(emulator, &ProgramBinaryEmulator::ProgramBinary)); | 161 .WillOnce(Invoke(emulator, &ProgramBinaryEmulator::ProgramBinary)); |
| 162 EXPECT_CALL(*gl_.get(), | 162 EXPECT_CALL(*gl_.get(), |
| 163 GetProgramiv(program_id, GL_LINK_STATUS, _)) | 163 GetProgramiv(program_id, GL_LINK_STATUS, _)) |
| 164 .WillOnce(SetArgPointee<2>(GL_FALSE)); | 164 .WillOnce(SetArgPointee<2>(GL_FALSE)); |
| 165 } | 165 } |
| 166 | 166 |
| 167 // Use StrictMock to make 100% sure we know how GL will be called. | 167 // Use StrictMock to make 100% sure we know how GL will be called. |
| 168 scoped_ptr< ::testing::StrictMock<gfx::MockGLInterface> > gl_; | 168 scoped_ptr< ::testing::StrictMock<gfx::MockGLInterface> > gl_; |
| 169 scoped_ptr<MemoryProgramCache> cache_; | 169 scoped_ptr<MemoryProgramCache> cache_; |
| 170 ShaderManager shader_manager_; | 170 ShaderManager shader_manager_; |
| 171 ShaderManager::ShaderInfo* vertex_shader_; | 171 Shader* vertex_shader_; |
| 172 ShaderManager::ShaderInfo* fragment_shader_; | 172 Shader* fragment_shader_; |
| 173 }; | 173 }; |
| 174 | 174 |
| 175 TEST_F(MemoryProgramCacheTest, CacheSave) { | 175 TEST_F(MemoryProgramCacheTest, CacheSave) { |
| 176 const GLenum kFormat = 1; | 176 const GLenum kFormat = 1; |
| 177 const int kProgramId = 10; | 177 const int kProgramId = 10; |
| 178 const int kBinaryLength = 20; | 178 const int kBinaryLength = 20; |
| 179 char test_binary[kBinaryLength]; | 179 char test_binary[kBinaryLength]; |
| 180 for (int i = 0; i < kBinaryLength; ++i) { | 180 for (int i = 0; i < kBinaryLength; ++i) { |
| 181 test_binary[i] = i; | 181 test_binary[i] = i; |
| 182 } | 182 } |
| (...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 440 SetExpectationsForLoadLinkedProgram(kProgramId, &emulator2); | 440 SetExpectationsForLoadLinkedProgram(kProgramId, &emulator2); |
| 441 EXPECT_EQ(ProgramCache::PROGRAM_LOAD_SUCCESS, cache_->LoadLinkedProgram( | 441 EXPECT_EQ(ProgramCache::PROGRAM_LOAD_SUCCESS, cache_->LoadLinkedProgram( |
| 442 kProgramId, | 442 kProgramId, |
| 443 vertex_shader_, | 443 vertex_shader_, |
| 444 fragment_shader_, | 444 fragment_shader_, |
| 445 NULL)); | 445 NULL)); |
| 446 } | 446 } |
| 447 | 447 |
| 448 } // namespace gles2 | 448 } // namespace gles2 |
| 449 } // namespace gpu | 449 } // namespace gpu |
| OLD | NEW |