blob: 4c5c11475f82dec117409de2b71670a13ec4a2da [file] [log] [blame]
[email protected]5ae0b282011-03-28 19:24:491// Copyright (c) 2011 The Chromium Authors. All rights reserved.
[email protected]69d80ae2009-12-23 08:57:422// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// This file implements mock GL Interface for unit testing. It has to mock
6// Desktop GL, not GLES2 as it is used to test the service side code.
7
[email protected]269200b12010-11-18 22:53:068#ifndef GPU_COMMAND_BUFFER_COMMON_GL_MOCK_H_
9#define GPU_COMMAND_BUFFER_COMMON_GL_MOCK_H_
[email protected]32b76ef2010-07-26 23:08:2410#pragma once
[email protected]69d80ae2009-12-23 08:57:4211
[email protected]69d80ae2009-12-23 08:57:4212#include "testing/gmock/include/gmock/gmock.h"
[email protected]5ae0b282011-03-28 19:24:4913#include "ui/gfx/gl/gl_interface.h"
[email protected]69d80ae2009-12-23 08:57:4214
[email protected]b9363b22010-06-09 22:06:1515namespace gfx {
[email protected]69d80ae2009-12-23 08:57:4216
17class MockGLInterface : public GLInterface {
18 public:
[email protected]a36c7b412010-10-14 21:17:0619 MockGLInterface();
20 virtual ~MockGLInterface();
[email protected]69d80ae2009-12-23 08:57:4221
22 MOCK_METHOD1(ActiveTexture, void(GLenum texture));
23
24 MOCK_METHOD2(AttachShader, void(GLuint program, GLuint shader));
25
26 MOCK_METHOD3(BindAttribLocation, void(
27 GLuint program, GLuint index, const char* name));
28
29 MOCK_METHOD2(BindBuffer, void(GLenum target, GLuint buffer));
30
[email protected]5d4e7892011-09-22 21:15:2631 MOCK_METHOD3(BindFragDataLocation, void(GLuint program, GLuint colorNumber,
32 const char* name));
33
[email protected]4ac107e2011-07-22 18:00:1534 MOCK_METHOD4(BindFragDataLocationIndexedARB, void(GLuint program,
35 GLuint colorNumber, GLuint index, const char* name));
36
[email protected]69d80ae2009-12-23 08:57:4237 MOCK_METHOD2(BindFramebufferEXT, void(GLenum target, GLuint framebuffer));
38
39 MOCK_METHOD2(BindRenderbufferEXT, void(GLenum target, GLuint renderbuffer));
40
41 MOCK_METHOD2(BindTexture, void(GLenum target, GLuint texture));
42
43 MOCK_METHOD4(BlendColor, void(
44 GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha));
45
46 MOCK_METHOD1(BlendEquation, void(GLenum mode));
47
48 MOCK_METHOD2(BlendEquationSeparate, void(GLenum modeRGB, GLenum modeAlpha));
49
50 MOCK_METHOD2(BlendFunc, void(GLenum sfactor, GLenum dfactor));
51
52 MOCK_METHOD4(BlendFuncSeparate, void(
53 GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha));
54
[email protected]34ff8b0c2010-10-01 20:06:0255 MOCK_METHOD10(BlitFramebufferANGLE, void(
56 GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
57 GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1,
58 GLbitfield mask, GLenum filter));
59
[email protected]ce2d4122010-08-09 20:45:0760 MOCK_METHOD10(BlitFramebufferEXT, void(
61 GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
62 GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1,
63 GLbitfield mask, GLenum filter));
64
[email protected]69d80ae2009-12-23 08:57:4265 MOCK_METHOD4(BufferData, void(
66 GLenum target, GLsizeiptr size, const void* data, GLenum usage));
67
68 MOCK_METHOD4(BufferSubData, void(
69 GLenum target, GLintptr offset, GLsizeiptr size, const void* data));
70
71 MOCK_METHOD1(CheckFramebufferStatusEXT, GLenum(GLenum target));
72
73 MOCK_METHOD1(Clear, void(GLbitfield mask));
74
75 MOCK_METHOD4(ClearColor, void(
76 GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha));
77
[email protected]b9363b22010-06-09 22:06:1578 MOCK_METHOD1(ClearDepth, void(GLclampd depth));
79
80 MOCK_METHOD1(ClearDepthf, void(GLclampf depth));
[email protected]69d80ae2009-12-23 08:57:4281
82 MOCK_METHOD1(ClearStencil, void(GLint s));
83
84 MOCK_METHOD4(ColorMask, void(
85 GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha));
86
87 MOCK_METHOD1(CompileShader, void(GLuint shader));
88
89 MOCK_METHOD8(CompressedTexImage2D, void(
90 GLenum target, GLint level, GLenum internalformat, GLsizei width,
91 GLsizei height, GLint border, GLsizei imageSize, const void* data));
92
93 MOCK_METHOD9(CompressedTexSubImage2D, void(
94 GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width,
95 GLsizei height, GLenum format, GLsizei imageSize, const void* data));
96
97 MOCK_METHOD8(CopyTexImage2D, void(
98 GLenum target, GLint level, GLenum internalformat, GLint x, GLint y,
99 GLsizei width, GLsizei height, GLint border));
100
101 MOCK_METHOD8(CopyTexSubImage2D, void(
102 GLenum target, GLint level, GLint xoffset, GLint yoffset,
103 GLint x, GLint y, GLsizei width, GLsizei height));
104
105 MOCK_METHOD0(CreateProgram, GLuint());
106
107 MOCK_METHOD1(CreateShader, GLuint(GLenum type));
108
109 MOCK_METHOD1(CullFace, void(GLenum mode));
110
111 MOCK_METHOD2(DeleteBuffersARB, void(GLsizei n, const GLuint* buffers));
112
113 MOCK_METHOD2(DeleteFramebuffersEXT,
114 void(GLsizei n, const GLuint* framebuffers));
115
116 MOCK_METHOD1(DeleteProgram, void(GLuint program));
117
118 MOCK_METHOD2(DeleteRenderbuffersEXT, void(
119 GLsizei n, const GLuint* renderbuffers));
120
121 MOCK_METHOD1(DeleteShader, void(GLuint shader));
122
123 MOCK_METHOD2(DeleteTextures, void(GLsizei n, const GLuint* textures));
124
125 MOCK_METHOD1(DepthFunc, void(GLenum func));
126
127 MOCK_METHOD1(DepthMask, void(GLboolean flag));
128
[email protected]b9363b22010-06-09 22:06:15129 MOCK_METHOD2(DepthRange, void(GLclampd zNear, GLclampd zFar));
130
131 MOCK_METHOD2(DepthRangef, void(GLclampf zNear, GLclampf zFar));
[email protected]69d80ae2009-12-23 08:57:42132
133 MOCK_METHOD2(DetachShader, void(GLuint program, GLuint shader));
134
135 MOCK_METHOD1(Disable, void(GLenum cap));
136
137 MOCK_METHOD1(DisableVertexAttribArray, void(GLuint index));
138
139 MOCK_METHOD3(DrawArrays, void(GLenum mode, GLint first, GLsizei count));
140
[email protected]5b5a9d82011-08-04 18:59:27141 MOCK_METHOD1(DrawBuffer, void(GLenum mode));
142
143 MOCK_METHOD2(DrawBuffersARB, void(GLsizei n, const GLenum* bufs));
144
[email protected]69d80ae2009-12-23 08:57:42145 MOCK_METHOD4(DrawElements, void(
146 GLenum mode, GLsizei count, GLenum type, const void* indices));
147
[email protected]ae802342011-06-25 17:01:55148 MOCK_METHOD2(EGLImageTargetTexture2DOES, void(
149 GLenum target, GLeglImageOES image));
150
[email protected]69d80ae2009-12-23 08:57:42151 MOCK_METHOD1(Enable, void(GLenum cap));
152
153 MOCK_METHOD1(EnableVertexAttribArray, void(GLuint index));
154
155 MOCK_METHOD0(Finish, void());
156
157 MOCK_METHOD0(Flush, void());
158
159 MOCK_METHOD4(FramebufferRenderbufferEXT, void(
160 GLenum target, GLenum attachment, GLenum renderbuffertarget,
161 GLuint renderbuffer));
162
163 MOCK_METHOD5(FramebufferTexture2DEXT, void(
164 GLenum target, GLenum attachment, GLenum textarget, GLuint texture,
165 GLint level));
166
167 MOCK_METHOD1(FrontFace, void(GLenum mode));
168
169 MOCK_METHOD2(GenBuffersARB, void(GLsizei n, GLuint* buffers));
170
171 MOCK_METHOD1(GenerateMipmapEXT, void(GLenum target));
172
173 MOCK_METHOD2(GenFramebuffersEXT, void(GLsizei n, GLuint* framebuffers));
174
175 MOCK_METHOD2(GenRenderbuffersEXT, void(GLsizei n, GLuint* renderbuffers));
176
177 MOCK_METHOD2(GenTextures, void(GLsizei n, GLuint* textures));
178
179 MOCK_METHOD7(GetActiveAttrib, void(
180 GLuint program, GLuint index, GLsizei bufsize, GLsizei* length,
181 GLint* size, GLenum* type, char* name));
182
183 MOCK_METHOD7(GetActiveUniform, void(
184 GLuint program, GLuint index, GLsizei bufsize, GLsizei* length,
185 GLint* size, GLenum* type, char* name));
186
187 MOCK_METHOD4(GetAttachedShaders, void(
188 GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders));
189
190 MOCK_METHOD2(GetAttribLocation, GLint(GLuint program, const char* name));
191
192 MOCK_METHOD2(GetBooleanv, void(GLenum pname, GLboolean* params));
193
194 MOCK_METHOD3(GetBufferParameteriv, void(
195 GLenum target, GLenum pname, GLint* params));
196
197 MOCK_METHOD0(GetError, GLenum());
198
199 MOCK_METHOD2(GetFloatv, void(GLenum pname, GLfloat* params));
200
201 MOCK_METHOD4(GetFramebufferAttachmentParameterivEXT, void(
202 GLenum target, GLenum attachment, GLenum pname, GLint* params));
203
204 MOCK_METHOD2(GetIntegerv, void(GLenum pname, GLint* params));
205
206 MOCK_METHOD3(GetProgramiv, void(GLuint program, GLenum pname, GLint* params));
207
208 MOCK_METHOD4(GetProgramInfoLog, void(
209 GLuint program, GLsizei bufsize, GLsizei* length, char* infolog));
210
211 MOCK_METHOD3(GetRenderbufferParameterivEXT, void(
212 GLenum target, GLenum pname, GLint* params));
213
214 MOCK_METHOD3(GetShaderiv, void(GLuint shader, GLenum pname, GLint* params));
215
216 MOCK_METHOD4(GetShaderInfoLog, void(
217 GLuint shader, GLsizei bufsize, GLsizei* length, char* infolog));
218
219 MOCK_METHOD4(GetShaderPrecisionFormat, void(
220 GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision));
221
222 MOCK_METHOD4(GetShaderSource, void(
223 GLuint shader, GLsizei bufsize, GLsizei* length, char* source));
224
225 MOCK_METHOD1(GetString, const GLubyte*(GLenum name));
226
[email protected]e9c10252010-10-22 17:38:54227 MOCK_METHOD4(GetTexLevelParameterfv, void(
228 GLenum target, GLint level, GLenum pname, GLfloat* params));
229
230 MOCK_METHOD4(GetTexLevelParameteriv, void(
231 GLenum target, GLint level, GLenum pname, GLint* params));
232
[email protected]69d80ae2009-12-23 08:57:42233 MOCK_METHOD3(GetTexParameterfv, void(
234 GLenum target, GLenum pname, GLfloat* params));
235
236 MOCK_METHOD3(GetTexParameteriv, void(
237 GLenum target, GLenum pname, GLint* params));
238
239 MOCK_METHOD3(GetUniformfv,
240 void(GLuint program, GLint location, GLfloat* params));
241
242 MOCK_METHOD3(GetUniformiv,
243 void(GLuint program, GLint location, GLint* params));
244
245 MOCK_METHOD2(GetUniformLocation, GLint(GLuint program, const char* name));
246
247 MOCK_METHOD3(GetVertexAttribfv, void(
248 GLuint index, GLenum pname, GLfloat* params));
249
250 MOCK_METHOD3(GetVertexAttribiv,
251 void(GLuint index, GLenum pname, GLint* params));
252
253 MOCK_METHOD3(GetVertexAttribPointerv, void(
254 GLuint index, GLenum pname, void** pointer));
255
256 MOCK_METHOD2(Hint, void(GLenum target, GLenum mode));
257
258 MOCK_METHOD1(IsBuffer, GLboolean(GLuint buffer));
259
260 MOCK_METHOD1(IsEnabled, GLboolean(GLenum cap));
261
[email protected]0f000f32010-08-10 17:59:09262 MOCK_METHOD1(IsFramebufferEXT, GLboolean(GLuint framebuffer));
[email protected]69d80ae2009-12-23 08:57:42263
264 MOCK_METHOD1(IsProgram, GLboolean(GLuint program));
265
[email protected]0f000f32010-08-10 17:59:09266 MOCK_METHOD1(IsRenderbufferEXT, GLboolean(GLuint renderbuffer));
[email protected]69d80ae2009-12-23 08:57:42267
268 MOCK_METHOD1(IsShader, GLboolean(GLuint shader));
269
270 MOCK_METHOD1(IsTexture, GLboolean(GLuint texture));
271
272 MOCK_METHOD1(LineWidth, void(GLfloat width));
273
274 MOCK_METHOD1(LinkProgram, void(GLuint program));
275
[email protected]8f1ab372011-03-21 23:08:32276 MOCK_METHOD2(MapBuffer, void*(GLenum target, GLenum access));
277
[email protected]69d80ae2009-12-23 08:57:42278 MOCK_METHOD2(PixelStorei, void(GLenum pname, GLint param));
279
280 MOCK_METHOD2(PolygonOffset, void(GLfloat factor, GLfloat units));
281
[email protected]5b5a9d82011-08-04 18:59:27282 MOCK_METHOD1(ReadBuffer, void(GLenum src));
283
[email protected]69d80ae2009-12-23 08:57:42284 MOCK_METHOD7(ReadPixels, void(
285 GLint x, GLint y, GLsizei width, GLsizei height, GLenum format,
286 GLenum type, void* pixels));
287
[email protected]b273e432010-04-12 17:23:58288 MOCK_METHOD0(ReleaseShaderCompiler, void());
289
[email protected]69d80ae2009-12-23 08:57:42290 MOCK_METHOD4(RenderbufferStorageEXT, void(
291 GLenum target, GLenum internalformat, GLsizei width, GLsizei height));
292
[email protected]34ff8b0c2010-10-01 20:06:02293 MOCK_METHOD5(RenderbufferStorageMultisampleANGLE, void(
294 GLenum target, GLsizei samples, GLenum internalformat,
295 GLsizei width, GLsizei height));
296
[email protected]ce2d4122010-08-09 20:45:07297 MOCK_METHOD5(RenderbufferStorageMultisampleEXT, void(
298 GLenum target, GLsizei samples, GLenum internalformat,
299 GLsizei width, GLsizei height));
300
[email protected]69d80ae2009-12-23 08:57:42301 MOCK_METHOD2(SampleCoverage, void(GLclampf value, GLboolean invert));
302
303 MOCK_METHOD4(Scissor, void(GLint x, GLint y, GLsizei width, GLsizei height));
304
[email protected]b273e432010-04-12 17:23:58305 MOCK_METHOD5(ShaderBinary, void(
306 GLsizei n, const GLuint* shaders, GLenum binaryformat,
307 const void* binary, GLsizei length));
308
[email protected]69d80ae2009-12-23 08:57:42309 MOCK_METHOD4(ShaderSource, void(
310 GLuint shader, GLsizei count, const char** str, const GLint* length));
311
312 MOCK_METHOD3(StencilFunc, void(GLenum func, GLint ref, GLuint mask));
313
314 MOCK_METHOD4(StencilFuncSeparate, void(
315 GLenum face, GLenum func, GLint ref, GLuint mask));
316
317 MOCK_METHOD1(StencilMask, void(GLuint mask));
318
319 MOCK_METHOD2(StencilMaskSeparate, void(GLenum face, GLuint mask));
320
321 MOCK_METHOD3(StencilOp, void(GLenum fail, GLenum zfail, GLenum zpass));
322
323 MOCK_METHOD4(StencilOpSeparate, void(
324 GLenum face, GLenum fail, GLenum zfail, GLenum zpass));
325
326 MOCK_METHOD9(TexImage2D, void(
327 GLenum target, GLint level, GLint internalformat, GLsizei width,
328 GLsizei height, GLint border, GLenum format, GLenum type,
329 const void* pixels));
330
331 MOCK_METHOD3(TexParameterf, void(GLenum target, GLenum pname, GLfloat param));
332
333 MOCK_METHOD3(TexParameterfv, void(
334 GLenum target, GLenum pname, const GLfloat* params));
335
336 MOCK_METHOD3(TexParameteri, void(GLenum target, GLenum pname, GLint param));
337
338 MOCK_METHOD3(TexParameteriv, void(
339 GLenum target, GLenum pname, const GLint* params));
340
341 MOCK_METHOD9(TexSubImage2D, void(
342 GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width,
343 GLsizei height, GLenum format, GLenum type, const void* pixels));
344
345 MOCK_METHOD2(Uniform1f, void(GLint location, GLfloat x));
346
347 MOCK_METHOD3(Uniform1fv,
348 void(GLint location, GLsizei count, const GLfloat* v));
349
350 MOCK_METHOD2(Uniform1i, void(GLint location, GLint x));
351
352 MOCK_METHOD3(Uniform1iv, void(GLint location, GLsizei count, const GLint* v));
353
354 MOCK_METHOD3(Uniform2f, void(GLint location, GLfloat x, GLfloat y));
355
356 MOCK_METHOD3(Uniform2fv,
357 void(GLint location, GLsizei count, const GLfloat* v));
358
359 MOCK_METHOD3(Uniform2i, void(GLint location, GLint x, GLint y));
360
361 MOCK_METHOD3(Uniform2iv, void(GLint location, GLsizei count, const GLint* v));
362
363 MOCK_METHOD4(Uniform3f,
364 void(GLint location, GLfloat x, GLfloat y, GLfloat z));
365
366 MOCK_METHOD3(Uniform3fv,
367 void(GLint location, GLsizei count, const GLfloat* v));
368
369 MOCK_METHOD4(Uniform3i, void(GLint location, GLint x, GLint y, GLint z));
370
371 MOCK_METHOD3(Uniform3iv, void(GLint location, GLsizei count, const GLint* v));
372
373 MOCK_METHOD5(Uniform4f, void(
374 GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w));
375
376 MOCK_METHOD3(Uniform4fv,
377 void(GLint location, GLsizei count, const GLfloat* v));
378
379 MOCK_METHOD5(Uniform4i,
380 void(GLint location, GLint x, GLint y, GLint z, GLint w));
381
382 MOCK_METHOD3(Uniform4iv, void(GLint location, GLsizei count, const GLint* v));
383
384 MOCK_METHOD4(UniformMatrix2fv, void(
385 GLint location, GLsizei count, GLboolean transpose,
386 const GLfloat* value));
387
388 MOCK_METHOD4(UniformMatrix3fv, void(
389 GLint location, GLsizei count, GLboolean transpose,
390 const GLfloat* value));
391
392 MOCK_METHOD4(UniformMatrix4fv, void(
393 GLint location, GLsizei count, GLboolean transpose,
394 const GLfloat* value));
395
[email protected]8f1ab372011-03-21 23:08:32396 MOCK_METHOD1(UnmapBuffer, GLboolean(GLenum target));
397
[email protected]69d80ae2009-12-23 08:57:42398 MOCK_METHOD1(UseProgram, void(GLuint program));
399
400 MOCK_METHOD1(ValidateProgram, void(GLuint program));
401
402 MOCK_METHOD2(VertexAttrib1f, void(GLuint indx, GLfloat x));
403
404 MOCK_METHOD2(VertexAttrib1fv, void(GLuint indx, const GLfloat* values));
405
406 MOCK_METHOD3(VertexAttrib2f, void(GLuint indx, GLfloat x, GLfloat y));
407
408 MOCK_METHOD2(VertexAttrib2fv, void(GLuint indx, const GLfloat* values));
409
410 MOCK_METHOD4(VertexAttrib3f,
411 void(GLuint indx, GLfloat x, GLfloat y, GLfloat z));
412
413 MOCK_METHOD2(VertexAttrib3fv, void(GLuint indx, const GLfloat* values));
414
415 MOCK_METHOD5(VertexAttrib4f, void(
416 GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w));
417
418 MOCK_METHOD2(VertexAttrib4fv, void(GLuint indx, const GLfloat* values));
419
420 MOCK_METHOD6(VertexAttribPointer, void(
421 GLuint indx, GLint size, GLenum type, GLboolean normalized,
422 GLsizei stride, const void* ptr));
423
424 MOCK_METHOD4(Viewport, void(GLint x, GLint y, GLsizei width, GLsizei height));
425
426 MOCK_METHOD0(SwapBuffers, void());
[email protected]29a9eb52010-04-13 09:04:23427
[email protected]269200b12010-11-18 22:53:06428 MOCK_METHOD4(GetMaxValueInBufferCHROMIUM, GLuint(
[email protected]29a9eb52010-04-13 09:04:23429 GLuint buffer_id, GLsizei count, GLenum type, GLuint offset));
[email protected]2416c5692011-01-26 19:39:20430
431 MOCK_METHOD2(GenFencesNV, void(GLsizei n, GLuint *fences));
432
433 MOCK_METHOD2(DeleteFencesNV, void(GLsizei n, const GLuint *fences));
434
435 MOCK_METHOD2(SetFenceNV, void(GLuint fence, GLenum condition));
436
437 MOCK_METHOD1(TestFenceNV, GLboolean(GLuint fence));
438
439 MOCK_METHOD1(FinishFenceNV, void(GLuint fence));
440
441 MOCK_METHOD1(IsFenceNV, GLboolean(GLuint fence));
442
443 MOCK_METHOD3(GetFenceivNV, void(GLuint fence, GLenum pname, GLint *params));
[email protected]fbe20372011-06-01 01:46:38444
445 MOCK_METHOD1(SetSurfaceCHROMIUM, void(GLuint));
[email protected]38d139d2011-07-14 00:38:43446
447 MOCK_METHOD0(GetGraphicsResetStatusARB, GLenum());
[email protected]69d80ae2009-12-23 08:57:42448};
449
[email protected]b9363b22010-06-09 22:06:15450} // namespace gfx
[email protected]69d80ae2009-12-23 08:57:42451
[email protected]269200b12010-11-18 22:53:06452#endif // GPU_COMMAND_BUFFER_COMMON_GL_MOCK_H_
453