blob: b04cdca6d4a0e3aa1fe20c744e676bc07f9fd2eb [file] [log] [blame]
bsalomon@google.com9c58f462013-02-26 14:45:41 +00001/*
2 * Copyright 2013 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8#ifndef GrGLNoOpInterface_DEFINED
9#define GrGLNoOpInterface_DEFINED
10
11#include "gl/GrGLDefines.h"
12#include "gl/GrGLFunctions.h"
13
14// These are constants/functions that are common to the Null and Debug GL interface implementations.
15
16GrGLvoid GR_GL_FUNCTION_TYPE noOpGLBlendColor(GrGLclampf red,
17 GrGLclampf green,
18 GrGLclampf blue,
19 GrGLclampf alpha);
20
21GrGLvoid GR_GL_FUNCTION_TYPE noOpGLBindFragDataLocation(GrGLuint program,
22 GrGLuint colorNumber,
23 const GrGLchar* name);
24
25GrGLvoid GR_GL_FUNCTION_TYPE noOpGLBlendFunc(GrGLenum sfactor,
26 GrGLenum dfactor);
27
28GrGLvoid GR_GL_FUNCTION_TYPE noOpGLBufferSubData(GrGLenum target,
29 GrGLintptr offset,
30 GrGLsizeiptr size,
31 const GrGLvoid* data);
32
33GrGLvoid GR_GL_FUNCTION_TYPE noOpGLClear(GrGLbitfield mask);
34
35GrGLvoid GR_GL_FUNCTION_TYPE noOpGLClearColor(GrGLclampf red,
36 GrGLclampf green,
37 GrGLclampf blue,
38 GrGLclampf alpha);
39
40GrGLvoid GR_GL_FUNCTION_TYPE noOpGLClearStencil(GrGLint s);
41
42GrGLvoid GR_GL_FUNCTION_TYPE noOpGLColorMask(GrGLboolean red,
43 GrGLboolean green,
44 GrGLboolean blue,
45 GrGLboolean alpha);
46
47GrGLvoid GR_GL_FUNCTION_TYPE noOpGLCompileShader(GrGLuint shader);
48
49GrGLvoid GR_GL_FUNCTION_TYPE noOpGLCompressedTexImage2D(GrGLenum target,
50 GrGLint level,
51 GrGLenum internalformat,
52 GrGLsizei width,
53 GrGLsizei height,
54 GrGLint border,
55 GrGLsizei imageSize,
56 const GrGLvoid* data);
57
commit-bot@chromium.org98168bb2013-04-11 22:00:34 +000058GrGLvoid GR_GL_FUNCTION_TYPE noOpGLCopyTexSubImage2D(GrGLenum target,
59 GrGLint level,
60 GrGLint xoffset,
61 GrGLint yoffset,
62 GrGLint x,
63 GrGLint y,
64 GrGLsizei width,
65 GrGLsizei height);
66
bsalomon@google.com9c58f462013-02-26 14:45:41 +000067GrGLvoid GR_GL_FUNCTION_TYPE noOpGLCullFace(GrGLenum mode);
68
69GrGLvoid GR_GL_FUNCTION_TYPE noOpGLDepthMask(GrGLboolean flag);
70
71GrGLvoid GR_GL_FUNCTION_TYPE noOpGLDisable(GrGLenum cap);
72
73GrGLvoid GR_GL_FUNCTION_TYPE noOpGLDisableVertexAttribArray(GrGLuint index);
74
75GrGLvoid GR_GL_FUNCTION_TYPE noOpGLDrawArrays(GrGLenum mode, GrGLint first, GrGLsizei count);
76
77GrGLvoid GR_GL_FUNCTION_TYPE noOpGLDrawBuffer(GrGLenum mode);
78
79GrGLvoid GR_GL_FUNCTION_TYPE noOpGLDrawBuffers(GrGLsizei n,
80 const GrGLenum* bufs);
81
82GrGLvoid GR_GL_FUNCTION_TYPE noOpGLDrawElements(GrGLenum mode,
83 GrGLsizei count,
84 GrGLenum type,
85 const GrGLvoid* indices);
86
87GrGLvoid GR_GL_FUNCTION_TYPE noOpGLEnable(GrGLenum cap);
88
89GrGLvoid GR_GL_FUNCTION_TYPE noOpGLEnableVertexAttribArray(GrGLuint index);
90
91GrGLvoid GR_GL_FUNCTION_TYPE noOpGLEndQuery(GrGLenum target);
92
93GrGLvoid GR_GL_FUNCTION_TYPE noOpGLFinish();
94
95GrGLvoid GR_GL_FUNCTION_TYPE noOpGLFlush();
96
97GrGLvoid GR_GL_FUNCTION_TYPE noOpGLFrontFace(GrGLenum mode);
98
99GrGLvoid GR_GL_FUNCTION_TYPE noOpGLLineWidth(GrGLfloat width);
100
101GrGLvoid GR_GL_FUNCTION_TYPE noOpGLLinkProgram(GrGLuint program);
102
103GrGLvoid GR_GL_FUNCTION_TYPE noOpGLQueryCounter(GrGLuint id,
104 GrGLenum target);
105
106GrGLvoid GR_GL_FUNCTION_TYPE noOpGLReadBuffer(GrGLenum src);
107
108GrGLvoid GR_GL_FUNCTION_TYPE noOpGLScissor(GrGLint x,
109 GrGLint y,
110 GrGLsizei width,
111 GrGLsizei height);
112
113GrGLvoid GR_GL_FUNCTION_TYPE noOpGLShaderSource(GrGLuint shader,
114 GrGLsizei count,
bsalomon@google.com26fb61a2013-02-28 19:26:04 +0000115#if GR_GL_USE_NEW_SHADER_SOURCE_SIGNATURE
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000116 const char* const * str,
117#else
118 const char** str,
119#endif
120 const GrGLint* length);
121
122GrGLvoid GR_GL_FUNCTION_TYPE noOpGLStencilFunc(GrGLenum func, GrGLint ref, GrGLuint mask);
123
124GrGLvoid GR_GL_FUNCTION_TYPE noOpGLStencilFuncSeparate(GrGLenum face,
125 GrGLenum func,
126 GrGLint ref,
127 GrGLuint mask);
128
129GrGLvoid GR_GL_FUNCTION_TYPE noOpGLStencilMask(GrGLuint mask);
130
131GrGLvoid GR_GL_FUNCTION_TYPE noOpGLStencilMaskSeparate(GrGLenum face, GrGLuint mask);
132
133GrGLvoid GR_GL_FUNCTION_TYPE noOpGLStencilOp(GrGLenum fail, GrGLenum zfail, GrGLenum zpass);
134
135GrGLvoid GR_GL_FUNCTION_TYPE noOpGLStencilOpSeparate(GrGLenum face,
136 GrGLenum fail,
137 GrGLenum zfail,
138 GrGLenum zpass);
139
140GrGLvoid GR_GL_FUNCTION_TYPE noOpGLTexImage2D(GrGLenum target,
141 GrGLint level,
142 GrGLint internalformat,
143 GrGLsizei width,
144 GrGLsizei height,
145 GrGLint border,
146 GrGLenum format,
147 GrGLenum type,
148 const GrGLvoid* pixels);
149
150GrGLvoid GR_GL_FUNCTION_TYPE noOpGLTexParameteri(GrGLenum target, GrGLenum pname, GrGLint param);
151
152GrGLvoid GR_GL_FUNCTION_TYPE noOpGLTexParameteriv(GrGLenum target,
153 GrGLenum pname,
154 const GrGLint* params);
155
156GrGLvoid GR_GL_FUNCTION_TYPE noOpGLTexStorage2D(GrGLenum target,
157 GrGLsizei levels,
158 GrGLenum internalformat,
159 GrGLsizei width,
160 GrGLsizei height);
161
162GrGLvoid GR_GL_FUNCTION_TYPE noOpGLTexSubImage2D(GrGLenum target,
163 GrGLint level,
164 GrGLint xoffset,
165 GrGLint yoffset,
166 GrGLsizei width,
167 GrGLsizei height,
168 GrGLenum format,
169 GrGLenum type,
170 const GrGLvoid* pixels);
171
172GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform1f(GrGLint location, GrGLfloat v0);
173
174GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform1i(GrGLint location, GrGLint v0);
175
176GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform1fv(GrGLint location,
177 GrGLsizei count,
178 const GrGLfloat* v);
179
180GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform1iv(GrGLint location,
181 GrGLsizei count,
182 const GrGLint* v);
183
184GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform2f(GrGLint location,
185 GrGLfloat v0,
186 GrGLfloat v1);
187
188GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform2i(GrGLint location, GrGLint v0, GrGLint v1);
189
190GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform2fv(GrGLint location,
191 GrGLsizei count,
192 const GrGLfloat* v);
193
194GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform2iv(GrGLint location,
195 GrGLsizei count,
196 const GrGLint* v);
197
198GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform3f(GrGLint location,
199 GrGLfloat v0,
200 GrGLfloat v1,
201 GrGLfloat v2);
202
203GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform3i(GrGLint location,
204 GrGLint v0,
205 GrGLint v1,
206 GrGLint v2);
207
208GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform3fv(GrGLint location,
209 GrGLsizei count,
210 const GrGLfloat* v);
211
212GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform3iv(GrGLint location,
213 GrGLsizei count,
214 const GrGLint* v);
215
216GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform4f(GrGLint location,
217 GrGLfloat v0,
218 GrGLfloat v1,
219 GrGLfloat v2,
220 GrGLfloat v3);
221
222GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform4i(GrGLint location,
223 GrGLint v0,
224 GrGLint v1,
225 GrGLint v2,
226 GrGLint v3);
227
228GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform4fv(GrGLint location,
229 GrGLsizei count,
230 const GrGLfloat* v);
231
232GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform4iv(GrGLint location,
233 GrGLsizei count,
234 const GrGLint* v);
235
236GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniformMatrix2fv(GrGLint location,
237 GrGLsizei count,
238 GrGLboolean transpose,
239 const GrGLfloat* value);
240
241GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniformMatrix3fv(GrGLint location,
242 GrGLsizei count,
243 GrGLboolean transpose,
244 const GrGLfloat* value);
245
246GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniformMatrix4fv(GrGLint location,
247 GrGLsizei count,
248 GrGLboolean transpose,
249 const GrGLfloat* value);
250
251 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLVertexAttrib4fv(GrGLuint indx, const GrGLfloat* values);
252
253GrGLvoid GR_GL_FUNCTION_TYPE noOpGLVertexAttribPointer(GrGLuint indx,
254 GrGLint size,
255 GrGLenum type,
256 GrGLboolean normalized,
257 GrGLsizei stride,
258 const GrGLvoid* ptr);
259
260GrGLvoid GR_GL_FUNCTION_TYPE noOpGLViewport(GrGLint x,
261 GrGLint y,
262 GrGLsizei width,
263 GrGLsizei height);
264
265 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetFramebufferAttachmentParameteriv(GrGLenum target,
266 GrGLenum attachment,
267 GrGLenum pname,
268 GrGLint* params);
269
270GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetRenderbufferParameteriv(GrGLenum target,
271 GrGLenum pname,
272 GrGLint* params);
273
274GrGLvoid GR_GL_FUNCTION_TYPE noOpGLRenderbufferStorage(GrGLenum target,
275 GrGLenum internalformat,
276 GrGLsizei width,
277 GrGLsizei height);
278
279GrGLvoid GR_GL_FUNCTION_TYPE noOpGLRenderbufferStorageMultisample(GrGLenum target,
280 GrGLsizei samples,
281 GrGLenum internalformat,
282 GrGLsizei width,
283 GrGLsizei height);
284
285GrGLvoid GR_GL_FUNCTION_TYPE noOpGLBlitFramebuffer(GrGLint srcX0,
286 GrGLint srcY0,
287 GrGLint srcX1,
288 GrGLint srcY1,
289 GrGLint dstX0,
290 GrGLint dstY0,
291 GrGLint dstX1,
292 GrGLint dstY1,
293 GrGLbitfield mask,
294 GrGLenum filter);
295
296GrGLvoid GR_GL_FUNCTION_TYPE noOpGLResolveMultisampleFramebuffer();
297
298GrGLvoid GR_GL_FUNCTION_TYPE noOpGLBindFragDataLocationIndexed(GrGLuint program,
299 GrGLuint colorNumber,
300 GrGLuint index,
301 const GrGLchar * name);
302
303GrGLenum GR_GL_FUNCTION_TYPE noOpGLCheckFramebufferStatus(GrGLenum target);
304
305// this function can be used for all glGen*(GLsize i, GLuint*) functions
306GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGenIds(GrGLsizei n, GrGLuint* ids);
307
308// this function function can be used for all glDelete*(GLsize i, const GLuint*)
309GrGLvoid GR_GL_FUNCTION_TYPE noOpGLDeleteIds(GrGLsizei n, const GrGLuint* ids);
310
311GrGLenum GR_GL_FUNCTION_TYPE noOpGLGetError();
312
313GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetIntegerv(GrGLenum pname, GrGLint* params);
314
315// can be used for both the program and shader info logs
316GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetInfoLog(GrGLuint program,
317 GrGLsizei bufsize,
318 GrGLsizei* length,
319 char* infolog);
320
321// can be used for both the program and shader params
322GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetShaderOrProgramiv(GrGLuint program,
323 GrGLenum pname,
324 GrGLint* params);
325
326// Queries on bogus GLs just don't do anything at all. We could potentially make the timers work.
327GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetQueryiv(GrGLenum GLtarget,
328 GrGLenum pname,
329 GrGLint *params);
330
331GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetQueryObjecti64v(GrGLuint id,
332 GrGLenum pname,
333 GrGLint64 *params);
334
335GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetQueryObjectiv(GrGLuint id, GrGLenum pname, GrGLint *params);
336
337GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetQueryObjectui64v(GrGLuint id,
338 GrGLenum pname,
339 GrGLuint64 *params);
340
341GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetQueryObjectuiv(GrGLuint id,
342 GrGLenum pname,
343 GrGLuint *params);
344
345const GrGLubyte* GR_GL_FUNCTION_TYPE noOpGLGetString(GrGLenum name);
346
bsalomon@google.com1744f972013-02-26 21:46:32 +0000347const GrGLubyte* GR_GL_FUNCTION_TYPE noOpGLGetStringi(GrGLenum name, GrGLuint i);
348
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000349GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetTexLevelParameteriv(GrGLenum target,
350 GrGLint level,
351 GrGLenum pname,
352 GrGLint* params);
353
354GrGLint GR_GL_FUNCTION_TYPE noOpGLGetUniformLocation(GrGLuint program, const char* name);
355
356#endif