blob: 6b8880ed81c9c19ad1bf646438b4a88fa41e2ba1 [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#include "GrGLNoOpInterface.h"
bsalomon@google.com1744f972013-02-26 21:46:32 +00009#include "SkString.h"
10#include "SkThread.h"
bsalomon@google.com9c58f462013-02-26 14:45:41 +000011
12// the OpenGLES 2.0 spec says this must be >= 128
13static const GrGLint kDefaultMaxVertexUniformVectors = 128;
14
15// the OpenGLES 2.0 spec says this must be >=16
16static const GrGLint kDefaultMaxFragmentUniformVectors = 16;
17
18// the OpenGLES 2.0 spec says this must be >= 8
19static const GrGLint kDefaultMaxVertexAttribs = 8;
20
21// the OpenGLES 2.0 spec says this must be >= 8
22static const GrGLint kDefaultMaxVaryingVectors = 8;
23
bsalomon@google.com1744f972013-02-26 21:46:32 +000024static const char* kExtensions[] = {
25 "GL_ARB_framebuffer_object",
26 "GL_ARB_blend_func_extended",
27 "GL_ARB_timer_query",
28 "GL_ARB_draw_buffers",
29 "GL_ARB_occlusion_query",
30 "GL_EXT_blend_color",
31 "GL_EXT_stencil_wrap"
32};
33
34namespace {
35const GrGLubyte* combined_extensions_string() {
36 static SkString gExtString;
37 static SkMutex gMutex;
38 gMutex.acquire();
39 if (0 == gExtString.size()) {
commit-bot@chromium.org972f9cd2014-03-28 17:58:28 +000040 for (size_t i = 0; i < SK_ARRAY_COUNT(kExtensions) - 1; ++i) {
bsalomon@google.com1744f972013-02-26 21:46:32 +000041 gExtString.append(kExtensions[i]);
42 gExtString.append(" ");
43 }
commit-bot@chromium.org972f9cd2014-03-28 17:58:28 +000044 gExtString.append(kExtensions[SK_ARRAY_COUNT(kExtensions) - 1]);
bsalomon@google.com1744f972013-02-26 21:46:32 +000045 }
46 gMutex.release();
47 return (const GrGLubyte*) gExtString.c_str();
48}
49}
50
bsalomon@google.com9c58f462013-02-26 14:45:41 +000051GrGLvoid GR_GL_FUNCTION_TYPE noOpGLBlendColor(GrGLclampf red,
52 GrGLclampf green,
53 GrGLclampf blue,
54 GrGLclampf alpha) {
55}
56
57GrGLvoid GR_GL_FUNCTION_TYPE noOpGLBindFragDataLocation(GrGLuint program,
58 GrGLuint colorNumber,
59 const GrGLchar* name) {
60}
61
62GrGLvoid GR_GL_FUNCTION_TYPE noOpGLBlendFunc(GrGLenum sfactor,
63 GrGLenum dfactor) {
64}
65
66GrGLvoid GR_GL_FUNCTION_TYPE noOpGLBufferSubData(GrGLenum target,
67 GrGLintptr offset,
68 GrGLsizeiptr size,
69 const GrGLvoid* data) {
70}
71
72GrGLvoid GR_GL_FUNCTION_TYPE noOpGLClear(GrGLbitfield mask) {
73}
74
75GrGLvoid GR_GL_FUNCTION_TYPE noOpGLClearColor(GrGLclampf red,
76 GrGLclampf green,
77 GrGLclampf blue,
78 GrGLclampf alpha) {
79}
80
81GrGLvoid GR_GL_FUNCTION_TYPE noOpGLClearStencil(GrGLint s) {
82}
83
84GrGLvoid GR_GL_FUNCTION_TYPE noOpGLColorMask(GrGLboolean red,
bsalomon@google.com1744f972013-02-26 21:46:32 +000085 GrGLboolean green,
86 GrGLboolean blue,
87 GrGLboolean alpha) {
bsalomon@google.com9c58f462013-02-26 14:45:41 +000088}
89
90GrGLvoid GR_GL_FUNCTION_TYPE noOpGLCompileShader(GrGLuint shader) {
91}
92
93GrGLvoid GR_GL_FUNCTION_TYPE noOpGLCompressedTexImage2D(GrGLenum target,
94 GrGLint level,
95 GrGLenum internalformat,
96 GrGLsizei width,
97 GrGLsizei height,
98 GrGLint border,
99 GrGLsizei imageSize,
100 const GrGLvoid* data) {
101}
102
krajcevski37d20f72014-06-11 10:38:47 -0700103GrGLvoid GR_GL_FUNCTION_TYPE noOpGLCompressedTexSubImage2D(GrGLenum target,
104 GrGLint level,
105 GrGLint xoffset,
106 GrGLint yoffset,
107 GrGLsizei width,
108 GrGLsizei height,
109 GrGLenum format,
110 GrGLsizei imageSize,
111 const GrGLvoid* data) {
112}
113
commit-bot@chromium.org98168bb2013-04-11 22:00:34 +0000114GrGLvoid GR_GL_FUNCTION_TYPE noOpGLCopyTexSubImage2D(GrGLenum target,
115 GrGLint level,
116 GrGLint xoffset,
117 GrGLint yoffset,
118 GrGLint x,
119 GrGLint y,
120 GrGLsizei width,
121 GrGLsizei height) {
122}
123
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000124GrGLvoid GR_GL_FUNCTION_TYPE noOpGLCullFace(GrGLenum mode) {
125}
126
127GrGLvoid GR_GL_FUNCTION_TYPE noOpGLDepthMask(GrGLboolean flag) {
128}
129
130GrGLvoid GR_GL_FUNCTION_TYPE noOpGLDisable(GrGLenum cap) {
131}
132
133GrGLvoid GR_GL_FUNCTION_TYPE noOpGLDisableVertexAttribArray(GrGLuint index) {
134}
135
136GrGLvoid GR_GL_FUNCTION_TYPE noOpGLDrawArrays(GrGLenum mode,
137 GrGLint first,
138 GrGLsizei count) {
139}
140
141GrGLvoid GR_GL_FUNCTION_TYPE noOpGLDrawBuffer(GrGLenum mode) {
142}
143
144GrGLvoid GR_GL_FUNCTION_TYPE noOpGLDrawBuffers(GrGLsizei n,
145 const GrGLenum* bufs) {
146}
147
148GrGLvoid GR_GL_FUNCTION_TYPE noOpGLDrawElements(GrGLenum mode,
149 GrGLsizei count,
150 GrGLenum type,
151 const GrGLvoid* indices) {
152}
153
154GrGLvoid GR_GL_FUNCTION_TYPE noOpGLEnable(GrGLenum cap) {
155}
156
157GrGLvoid GR_GL_FUNCTION_TYPE noOpGLEnableVertexAttribArray(GrGLuint index) {
158}
159
160GrGLvoid GR_GL_FUNCTION_TYPE noOpGLEndQuery(GrGLenum target) {
161}
162
163GrGLvoid GR_GL_FUNCTION_TYPE noOpGLFinish() {
164}
165
166GrGLvoid GR_GL_FUNCTION_TYPE noOpGLFlush() {
167}
168
169GrGLvoid GR_GL_FUNCTION_TYPE noOpGLFrontFace(GrGLenum mode) {
170}
171
172GrGLvoid GR_GL_FUNCTION_TYPE noOpGLLineWidth(GrGLfloat width) {
173}
174
175GrGLvoid GR_GL_FUNCTION_TYPE noOpGLLinkProgram(GrGLuint program) {
176}
177
commit-bot@chromium.orgf6696722014-04-25 06:21:30 +0000178GrGLvoid GR_GL_FUNCTION_TYPE noOpGLMatrixLoadf(GrGLenum, const GrGLfloat*) {
commit-bot@chromium.org46fbfe02013-08-30 15:52:12 +0000179}
180
commit-bot@chromium.orgf6696722014-04-25 06:21:30 +0000181GrGLvoid GR_GL_FUNCTION_TYPE noOpGLMatrixLoadIdentity(GrGLenum) {
commit-bot@chromium.org46fbfe02013-08-30 15:52:12 +0000182}
183
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000184GrGLvoid GR_GL_FUNCTION_TYPE noOpGLQueryCounter(GrGLuint id, GrGLenum target) {
185}
186
187GrGLvoid GR_GL_FUNCTION_TYPE noOpGLReadBuffer(GrGLenum src) {
188}
189
190GrGLvoid GR_GL_FUNCTION_TYPE noOpGLScissor(GrGLint x,
bsalomon@google.com1744f972013-02-26 21:46:32 +0000191 GrGLint y,
192 GrGLsizei width,
193 GrGLsizei height) {
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000194}
195
196GrGLvoid GR_GL_FUNCTION_TYPE noOpGLShaderSource(GrGLuint shader,
197 GrGLsizei count,
bsalomon@google.com26fb61a2013-02-28 19:26:04 +0000198#if GR_GL_USE_NEW_SHADER_SOURCE_SIGNATURE
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000199 const char* const * str,
200#else
201 const char** str,
202#endif
203 const GrGLint* length) {
204}
205
206GrGLvoid GR_GL_FUNCTION_TYPE noOpGLStencilFunc(GrGLenum func, GrGLint ref, GrGLuint mask) {
207}
208
209GrGLvoid GR_GL_FUNCTION_TYPE noOpGLStencilFuncSeparate(GrGLenum face,
210 GrGLenum func,
211 GrGLint ref,
212 GrGLuint mask) {
213}
214
215GrGLvoid GR_GL_FUNCTION_TYPE noOpGLStencilMask(GrGLuint mask) {
216}
217
218GrGLvoid GR_GL_FUNCTION_TYPE noOpGLStencilMaskSeparate(GrGLenum face, GrGLuint mask) {
219}
220
221GrGLvoid GR_GL_FUNCTION_TYPE noOpGLStencilOp(GrGLenum fail, GrGLenum zfail, GrGLenum zpass) {
222}
223
224GrGLvoid GR_GL_FUNCTION_TYPE noOpGLStencilOpSeparate(GrGLenum face,
225 GrGLenum fail,
226 GrGLenum zfail,
227 GrGLenum zpass) {
228}
229
230GrGLvoid GR_GL_FUNCTION_TYPE noOpGLTexImage2D(GrGLenum target,
231 GrGLint level,
232 GrGLint internalformat,
233 GrGLsizei width,
234 GrGLsizei height,
235 GrGLint border,
236 GrGLenum format,
237 GrGLenum type,
238 const GrGLvoid* pixels) {
239}
240
241GrGLvoid GR_GL_FUNCTION_TYPE noOpGLTexParameteri(GrGLenum target,
242 GrGLenum pname,
243 GrGLint param) {
244}
245
246GrGLvoid GR_GL_FUNCTION_TYPE noOpGLTexParameteriv(GrGLenum target,
247 GrGLenum pname,
248 const GrGLint* params) {
249}
250
251GrGLvoid GR_GL_FUNCTION_TYPE noOpGLTexStorage2D(GrGLenum target,
252 GrGLsizei levels,
253 GrGLenum internalformat,
254 GrGLsizei width,
255 GrGLsizei height) {
256}
257
skia.committer@gmail.com81521132013-04-30 07:01:03 +0000258GrGLvoid GR_GL_FUNCTION_TYPE noOpGLDiscardFramebuffer(GrGLenum target,
259 GrGLsizei numAttachments,
robertphillips@google.coma6ffb582013-04-29 16:50:17 +0000260 const GrGLenum* attachments) {
261}
262
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000263GrGLvoid GR_GL_FUNCTION_TYPE noOpGLTexSubImage2D(GrGLenum target,
264 GrGLint level,
265 GrGLint xoffset,
266 GrGLint yoffset,
267 GrGLsizei width,
268 GrGLsizei height,
269 GrGLenum format,
270 GrGLenum type,
271 const GrGLvoid* pixels) {
272}
273
274GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform1f(GrGLint location, GrGLfloat v0) {
275}
276
277GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform1i(GrGLint location, GrGLint v0) {
278}
279
280GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform1fv(GrGLint location,
281 GrGLsizei count,
282 const GrGLfloat* v) {
283}
284
285GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform1iv(GrGLint location,
286 GrGLsizei count,
287 const GrGLint* v) {
288}
289
290GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform2f(GrGLint location, GrGLfloat v0, GrGLfloat v1) {
291}
292
293GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform2i(GrGLint location, GrGLint v0, GrGLint v1) {
294}
295
296GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform2fv(GrGLint location,
297 GrGLsizei count,
298 const GrGLfloat* v) {
299}
300
301GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform2iv(GrGLint location,
302 GrGLsizei count,
303 const GrGLint* v) {
304}
305
306GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform3f(GrGLint location,
307 GrGLfloat v0,
308 GrGLfloat v1,
309 GrGLfloat v2) {
310}
311
312GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform3i(GrGLint location,
313 GrGLint v0,
314 GrGLint v1,
315 GrGLint v2) {
316}
317
318GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform3fv(GrGLint location,
319 GrGLsizei count,
320 const GrGLfloat* v) {
321}
322
323GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform3iv(GrGLint location,
324 GrGLsizei count,
325 const GrGLint* v) {
326}
327
328GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform4f(GrGLint location,
329 GrGLfloat v0,
330 GrGLfloat v1,
331 GrGLfloat v2,
332 GrGLfloat v3) {
333}
334
335GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform4i(GrGLint location,
336 GrGLint v0,
337 GrGLint v1,
338 GrGLint v2,
339 GrGLint v3) {
340}
341
342GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform4fv(GrGLint location,
343 GrGLsizei count,
344 const GrGLfloat* v) {
345}
346
347GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform4iv(GrGLint location,
348 GrGLsizei count,
349 const GrGLint* v) {
350}
351
352GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniformMatrix2fv(GrGLint location,
353 GrGLsizei count,
354 GrGLboolean transpose,
355 const GrGLfloat* value) {
356}
357
358GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniformMatrix3fv(GrGLint location,
359 GrGLsizei count,
360 GrGLboolean transpose,
361 const GrGLfloat* value) {
362}
363
364GrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniformMatrix4fv(GrGLint location,
365 GrGLsizei count,
366 GrGLboolean transpose,
367 const GrGLfloat* value) {
368}
369
egdaniel27c15212014-10-24 15:00:50 -0700370 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLVertexAttrib1f(GrGLuint indx, const GrGLfloat value) {
371}
372
373 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLVertexAttrib2fv(GrGLuint indx, const GrGLfloat* values) {
374}
375
376 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLVertexAttrib3fv(GrGLuint indx, const GrGLfloat* values) {
377}
378
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000379 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLVertexAttrib4fv(GrGLuint indx, const GrGLfloat* values) {
380}
381
382GrGLvoid GR_GL_FUNCTION_TYPE noOpGLVertexAttribPointer(GrGLuint indx,
383 GrGLint size,
384 GrGLenum type,
385 GrGLboolean normalized,
386 GrGLsizei stride,
387 const GrGLvoid* ptr) {
388}
389
390GrGLvoid GR_GL_FUNCTION_TYPE noOpGLViewport(GrGLint x,
bsalomon@google.com1744f972013-02-26 21:46:32 +0000391 GrGLint y,
392 GrGLsizei width,
393 GrGLsizei height) {
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000394}
395
396 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetFramebufferAttachmentParameteriv(GrGLenum target,
bsalomon@google.com1744f972013-02-26 21:46:32 +0000397 GrGLenum attachment,
398 GrGLenum pname,
399 GrGLint* params) {
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000400}
401
402GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetRenderbufferParameteriv(GrGLenum target,
403 GrGLenum pname,
404 GrGLint* params) {
405}
406
407GrGLvoid GR_GL_FUNCTION_TYPE noOpGLRenderbufferStorage(GrGLenum target,
408 GrGLenum internalformat,
409 GrGLsizei width,
410 GrGLsizei height) {
411}
412
413GrGLvoid GR_GL_FUNCTION_TYPE noOpGLRenderbufferStorageMultisample(GrGLenum target,
414 GrGLsizei samples,
415 GrGLenum internalformat,
416 GrGLsizei width,
417 GrGLsizei height) {
418}
419
420GrGLvoid GR_GL_FUNCTION_TYPE noOpGLBlitFramebuffer(GrGLint srcX0,
421 GrGLint srcY0,
422 GrGLint srcX1,
423 GrGLint srcY1,
424 GrGLint dstX0,
425 GrGLint dstY0,
426 GrGLint dstX1,
427 GrGLint dstY1,
428 GrGLbitfield mask,
429 GrGLenum filter) {
430}
431
432GrGLvoid GR_GL_FUNCTION_TYPE noOpGLResolveMultisampleFramebuffer() {
433}
434
435GrGLvoid GR_GL_FUNCTION_TYPE noOpGLBindFragDataLocationIndexed(GrGLuint program,
436 GrGLuint colorNumber,
437 GrGLuint index,
438 const GrGLchar * name) {
439}
440
441GrGLenum GR_GL_FUNCTION_TYPE noOpGLCheckFramebufferStatus(GrGLenum target) {
442
443 GrAlwaysAssert(GR_GL_FRAMEBUFFER == target);
444
445 return GR_GL_FRAMEBUFFER_COMPLETE;
446}
447
448GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGenIds(GrGLsizei n, GrGLuint* ids) {
449 static int gCurrID = 1;
450 for (int i = 0; i < n; ++i) {
451 ids[i] = ++gCurrID;
452 }
453}
454
455GrGLvoid GR_GL_FUNCTION_TYPE noOpGLDeleteIds(GrGLsizei n, const GrGLuint* ids) {
456}
457
458GrGLenum GR_GL_FUNCTION_TYPE noOpGLGetError() {
459 return GR_GL_NO_ERROR;
460}
461
462GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetIntegerv(GrGLenum pname, GrGLint* params) {
463 // TODO: remove from Ganesh the #defines for gets we don't use.
464 // We would like to minimize gets overall due to performance issues
465 switch (pname) {
bsalomon@google.com1744f972013-02-26 21:46:32 +0000466 case GR_GL_CONTEXT_PROFILE_MASK:
467 *params = GR_GL_CONTEXT_COMPATIBILITY_PROFILE_BIT;
468 break;
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000469 case GR_GL_STENCIL_BITS:
470 *params = 8;
471 break;
472 case GR_GL_SAMPLES:
473 *params = 1;
474 break;
475 case GR_GL_FRAMEBUFFER_BINDING:
476 *params = 0;
477 break;
478 case GR_GL_VIEWPORT:
479 params[0] = 0;
480 params[1] = 0;
481 params[2] = 800;
482 params[3] = 600;
483 break;
484 case GR_GL_MAX_TEXTURE_IMAGE_UNITS:
485 *params = 8;
486 break;
commit-bot@chromium.org46fbfe02013-08-30 15:52:12 +0000487 case GR_GL_MAX_TEXTURE_COORDS:
488 *params = 8;
489 break;
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000490 case GR_GL_MAX_VERTEX_UNIFORM_VECTORS:
491 *params = kDefaultMaxVertexUniformVectors;
492 break;
493 case GR_GL_MAX_FRAGMENT_UNIFORM_VECTORS:
494 *params = kDefaultMaxFragmentUniformVectors;
495 break;
496 case GR_GL_MAX_FRAGMENT_UNIFORM_COMPONENTS:
497 *params = 16 * 4;
498 break;
499 case GR_GL_NUM_COMPRESSED_TEXTURE_FORMATS:
500 *params = 0;
501 break;
502 case GR_GL_COMPRESSED_TEXTURE_FORMATS:
503 break;
504 case GR_GL_MAX_TEXTURE_SIZE:
505 *params = 8192;
506 break;
507 case GR_GL_MAX_RENDERBUFFER_SIZE:
508 *params = 8192;
509 break;
510 case GR_GL_MAX_SAMPLES:
511 *params = 32;
512 break;
513 case GR_GL_MAX_VERTEX_ATTRIBS:
514 *params = kDefaultMaxVertexAttribs;
515 break;
516 case GR_GL_MAX_VARYING_VECTORS:
517 *params = kDefaultMaxVaryingVectors;
518 break;
bsalomon@google.com1744f972013-02-26 21:46:32 +0000519 case GR_GL_NUM_EXTENSIONS:
commit-bot@chromium.org972f9cd2014-03-28 17:58:28 +0000520 *params = SK_ARRAY_COUNT(kExtensions);
bsalomon@google.com1744f972013-02-26 21:46:32 +0000521 break;
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000522 default:
commit-bot@chromium.org88cb22b2014-04-30 14:17:00 +0000523 SkFAIL("Unexpected pname to GetIntegerv");
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000524 }
525}
526
527GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetInfoLog(GrGLuint program,
528 GrGLsizei bufsize,
529 GrGLsizei* length,
bsalomon@google.com1744f972013-02-26 21:46:32 +0000530 char* infolog) {
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000531 if (length) {
532 *length = 0;
533 }
534 if (bufsize > 0) {
535 *infolog = 0;
536 }
537}
538
539GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetShaderOrProgramiv(GrGLuint program,
540 GrGLenum pname,
541 GrGLint* params) {
542 switch (pname) {
543 case GR_GL_LINK_STATUS: // fallthru
544 case GR_GL_COMPILE_STATUS:
545 *params = GR_GL_TRUE;
546 break;
547 case GR_GL_INFO_LOG_LENGTH:
548 *params = 0;
549 break;
550 // we don't expect any other pnames
551 default:
commit-bot@chromium.org88cb22b2014-04-30 14:17:00 +0000552 SkFAIL("Unexpected pname to GetProgramiv");
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000553 break;
554 }
555}
556
557namespace {
558template <typename T>
559void query_result(GrGLenum GLtarget, GrGLenum pname, T *params) {
560 switch (pname) {
561 case GR_GL_QUERY_RESULT_AVAILABLE:
562 *params = GR_GL_TRUE;
563 break;
564 case GR_GL_QUERY_RESULT:
565 *params = 0;
566 break;
567 default:
commit-bot@chromium.org88cb22b2014-04-30 14:17:00 +0000568 SkFAIL("Unexpected pname passed to GetQueryObject.");
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000569 break;
570 }
571}
572}
573
574GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetQueryiv(GrGLenum GLtarget,
575 GrGLenum pname,
576 GrGLint *params) {
577 switch (pname) {
578 case GR_GL_CURRENT_QUERY:
579 *params = 0;
580 break;
581 case GR_GL_QUERY_COUNTER_BITS:
582 *params = 32;
583 break;
584 default:
commit-bot@chromium.org88cb22b2014-04-30 14:17:00 +0000585 SkFAIL("Unexpected pname passed GetQueryiv.");
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000586 }
587}
588
589GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetQueryObjecti64v(GrGLuint id,
590 GrGLenum pname,
591 GrGLint64 *params) {
592 query_result(id, pname, params);
593}
594
595GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetQueryObjectiv(GrGLuint id,
596 GrGLenum pname,
597 GrGLint *params) {
598 query_result(id, pname, params);
599}
600
601GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetQueryObjectui64v(GrGLuint id,
602 GrGLenum pname,
603 GrGLuint64 *params) {
604 query_result(id, pname, params);
605}
606
607GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetQueryObjectuiv(GrGLuint id,
608 GrGLenum pname,
609 GrGLuint *params) {
610 query_result(id, pname, params);
611}
612
613const GrGLubyte* GR_GL_FUNCTION_TYPE noOpGLGetString(GrGLenum name) {
614 switch (name) {
615 case GR_GL_EXTENSIONS:
bsalomon@google.com1744f972013-02-26 21:46:32 +0000616 return combined_extensions_string();
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000617 case GR_GL_VERSION:
618 return (const GrGLubyte*)"4.0 Debug GL";
619 case GR_GL_SHADING_LANGUAGE_VERSION:
620 return (const GrGLubyte*)"4.20.8 Debug GLSL";
621 case GR_GL_VENDOR:
622 return (const GrGLubyte*)"Debug Vendor";
623 case GR_GL_RENDERER:
624 return (const GrGLubyte*)"The Debug (Non-)Renderer";
625 default:
commit-bot@chromium.org88cb22b2014-04-30 14:17:00 +0000626 SkFAIL("Unexpected name passed to GetString");
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000627 return NULL;
628 }
629}
630
bsalomon@google.com1744f972013-02-26 21:46:32 +0000631const GrGLubyte* GR_GL_FUNCTION_TYPE noOpGLGetStringi(GrGLenum name, GrGLuint i) {
632 switch (name) {
633 case GR_GL_EXTENSIONS:
commit-bot@chromium.org972f9cd2014-03-28 17:58:28 +0000634 if (static_cast<size_t>(i) <= SK_ARRAY_COUNT(kExtensions)) {
bsalomon@google.com1744f972013-02-26 21:46:32 +0000635 return (const GrGLubyte*) kExtensions[i];
636 } else {
637 return NULL;
638 }
639 default:
commit-bot@chromium.org88cb22b2014-04-30 14:17:00 +0000640 SkFAIL("Unexpected name passed to GetStringi");
bsalomon@google.com1744f972013-02-26 21:46:32 +0000641 return NULL;
642 }
643}
644
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000645GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetTexLevelParameteriv(GrGLenum target,
646 GrGLint level,
647 GrGLenum pname,
648 GrGLint* params) {
649 // we used to use this to query stuff about externally created textures,
650 // now we just require clients to tell us everything about the texture.
commit-bot@chromium.org88cb22b2014-04-30 14:17:00 +0000651 SkFAIL("Should never query texture parameters.");
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000652}
653
bsalomon@google.com1744f972013-02-26 21:46:32 +0000654GrGLint GR_GL_FUNCTION_TYPE noOpGLGetUniformLocation(GrGLuint program, const char* name) {
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000655 static int gUniLocation = 0;
656 return ++gUniLocation;
657}
commit-bot@chromium.orga3baf3b2014-02-21 18:45:30 +0000658
659GrGLvoid GR_GL_FUNCTION_TYPE noOpGLInsertEventMarker(GrGLsizei length, const char* marker) {
660}
661GrGLvoid GR_GL_FUNCTION_TYPE noOpGLPushGroupMarker(GrGLsizei length , const char* marker) {
662}
663GrGLvoid GR_GL_FUNCTION_TYPE noOpGLPopGroupMarker() {
664}