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 |