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

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

Issue 3150026: Fixes for the default texture.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 10 years, 3 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) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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/gles2_cmd_decoder_unittest_base.h" 5 #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 9
10 #include "app/gfx/gl/gl_mock.h" 10 #include "app/gfx/gl/gl_mock.h"
11 #include "base/string_number_conversions.h" 11 #include "base/string_number_conversions.h"
12 #include "gpu/command_buffer/common/gles2_cmd_format.h" 12 #include "gpu/command_buffer/common/gles2_cmd_format.h"
13 #include "gpu/command_buffer/common/gles2_cmd_utils.h" 13 #include "gpu/command_buffer/common/gles2_cmd_utils.h"
14 #include "gpu/command_buffer/service/cmd_buffer_engine.h" 14 #include "gpu/command_buffer/service/cmd_buffer_engine.h"
15 #include "gpu/command_buffer/service/context_group.h" 15 #include "gpu/command_buffer/service/context_group.h"
16 #include "gpu/command_buffer/service/program_manager.h" 16 #include "gpu/command_buffer/service/program_manager.h"
17 #include "gpu/command_buffer/service/test_helper.h"
17 #include "testing/gtest/include/gtest/gtest.h" 18 #include "testing/gtest/include/gtest/gtest.h"
18 19
19 using ::gfx::MockGLInterface; 20 using ::gfx::MockGLInterface;
20 using ::testing::_; 21 using ::testing::_;
21 using ::testing::DoAll; 22 using ::testing::DoAll;
22 using ::testing::InSequence; 23 using ::testing::InSequence;
23 using ::testing::MatcherCast; 24 using ::testing::MatcherCast;
24 using ::testing::Pointee; 25 using ::testing::Pointee;
25 using ::testing::Return; 26 using ::testing::Return;
26 using ::testing::SetArrayArgument; 27 using ::testing::SetArrayArgument;
27 using ::testing::SetArgumentPointee; 28 using ::testing::SetArgumentPointee;
28 using ::testing::StrEq; 29 using ::testing::StrEq;
29 using ::testing::StrictMock; 30 using ::testing::StrictMock;
30 31
31 namespace gpu { 32 namespace gpu {
32 namespace gles2 { 33 namespace gles2 {
33 34
34 void GLES2DecoderTestBase::SetUp() { 35 void GLES2DecoderTestBase::SetUp() {
35 InitDecoder(""); 36 InitDecoder("");
36 } 37 }
37 38
38 void GLES2DecoderTestBase::InitDecoder(const char* extensions) { 39 void GLES2DecoderTestBase::InitDecoder(const char* extensions) {
39 gl_.reset(new StrictMock<MockGLInterface>()); 40 gl_.reset(new StrictMock<MockGLInterface>());
40 ::gfx::GLInterface::SetGLInterface(gl_.get()); 41 ::gfx::GLInterface::SetGLInterface(gl_.get());
41 42
42 InSequence sequence; 43 InSequence sequence;
43 44
44 EXPECT_CALL(*gl_, GetString(GL_EXTENSIONS)) 45 TestHelper::SetupContextGroupInitExpectations(gl_.get(), "");
45 .WillOnce(Return(reinterpret_cast<const uint8*>(extensions))) 46
46 .RetiresOnSaturation();
47 EXPECT_CALL(*gl_, GetIntegerv(GL_MAX_VERTEX_ATTRIBS, _))
48 .WillOnce(SetArgumentPointee<1>(kNumVertexAttribs))
49 .RetiresOnSaturation();
50 EXPECT_CALL(*gl_, GetIntegerv(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, _))
51 .WillOnce(SetArgumentPointee<1>(kNumTextureUnits))
52 .RetiresOnSaturation();
53 EXPECT_CALL(*gl_, GetIntegerv(GL_MAX_TEXTURE_SIZE, _))
54 .WillOnce(SetArgumentPointee<1>(kMaxTextureSize))
55 .RetiresOnSaturation();
56 EXPECT_CALL(*gl_, GetIntegerv(GL_MAX_CUBE_MAP_TEXTURE_SIZE, _))
57 .WillOnce(SetArgumentPointee<1>(kMaxCubeMapTextureSize))
58 .RetiresOnSaturation();
59 EXPECT_CALL(*gl_, GetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, _))
60 .WillOnce(SetArgumentPointee<1>(kMaxTextureImageUnits))
61 .RetiresOnSaturation();
62 EXPECT_CALL(*gl_, GetIntegerv(GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS, _))
63 .WillOnce(SetArgumentPointee<1>(kMaxVertexTextureImageUnits))
64 .RetiresOnSaturation();
65 EXPECT_CALL(*gl_, GetIntegerv(GL_MAX_FRAGMENT_UNIFORM_COMPONENTS, _))
66 .WillOnce(SetArgumentPointee<1>(kMaxFragmentUniformVectors))
67 .RetiresOnSaturation();
68 EXPECT_CALL(*gl_, GetIntegerv(GL_MAX_VARYING_FLOATS, _))
69 .WillOnce(SetArgumentPointee<1>(kMaxVaryingVectors))
70 .RetiresOnSaturation();
71 EXPECT_CALL(*gl_, GetIntegerv(GL_MAX_VERTEX_UNIFORM_COMPONENTS, _))
72 .WillOnce(SetArgumentPointee<1>(kMaxVertexUniformVectors))
73 .RetiresOnSaturation();
74 EXPECT_CALL(*gl_, EnableVertexAttribArray(0)) 47 EXPECT_CALL(*gl_, EnableVertexAttribArray(0))
75 .Times(1) 48 .Times(1)
76 .RetiresOnSaturation(); 49 .RetiresOnSaturation();
77 static GLuint attrib_ids[] = { 50 static GLuint attrib_ids[] = {
78 kServiceAttrib0BufferId, 51 kServiceAttrib0BufferId,
79 }; 52 };
80 EXPECT_CALL(*gl_, GenBuffersARB(arraysize(attrib_ids), _)) 53 EXPECT_CALL(*gl_, GenBuffersARB(arraysize(attrib_ids), _))
81 .WillOnce(SetArrayArgument<1>(attrib_ids, 54 .WillOnce(SetArrayArgument<1>(attrib_ids,
82 attrib_ids + arraysize(attrib_ids))) 55 attrib_ids + arraysize(attrib_ids)))
83 .RetiresOnSaturation(); 56 .RetiresOnSaturation();
84 EXPECT_CALL(*gl_, BindBuffer(GL_ARRAY_BUFFER, kServiceAttrib0BufferId)) 57 EXPECT_CALL(*gl_, BindBuffer(GL_ARRAY_BUFFER, kServiceAttrib0BufferId))
85 .Times(1) 58 .Times(1)
86 .RetiresOnSaturation(); 59 .RetiresOnSaturation();
87 EXPECT_CALL(*gl_, VertexAttribPointer(0, 1, GL_FLOAT, GL_FALSE, 0, NULL)) 60 EXPECT_CALL(*gl_, VertexAttribPointer(0, 1, GL_FLOAT, GL_FALSE, 0, NULL))
88 .Times(1) 61 .Times(1)
89 .RetiresOnSaturation(); 62 .RetiresOnSaturation();
90 EXPECT_CALL(*gl_, BindBuffer(GL_ARRAY_BUFFER, 0)) 63 EXPECT_CALL(*gl_, BindBuffer(GL_ARRAY_BUFFER, 0))
91 .Times(1) 64 .Times(1)
92 .RetiresOnSaturation(); 65 .RetiresOnSaturation();
93 66
94 static GLuint black_ids[] = { 67 for (GLint tt = 0; tt < TestHelper::kNumTextureUnits; ++tt) {
95 kServiceBlackTexture2dId, 68 EXPECT_CALL(*gl_, ActiveTexture(GL_TEXTURE0 + tt))
96 kServiceBlackTextureCubemapId, 69 .Times(1)
97 }; 70 .RetiresOnSaturation();
98 EXPECT_CALL(*gl_, GenTextures(arraysize(black_ids), _)) 71 EXPECT_CALL(*gl_, BindTexture(
99 .WillOnce(SetArrayArgument<1>(black_ids, 72 GL_TEXTURE_CUBE_MAP, TestHelper::kServiceDefaultTextureCubemapId))
100 black_ids + arraysize(black_ids))) 73 .Times(1)
101 .RetiresOnSaturation(); 74 .RetiresOnSaturation();
102 EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_2D, kServiceBlackTexture2dId)) 75 EXPECT_CALL(*gl_, BindTexture(
103 .Times(1) 76 GL_TEXTURE_2D, TestHelper::kServiceDefaultTexture2dId))
104 .RetiresOnSaturation();
105 EXPECT_CALL(*gl_, TexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_RGBA,
106 GL_UNSIGNED_BYTE, _))
107 .Times(1)
108 .RetiresOnSaturation();
109 EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_2D, 0))
110 .Times(1)
111 .RetiresOnSaturation();
112 EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_CUBE_MAP,
113 kServiceBlackTextureCubemapId))
114 .Times(1)
115 .RetiresOnSaturation();
116 static GLenum faces[] = {
117 GL_TEXTURE_CUBE_MAP_POSITIVE_X,
118 GL_TEXTURE_CUBE_MAP_NEGATIVE_X,
119 GL_TEXTURE_CUBE_MAP_POSITIVE_Y,
120 GL_TEXTURE_CUBE_MAP_NEGATIVE_Y,
121 GL_TEXTURE_CUBE_MAP_POSITIVE_Z,
122 GL_TEXTURE_CUBE_MAP_NEGATIVE_Z,
123 };
124 for (size_t ii = 0; ii < arraysize(faces); ++ii) {
125 EXPECT_CALL(*gl_, TexImage2D(faces[ii], 0, GL_RGBA, 1, 1, 0, GL_RGBA,
126 GL_UNSIGNED_BYTE, _))
127 .Times(1) 77 .Times(1)
128 .RetiresOnSaturation(); 78 .RetiresOnSaturation();
129 } 79 }
130 EXPECT_CALL(*gl_, BindTexture(GL_TEXTURE_CUBE_MAP, 0)) 80 EXPECT_CALL(*gl_, ActiveTexture(GL_TEXTURE0))
131 .Times(1) 81 .Times(1)
132 .RetiresOnSaturation(); 82 .RetiresOnSaturation();
83
133 EXPECT_CALL(*gl_, Enable(GL_VERTEX_PROGRAM_POINT_SIZE)) 84 EXPECT_CALL(*gl_, Enable(GL_VERTEX_PROGRAM_POINT_SIZE))
134 .Times(1) 85 .Times(1)
135 .RetiresOnSaturation(); 86 .RetiresOnSaturation();
136 87
137 engine_.reset(new StrictMock<MockCommandBufferEngine>()); 88 engine_.reset(new StrictMock<MockCommandBufferEngine>());
138 Buffer buffer = engine_->GetSharedMemoryBuffer(kSharedMemoryId); 89 Buffer buffer = engine_->GetSharedMemoryBuffer(kSharedMemoryId);
139 shared_memory_offset_ = kSharedMemoryOffset; 90 shared_memory_offset_ = kSharedMemoryOffset;
140 shared_memory_address_ = reinterpret_cast<int8*>(buffer.ptr) + 91 shared_memory_address_ = reinterpret_cast<int8*>(buffer.ptr) +
141 shared_memory_offset_; 92 shared_memory_offset_;
142 shared_memory_id_ = kSharedMemoryId; 93 shared_memory_id_ = kSharedMemoryId;
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 } 130 }
180 131
181 DoCreateShader(GL_VERTEX_SHADER, client_shader_id_, kServiceShaderId); 132 DoCreateShader(GL_VERTEX_SHADER, client_shader_id_, kServiceShaderId);
182 133
183 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 134 EXPECT_EQ(GL_NO_ERROR, GetGLError());
184 } 135 }
185 136
186 void GLES2DecoderTestBase::TearDown() { 137 void GLES2DecoderTestBase::TearDown() {
187 // All Tests should have read all their GLErrors before getting here. 138 // All Tests should have read all their GLErrors before getting here.
188 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 139 EXPECT_EQ(GL_NO_ERROR, GetGLError());
189 EXPECT_CALL(*gl_, DeleteTextures(1, _))
190 .Times(2)
191 .RetiresOnSaturation();
192 EXPECT_CALL(*gl_, DeleteBuffersARB(1, _)) 140 EXPECT_CALL(*gl_, DeleteBuffersARB(1, _))
193 .Times(1) 141 .Times(1)
194 .RetiresOnSaturation(); 142 .RetiresOnSaturation();
195 decoder_->Destroy(); 143 decoder_->Destroy();
196 decoder_.reset(); 144 decoder_.reset();
197 group_.Destroy(false); 145 group_.Destroy(false);
198 engine_.reset(); 146 engine_.reset();
199 ::gfx::GLInterface::SetGLInterface(NULL); 147 ::gfx::GLInterface::SetGLInterface(NULL);
200 gl_.reset(); 148 gl_.reset();
201 } 149 }
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after
429 const GLint GLES2DecoderTestBase::kMaxTextureSize; 377 const GLint GLES2DecoderTestBase::kMaxTextureSize;
430 const GLint GLES2DecoderTestBase::kMaxCubeMapTextureSize; 378 const GLint GLES2DecoderTestBase::kMaxCubeMapTextureSize;
431 const GLint GLES2DecoderTestBase::kNumVertexAttribs; 379 const GLint GLES2DecoderTestBase::kNumVertexAttribs;
432 const GLint GLES2DecoderTestBase::kNumTextureUnits; 380 const GLint GLES2DecoderTestBase::kNumTextureUnits;
433 const GLint GLES2DecoderTestBase::kMaxTextureImageUnits; 381 const GLint GLES2DecoderTestBase::kMaxTextureImageUnits;
434 const GLint GLES2DecoderTestBase::kMaxVertexTextureImageUnits; 382 const GLint GLES2DecoderTestBase::kMaxVertexTextureImageUnits;
435 const GLint GLES2DecoderTestBase::kMaxFragmentUniformVectors; 383 const GLint GLES2DecoderTestBase::kMaxFragmentUniformVectors;
436 const GLint GLES2DecoderTestBase::kMaxVaryingVectors; 384 const GLint GLES2DecoderTestBase::kMaxVaryingVectors;
437 const GLint GLES2DecoderTestBase::kMaxVertexUniformVectors; 385 const GLint GLES2DecoderTestBase::kMaxVertexUniformVectors;
438 386
439 const GLuint GLES2DecoderTestBase::kServiceBlackTexture2dId;
440 const GLuint GLES2DecoderTestBase::kServiceBlackTextureCubemapId;
441
442 const GLuint GLES2DecoderTestBase::kServiceAttrib0BufferId; 387 const GLuint GLES2DecoderTestBase::kServiceAttrib0BufferId;
443 388
444 const GLuint GLES2DecoderTestBase::kServiceBufferId; 389 const GLuint GLES2DecoderTestBase::kServiceBufferId;
445 const GLuint GLES2DecoderTestBase::kServiceFramebufferId; 390 const GLuint GLES2DecoderTestBase::kServiceFramebufferId;
446 const GLuint GLES2DecoderTestBase::kServiceRenderbufferId; 391 const GLuint GLES2DecoderTestBase::kServiceRenderbufferId;
447 const GLuint GLES2DecoderTestBase::kServiceTextureId; 392 const GLuint GLES2DecoderTestBase::kServiceTextureId;
448 const GLuint GLES2DecoderTestBase::kServiceProgramId; 393 const GLuint GLES2DecoderTestBase::kServiceProgramId;
449 const GLuint GLES2DecoderTestBase::kServiceShaderId; 394 const GLuint GLES2DecoderTestBase::kServiceShaderId;
450 const GLuint GLES2DecoderTestBase::kServiceElementBufferId; 395 const GLuint GLES2DecoderTestBase::kServiceElementBufferId;
451 396
(...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after
751 const char* GLES2DecoderWithShaderTestBase::kAttrib2Name = "attrib2"; 696 const char* GLES2DecoderWithShaderTestBase::kAttrib2Name = "attrib2";
752 const char* GLES2DecoderWithShaderTestBase::kAttrib3Name = "attrib3"; 697 const char* GLES2DecoderWithShaderTestBase::kAttrib3Name = "attrib3";
753 const char* GLES2DecoderWithShaderTestBase::kUniform1Name = "uniform1"; 698 const char* GLES2DecoderWithShaderTestBase::kUniform1Name = "uniform1";
754 const char* GLES2DecoderWithShaderTestBase::kUniform2Name = "uniform2[0]"; 699 const char* GLES2DecoderWithShaderTestBase::kUniform2Name = "uniform2[0]";
755 const char* GLES2DecoderWithShaderTestBase::kUniform3Name = "uniform3[0]"; 700 const char* GLES2DecoderWithShaderTestBase::kUniform3Name = "uniform3[0]";
756 701
757 } // namespace gles2 702 } // namespace gles2
758 } // namespace gpu 703 } // namespace gpu
759 704
760 705
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.h ('k') | gpu/command_buffer/service/test_helper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698