blob: df32d2a7cfc684c04b2ff33b6711c97d3ec0b6b5 [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
370 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLVertexAttrib4fv(GrGLuint indx, const GrGLfloat* values) {
371}
372
373GrGLvoid GR_GL_FUNCTION_TYPE noOpGLVertexAttribPointer(GrGLuint indx,
374 GrGLint size,
375 GrGLenum type,
376 GrGLboolean normalized,
377 GrGLsizei stride,
378 const GrGLvoid* ptr) {
379}
380
381GrGLvoid GR_GL_FUNCTION_TYPE noOpGLViewport(GrGLint x,
bsalomon@google.com1744f972013-02-26 21:46:32 +0000382 GrGLint y,
383 GrGLsizei width,
384 GrGLsizei height) {
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000385}
386
387 GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetFramebufferAttachmentParameteriv(GrGLenum target,
bsalomon@google.com1744f972013-02-26 21:46:32 +0000388 GrGLenum attachment,
389 GrGLenum pname,
390 GrGLint* params) {
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000391}
392
393GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetRenderbufferParameteriv(GrGLenum target,
394 GrGLenum pname,
395 GrGLint* params) {
396}
397
398GrGLvoid GR_GL_FUNCTION_TYPE noOpGLRenderbufferStorage(GrGLenum target,
399 GrGLenum internalformat,
400 GrGLsizei width,
401 GrGLsizei height) {
402}
403
404GrGLvoid GR_GL_FUNCTION_TYPE noOpGLRenderbufferStorageMultisample(GrGLenum target,
405 GrGLsizei samples,
406 GrGLenum internalformat,
407 GrGLsizei width,
408 GrGLsizei height) {
409}
410
411GrGLvoid GR_GL_FUNCTION_TYPE noOpGLBlitFramebuffer(GrGLint srcX0,
412 GrGLint srcY0,
413 GrGLint srcX1,
414 GrGLint srcY1,
415 GrGLint dstX0,
416 GrGLint dstY0,
417 GrGLint dstX1,
418 GrGLint dstY1,
419 GrGLbitfield mask,
420 GrGLenum filter) {
421}
422
423GrGLvoid GR_GL_FUNCTION_TYPE noOpGLResolveMultisampleFramebuffer() {
424}
425
426GrGLvoid GR_GL_FUNCTION_TYPE noOpGLBindFragDataLocationIndexed(GrGLuint program,
427 GrGLuint colorNumber,
428 GrGLuint index,
429 const GrGLchar * name) {
430}
431
432GrGLenum GR_GL_FUNCTION_TYPE noOpGLCheckFramebufferStatus(GrGLenum target) {
433
434 GrAlwaysAssert(GR_GL_FRAMEBUFFER == target);
435
436 return GR_GL_FRAMEBUFFER_COMPLETE;
437}
438
439GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGenIds(GrGLsizei n, GrGLuint* ids) {
440 static int gCurrID = 1;
441 for (int i = 0; i < n; ++i) {
442 ids[i] = ++gCurrID;
443 }
444}
445
446GrGLvoid GR_GL_FUNCTION_TYPE noOpGLDeleteIds(GrGLsizei n, const GrGLuint* ids) {
447}
448
449GrGLenum GR_GL_FUNCTION_TYPE noOpGLGetError() {
450 return GR_GL_NO_ERROR;
451}
452
453GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetIntegerv(GrGLenum pname, GrGLint* params) {
454 // TODO: remove from Ganesh the #defines for gets we don't use.
455 // We would like to minimize gets overall due to performance issues
456 switch (pname) {
bsalomon@google.com1744f972013-02-26 21:46:32 +0000457 case GR_GL_CONTEXT_PROFILE_MASK:
458 *params = GR_GL_CONTEXT_COMPATIBILITY_PROFILE_BIT;
459 break;
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000460 case GR_GL_STENCIL_BITS:
461 *params = 8;
462 break;
463 case GR_GL_SAMPLES:
464 *params = 1;
465 break;
466 case GR_GL_FRAMEBUFFER_BINDING:
467 *params = 0;
468 break;
469 case GR_GL_VIEWPORT:
470 params[0] = 0;
471 params[1] = 0;
472 params[2] = 800;
473 params[3] = 600;
474 break;
475 case GR_GL_MAX_TEXTURE_IMAGE_UNITS:
476 *params = 8;
477 break;
commit-bot@chromium.org46fbfe02013-08-30 15:52:12 +0000478 case GR_GL_MAX_TEXTURE_COORDS:
479 *params = 8;
480 break;
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000481 case GR_GL_MAX_VERTEX_UNIFORM_VECTORS:
482 *params = kDefaultMaxVertexUniformVectors;
483 break;
484 case GR_GL_MAX_FRAGMENT_UNIFORM_VECTORS:
485 *params = kDefaultMaxFragmentUniformVectors;
486 break;
487 case GR_GL_MAX_FRAGMENT_UNIFORM_COMPONENTS:
488 *params = 16 * 4;
489 break;
490 case GR_GL_NUM_COMPRESSED_TEXTURE_FORMATS:
491 *params = 0;
492 break;
493 case GR_GL_COMPRESSED_TEXTURE_FORMATS:
494 break;
495 case GR_GL_MAX_TEXTURE_SIZE:
496 *params = 8192;
497 break;
498 case GR_GL_MAX_RENDERBUFFER_SIZE:
499 *params = 8192;
500 break;
501 case GR_GL_MAX_SAMPLES:
502 *params = 32;
503 break;
504 case GR_GL_MAX_VERTEX_ATTRIBS:
505 *params = kDefaultMaxVertexAttribs;
506 break;
507 case GR_GL_MAX_VARYING_VECTORS:
508 *params = kDefaultMaxVaryingVectors;
509 break;
bsalomon@google.com1744f972013-02-26 21:46:32 +0000510 case GR_GL_NUM_EXTENSIONS:
commit-bot@chromium.org972f9cd2014-03-28 17:58:28 +0000511 *params = SK_ARRAY_COUNT(kExtensions);
bsalomon@google.com1744f972013-02-26 21:46:32 +0000512 break;
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000513 default:
commit-bot@chromium.org88cb22b2014-04-30 14:17:00 +0000514 SkFAIL("Unexpected pname to GetIntegerv");
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000515 }
516}
517
518GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetInfoLog(GrGLuint program,
519 GrGLsizei bufsize,
520 GrGLsizei* length,
bsalomon@google.com1744f972013-02-26 21:46:32 +0000521 char* infolog) {
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000522 if (length) {
523 *length = 0;
524 }
525 if (bufsize > 0) {
526 *infolog = 0;
527 }
528}
529
530GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetShaderOrProgramiv(GrGLuint program,
531 GrGLenum pname,
532 GrGLint* params) {
533 switch (pname) {
534 case GR_GL_LINK_STATUS: // fallthru
535 case GR_GL_COMPILE_STATUS:
536 *params = GR_GL_TRUE;
537 break;
538 case GR_GL_INFO_LOG_LENGTH:
539 *params = 0;
540 break;
541 // we don't expect any other pnames
542 default:
commit-bot@chromium.org88cb22b2014-04-30 14:17:00 +0000543 SkFAIL("Unexpected pname to GetProgramiv");
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000544 break;
545 }
546}
547
548namespace {
549template <typename T>
550void query_result(GrGLenum GLtarget, GrGLenum pname, T *params) {
551 switch (pname) {
552 case GR_GL_QUERY_RESULT_AVAILABLE:
553 *params = GR_GL_TRUE;
554 break;
555 case GR_GL_QUERY_RESULT:
556 *params = 0;
557 break;
558 default:
commit-bot@chromium.org88cb22b2014-04-30 14:17:00 +0000559 SkFAIL("Unexpected pname passed to GetQueryObject.");
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000560 break;
561 }
562}
563}
564
565GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetQueryiv(GrGLenum GLtarget,
566 GrGLenum pname,
567 GrGLint *params) {
568 switch (pname) {
569 case GR_GL_CURRENT_QUERY:
570 *params = 0;
571 break;
572 case GR_GL_QUERY_COUNTER_BITS:
573 *params = 32;
574 break;
575 default:
commit-bot@chromium.org88cb22b2014-04-30 14:17:00 +0000576 SkFAIL("Unexpected pname passed GetQueryiv.");
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000577 }
578}
579
580GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetQueryObjecti64v(GrGLuint id,
581 GrGLenum pname,
582 GrGLint64 *params) {
583 query_result(id, pname, params);
584}
585
586GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetQueryObjectiv(GrGLuint id,
587 GrGLenum pname,
588 GrGLint *params) {
589 query_result(id, pname, params);
590}
591
592GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetQueryObjectui64v(GrGLuint id,
593 GrGLenum pname,
594 GrGLuint64 *params) {
595 query_result(id, pname, params);
596}
597
598GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetQueryObjectuiv(GrGLuint id,
599 GrGLenum pname,
600 GrGLuint *params) {
601 query_result(id, pname, params);
602}
603
604const GrGLubyte* GR_GL_FUNCTION_TYPE noOpGLGetString(GrGLenum name) {
605 switch (name) {
606 case GR_GL_EXTENSIONS:
bsalomon@google.com1744f972013-02-26 21:46:32 +0000607 return combined_extensions_string();
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000608 case GR_GL_VERSION:
609 return (const GrGLubyte*)"4.0 Debug GL";
610 case GR_GL_SHADING_LANGUAGE_VERSION:
611 return (const GrGLubyte*)"4.20.8 Debug GLSL";
612 case GR_GL_VENDOR:
613 return (const GrGLubyte*)"Debug Vendor";
614 case GR_GL_RENDERER:
615 return (const GrGLubyte*)"The Debug (Non-)Renderer";
616 default:
commit-bot@chromium.org88cb22b2014-04-30 14:17:00 +0000617 SkFAIL("Unexpected name passed to GetString");
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000618 return NULL;
619 }
620}
621
bsalomon@google.com1744f972013-02-26 21:46:32 +0000622const GrGLubyte* GR_GL_FUNCTION_TYPE noOpGLGetStringi(GrGLenum name, GrGLuint i) {
623 switch (name) {
624 case GR_GL_EXTENSIONS:
commit-bot@chromium.org972f9cd2014-03-28 17:58:28 +0000625 if (static_cast<size_t>(i) <= SK_ARRAY_COUNT(kExtensions)) {
bsalomon@google.com1744f972013-02-26 21:46:32 +0000626 return (const GrGLubyte*) kExtensions[i];
627 } else {
628 return NULL;
629 }
630 default:
commit-bot@chromium.org88cb22b2014-04-30 14:17:00 +0000631 SkFAIL("Unexpected name passed to GetStringi");
bsalomon@google.com1744f972013-02-26 21:46:32 +0000632 return NULL;
633 }
634}
635
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000636GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetTexLevelParameteriv(GrGLenum target,
637 GrGLint level,
638 GrGLenum pname,
639 GrGLint* params) {
640 // we used to use this to query stuff about externally created textures,
641 // now we just require clients to tell us everything about the texture.
commit-bot@chromium.org88cb22b2014-04-30 14:17:00 +0000642 SkFAIL("Should never query texture parameters.");
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000643}
644
bsalomon@google.com1744f972013-02-26 21:46:32 +0000645GrGLint GR_GL_FUNCTION_TYPE noOpGLGetUniformLocation(GrGLuint program, const char* name) {
bsalomon@google.com9c58f462013-02-26 14:45:41 +0000646 static int gUniLocation = 0;
647 return ++gUniLocation;
648}
commit-bot@chromium.orga3baf3b2014-02-21 18:45:30 +0000649
650GrGLvoid GR_GL_FUNCTION_TYPE noOpGLInsertEventMarker(GrGLsizei length, const char* marker) {
651}
652GrGLvoid GR_GL_FUNCTION_TYPE noOpGLPushGroupMarker(GrGLsizei length , const char* marker) {
653}
654GrGLvoid GR_GL_FUNCTION_TYPE noOpGLPopGroupMarker() {
655}