blob: 765b8f6087a62fc2ce5423beff44262aef9267ea [file] [log] [blame]
[email protected]b9363b22010-06-09 22:06:151// Copyright (c) 2010 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]b9363b22010-06-09 22:06:158#ifndef APP_GFX_GL_GL_MOCK_H_
9#define APP_GFX_GL_GL_MOCK_H_
[email protected]32b76ef2010-07-26 23:08:2410#pragma once
[email protected]69d80ae2009-12-23 08:57:4211
[email protected]b9363b22010-06-09 22:06:1512#include "app/gfx/gl/gl_interface.h"
[email protected]69d80ae2009-12-23 08:57:4213#include "testing/gmock/include/gmock/gmock.h"
14
[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
31 MOCK_METHOD2(BindFramebufferEXT, void(GLenum target, GLuint framebuffer));
32
33 MOCK_METHOD2(BindRenderbufferEXT, void(GLenum target, GLuint renderbuffer));
34
35 MOCK_METHOD2(BindTexture, void(GLenum target, GLuint texture));
36
37 MOCK_METHOD4(BlendColor, void(
38 GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha));
39
40 MOCK_METHOD1(BlendEquation, void(GLenum mode));
41
42 MOCK_METHOD2(BlendEquationSeparate, void(GLenum modeRGB, GLenum modeAlpha));
43
44 MOCK_METHOD2(BlendFunc, void(GLenum sfactor, GLenum dfactor));
45
46 MOCK_METHOD4(BlendFuncSeparate, void(
47 GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha));
48
[email protected]34ff8b0c2010-10-01 20:06:0249 MOCK_METHOD10(BlitFramebufferANGLE, void(
50 GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
51 GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1,
52 GLbitfield mask, GLenum filter));
53
[email protected]ce2d4122010-08-09 20:45:0754 MOCK_METHOD10(BlitFramebufferEXT, void(
55 GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
56 GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1,
57 GLbitfield mask, GLenum filter));
58
[email protected]69d80ae2009-12-23 08:57:4259 MOCK_METHOD4(BufferData, void(
60 GLenum target, GLsizeiptr size, const void* data, GLenum usage));
61
62 MOCK_METHOD4(BufferSubData, void(
63 GLenum target, GLintptr offset, GLsizeiptr size, const void* data));
64
65 MOCK_METHOD1(CheckFramebufferStatusEXT, GLenum(GLenum target));
66
67 MOCK_METHOD1(Clear, void(GLbitfield mask));
68
69 MOCK_METHOD4(ClearColor, void(
70 GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha));
71
[email protected]b9363b22010-06-09 22:06:1572 MOCK_METHOD1(ClearDepth, void(GLclampd depth));
73
74 MOCK_METHOD1(ClearDepthf, void(GLclampf depth));
[email protected]69d80ae2009-12-23 08:57:4275
76 MOCK_METHOD1(ClearStencil, void(GLint s));
77
78 MOCK_METHOD4(ColorMask, void(
79 GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha));
80
81 MOCK_METHOD1(CompileShader, void(GLuint shader));
82
83 MOCK_METHOD8(CompressedTexImage2D, void(
84 GLenum target, GLint level, GLenum internalformat, GLsizei width,
85 GLsizei height, GLint border, GLsizei imageSize, const void* data));
86
87 MOCK_METHOD9(CompressedTexSubImage2D, void(
88 GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width,
89 GLsizei height, GLenum format, GLsizei imageSize, const void* data));
90
91 MOCK_METHOD8(CopyTexImage2D, void(
92 GLenum target, GLint level, GLenum internalformat, GLint x, GLint y,
93 GLsizei width, GLsizei height, GLint border));
94
95 MOCK_METHOD8(CopyTexSubImage2D, void(
96 GLenum target, GLint level, GLint xoffset, GLint yoffset,
97 GLint x, GLint y, GLsizei width, GLsizei height));
98
99 MOCK_METHOD0(CreateProgram, GLuint());
100
101 MOCK_METHOD1(CreateShader, GLuint(GLenum type));
102
103 MOCK_METHOD1(CullFace, void(GLenum mode));
104
105 MOCK_METHOD2(DeleteBuffersARB, void(GLsizei n, const GLuint* buffers));
106
107 MOCK_METHOD2(DeleteFramebuffersEXT,
108 void(GLsizei n, const GLuint* framebuffers));
109
110 MOCK_METHOD1(DeleteProgram, void(GLuint program));
111
112 MOCK_METHOD2(DeleteRenderbuffersEXT, void(
113 GLsizei n, const GLuint* renderbuffers));
114
115 MOCK_METHOD1(DeleteShader, void(GLuint shader));
116
117 MOCK_METHOD2(DeleteTextures, void(GLsizei n, const GLuint* textures));
118
119 MOCK_METHOD1(DepthFunc, void(GLenum func));
120
121 MOCK_METHOD1(DepthMask, void(GLboolean flag));
122
[email protected]b9363b22010-06-09 22:06:15123 MOCK_METHOD2(DepthRange, void(GLclampd zNear, GLclampd zFar));
124
125 MOCK_METHOD2(DepthRangef, void(GLclampf zNear, GLclampf zFar));
[email protected]69d80ae2009-12-23 08:57:42126
127 MOCK_METHOD2(DetachShader, void(GLuint program, GLuint shader));
128
129 MOCK_METHOD1(Disable, void(GLenum cap));
130
131 MOCK_METHOD1(DisableVertexAttribArray, void(GLuint index));
132
133 MOCK_METHOD3(DrawArrays, void(GLenum mode, GLint first, GLsizei count));
134
135 MOCK_METHOD4(DrawElements, void(
136 GLenum mode, GLsizei count, GLenum type, const void* indices));
137
138 MOCK_METHOD1(Enable, void(GLenum cap));
139
140 MOCK_METHOD1(EnableVertexAttribArray, void(GLuint index));
141
142 MOCK_METHOD0(Finish, void());
143
144 MOCK_METHOD0(Flush, void());
145
146 MOCK_METHOD4(FramebufferRenderbufferEXT, void(
147 GLenum target, GLenum attachment, GLenum renderbuffertarget,
148 GLuint renderbuffer));
149
150 MOCK_METHOD5(FramebufferTexture2DEXT, void(
151 GLenum target, GLenum attachment, GLenum textarget, GLuint texture,
152 GLint level));
153
154 MOCK_METHOD1(FrontFace, void(GLenum mode));
155
156 MOCK_METHOD2(GenBuffersARB, void(GLsizei n, GLuint* buffers));
157
158 MOCK_METHOD1(GenerateMipmapEXT, void(GLenum target));
159
160 MOCK_METHOD2(GenFramebuffersEXT, void(GLsizei n, GLuint* framebuffers));
161
162 MOCK_METHOD2(GenRenderbuffersEXT, void(GLsizei n, GLuint* renderbuffers));
163
164 MOCK_METHOD2(GenTextures, void(GLsizei n, GLuint* textures));
165
166 MOCK_METHOD7(GetActiveAttrib, void(
167 GLuint program, GLuint index, GLsizei bufsize, GLsizei* length,
168 GLint* size, GLenum* type, char* name));
169
170 MOCK_METHOD7(GetActiveUniform, void(
171 GLuint program, GLuint index, GLsizei bufsize, GLsizei* length,
172 GLint* size, GLenum* type, char* name));
173
174 MOCK_METHOD4(GetAttachedShaders, void(
175 GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders));
176
177 MOCK_METHOD2(GetAttribLocation, GLint(GLuint program, const char* name));
178
179 MOCK_METHOD2(GetBooleanv, void(GLenum pname, GLboolean* params));
180
181 MOCK_METHOD3(GetBufferParameteriv, void(
182 GLenum target, GLenum pname, GLint* params));
183
184 MOCK_METHOD0(GetError, GLenum());
185
186 MOCK_METHOD2(GetFloatv, void(GLenum pname, GLfloat* params));
187
188 MOCK_METHOD4(GetFramebufferAttachmentParameterivEXT, void(
189 GLenum target, GLenum attachment, GLenum pname, GLint* params));
190
191 MOCK_METHOD2(GetIntegerv, void(GLenum pname, GLint* params));
192
193 MOCK_METHOD3(GetProgramiv, void(GLuint program, GLenum pname, GLint* params));
194
195 MOCK_METHOD4(GetProgramInfoLog, void(
196 GLuint program, GLsizei bufsize, GLsizei* length, char* infolog));
197
198 MOCK_METHOD3(GetRenderbufferParameterivEXT, void(
199 GLenum target, GLenum pname, GLint* params));
200
201 MOCK_METHOD3(GetShaderiv, void(GLuint shader, GLenum pname, GLint* params));
202
203 MOCK_METHOD4(GetShaderInfoLog, void(
204 GLuint shader, GLsizei bufsize, GLsizei* length, char* infolog));
205
206 MOCK_METHOD4(GetShaderPrecisionFormat, void(
207 GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision));
208
209 MOCK_METHOD4(GetShaderSource, void(
210 GLuint shader, GLsizei bufsize, GLsizei* length, char* source));
211
212 MOCK_METHOD1(GetString, const GLubyte*(GLenum name));
213
214 MOCK_METHOD3(GetTexParameterfv, void(
215 GLenum target, GLenum pname, GLfloat* params));
216
217 MOCK_METHOD3(GetTexParameteriv, void(
218 GLenum target, GLenum pname, GLint* params));
219
220 MOCK_METHOD3(GetUniformfv,
221 void(GLuint program, GLint location, GLfloat* params));
222
223 MOCK_METHOD3(GetUniformiv,
224 void(GLuint program, GLint location, GLint* params));
225
226 MOCK_METHOD2(GetUniformLocation, GLint(GLuint program, const char* name));
227
228 MOCK_METHOD3(GetVertexAttribfv, void(
229 GLuint index, GLenum pname, GLfloat* params));
230
231 MOCK_METHOD3(GetVertexAttribiv,
232 void(GLuint index, GLenum pname, GLint* params));
233
234 MOCK_METHOD3(GetVertexAttribPointerv, void(
235 GLuint index, GLenum pname, void** pointer));
236
237 MOCK_METHOD2(Hint, void(GLenum target, GLenum mode));
238
239 MOCK_METHOD1(IsBuffer, GLboolean(GLuint buffer));
240
241 MOCK_METHOD1(IsEnabled, GLboolean(GLenum cap));
242
[email protected]0f000f32010-08-10 17:59:09243 MOCK_METHOD1(IsFramebufferEXT, GLboolean(GLuint framebuffer));
[email protected]69d80ae2009-12-23 08:57:42244
245 MOCK_METHOD1(IsProgram, GLboolean(GLuint program));
246
[email protected]0f000f32010-08-10 17:59:09247 MOCK_METHOD1(IsRenderbufferEXT, GLboolean(GLuint renderbuffer));
[email protected]69d80ae2009-12-23 08:57:42248
249 MOCK_METHOD1(IsShader, GLboolean(GLuint shader));
250
251 MOCK_METHOD1(IsTexture, GLboolean(GLuint texture));
252
253 MOCK_METHOD1(LineWidth, void(GLfloat width));
254
255 MOCK_METHOD1(LinkProgram, void(GLuint program));
256
257 MOCK_METHOD2(PixelStorei, void(GLenum pname, GLint param));
258
259 MOCK_METHOD2(PolygonOffset, void(GLfloat factor, GLfloat units));
260
261 MOCK_METHOD7(ReadPixels, void(
262 GLint x, GLint y, GLsizei width, GLsizei height, GLenum format,
263 GLenum type, void* pixels));
264
[email protected]b273e432010-04-12 17:23:58265 MOCK_METHOD0(ReleaseShaderCompiler, void());
266
[email protected]69d80ae2009-12-23 08:57:42267 MOCK_METHOD4(RenderbufferStorageEXT, void(
268 GLenum target, GLenum internalformat, GLsizei width, GLsizei height));
269
[email protected]34ff8b0c2010-10-01 20:06:02270 MOCK_METHOD5(RenderbufferStorageMultisampleANGLE, void(
271 GLenum target, GLsizei samples, GLenum internalformat,
272 GLsizei width, GLsizei height));
273
[email protected]ce2d4122010-08-09 20:45:07274 MOCK_METHOD5(RenderbufferStorageMultisampleEXT, void(
275 GLenum target, GLsizei samples, GLenum internalformat,
276 GLsizei width, GLsizei height));
277
[email protected]69d80ae2009-12-23 08:57:42278 MOCK_METHOD2(SampleCoverage, void(GLclampf value, GLboolean invert));
279
280 MOCK_METHOD4(Scissor, void(GLint x, GLint y, GLsizei width, GLsizei height));
281
[email protected]b273e432010-04-12 17:23:58282 MOCK_METHOD5(ShaderBinary, void(
283 GLsizei n, const GLuint* shaders, GLenum binaryformat,
284 const void* binary, GLsizei length));
285
[email protected]69d80ae2009-12-23 08:57:42286 MOCK_METHOD4(ShaderSource, void(
287 GLuint shader, GLsizei count, const char** str, const GLint* length));
288
289 MOCK_METHOD3(StencilFunc, void(GLenum func, GLint ref, GLuint mask));
290
291 MOCK_METHOD4(StencilFuncSeparate, void(
292 GLenum face, GLenum func, GLint ref, GLuint mask));
293
294 MOCK_METHOD1(StencilMask, void(GLuint mask));
295
296 MOCK_METHOD2(StencilMaskSeparate, void(GLenum face, GLuint mask));
297
298 MOCK_METHOD3(StencilOp, void(GLenum fail, GLenum zfail, GLenum zpass));
299
300 MOCK_METHOD4(StencilOpSeparate, void(
301 GLenum face, GLenum fail, GLenum zfail, GLenum zpass));
302
303 MOCK_METHOD9(TexImage2D, void(
304 GLenum target, GLint level, GLint internalformat, GLsizei width,
305 GLsizei height, GLint border, GLenum format, GLenum type,
306 const void* pixels));
307
308 MOCK_METHOD3(TexParameterf, void(GLenum target, GLenum pname, GLfloat param));
309
310 MOCK_METHOD3(TexParameterfv, void(
311 GLenum target, GLenum pname, const GLfloat* params));
312
313 MOCK_METHOD3(TexParameteri, void(GLenum target, GLenum pname, GLint param));
314
315 MOCK_METHOD3(TexParameteriv, void(
316 GLenum target, GLenum pname, const GLint* params));
317
318 MOCK_METHOD9(TexSubImage2D, void(
319 GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width,
320 GLsizei height, GLenum format, GLenum type, const void* pixels));
321
322 MOCK_METHOD2(Uniform1f, void(GLint location, GLfloat x));
323
324 MOCK_METHOD3(Uniform1fv,
325 void(GLint location, GLsizei count, const GLfloat* v));
326
327 MOCK_METHOD2(Uniform1i, void(GLint location, GLint x));
328
329 MOCK_METHOD3(Uniform1iv, void(GLint location, GLsizei count, const GLint* v));
330
331 MOCK_METHOD3(Uniform2f, void(GLint location, GLfloat x, GLfloat y));
332
333 MOCK_METHOD3(Uniform2fv,
334 void(GLint location, GLsizei count, const GLfloat* v));
335
336 MOCK_METHOD3(Uniform2i, void(GLint location, GLint x, GLint y));
337
338 MOCK_METHOD3(Uniform2iv, void(GLint location, GLsizei count, const GLint* v));
339
340 MOCK_METHOD4(Uniform3f,
341 void(GLint location, GLfloat x, GLfloat y, GLfloat z));
342
343 MOCK_METHOD3(Uniform3fv,
344 void(GLint location, GLsizei count, const GLfloat* v));
345
346 MOCK_METHOD4(Uniform3i, void(GLint location, GLint x, GLint y, GLint z));
347
348 MOCK_METHOD3(Uniform3iv, void(GLint location, GLsizei count, const GLint* v));
349
350 MOCK_METHOD5(Uniform4f, void(
351 GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w));
352
353 MOCK_METHOD3(Uniform4fv,
354 void(GLint location, GLsizei count, const GLfloat* v));
355
356 MOCK_METHOD5(Uniform4i,
357 void(GLint location, GLint x, GLint y, GLint z, GLint w));
358
359 MOCK_METHOD3(Uniform4iv, void(GLint location, GLsizei count, const GLint* v));
360
361 MOCK_METHOD4(UniformMatrix2fv, void(
362 GLint location, GLsizei count, GLboolean transpose,
363 const GLfloat* value));
364
365 MOCK_METHOD4(UniformMatrix3fv, void(
366 GLint location, GLsizei count, GLboolean transpose,
367 const GLfloat* value));
368
369 MOCK_METHOD4(UniformMatrix4fv, void(
370 GLint location, GLsizei count, GLboolean transpose,
371 const GLfloat* value));
372
373 MOCK_METHOD1(UseProgram, void(GLuint program));
374
375 MOCK_METHOD1(ValidateProgram, void(GLuint program));
376
377 MOCK_METHOD2(VertexAttrib1f, void(GLuint indx, GLfloat x));
378
379 MOCK_METHOD2(VertexAttrib1fv, void(GLuint indx, const GLfloat* values));
380
381 MOCK_METHOD3(VertexAttrib2f, void(GLuint indx, GLfloat x, GLfloat y));
382
383 MOCK_METHOD2(VertexAttrib2fv, void(GLuint indx, const GLfloat* values));
384
385 MOCK_METHOD4(VertexAttrib3f,
386 void(GLuint indx, GLfloat x, GLfloat y, GLfloat z));
387
388 MOCK_METHOD2(VertexAttrib3fv, void(GLuint indx, const GLfloat* values));
389
390 MOCK_METHOD5(VertexAttrib4f, void(
391 GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w));
392
393 MOCK_METHOD2(VertexAttrib4fv, void(GLuint indx, const GLfloat* values));
394
395 MOCK_METHOD6(VertexAttribPointer, void(
396 GLuint indx, GLint size, GLenum type, GLboolean normalized,
397 GLsizei stride, const void* ptr));
398
399 MOCK_METHOD4(Viewport, void(GLint x, GLint y, GLsizei width, GLsizei height));
400
401 MOCK_METHOD0(SwapBuffers, void());
[email protected]29a9eb52010-04-13 09:04:23402
403 MOCK_METHOD4(GetMaxValueInBuffer, GLuint(
404 GLuint buffer_id, GLsizei count, GLenum type, GLuint offset));
[email protected]69d80ae2009-12-23 08:57:42405};
406
[email protected]b9363b22010-06-09 22:06:15407} // namespace gfx
[email protected]69d80ae2009-12-23 08:57:42408
[email protected]b9363b22010-06-09 22:06:15409#endif // APP_GFX_GL_GL_MOCK_H_