10b9247f129401b4849682b2e2bcdea8fc977068aDouglas Gregor/* 20b9247f129401b4849682b2e2bcdea8fc977068aDouglas Gregor * Copyright 2013 Google Inc. 30b9247f129401b4849682b2e2bcdea8fc977068aDouglas Gregor * 40b9247f129401b4849682b2e2bcdea8fc977068aDouglas Gregor * Use of this source code is governed by a BSD-style license that can be 50b9247f129401b4849682b2e2bcdea8fc977068aDouglas Gregor * found in the LICENSE file. 60b9247f129401b4849682b2e2bcdea8fc977068aDouglas Gregor */ 70b9247f129401b4849682b2e2bcdea8fc977068aDouglas Gregor 80b9247f129401b4849682b2e2bcdea8fc977068aDouglas Gregor#include "GrGLNoOpInterface.h" 90b9247f129401b4849682b2e2bcdea8fc977068aDouglas Gregor#include "SkString.h" 100b9247f129401b4849682b2e2bcdea8fc977068aDouglas Gregor#include "SkThread.h" 110b9247f129401b4849682b2e2bcdea8fc977068aDouglas Gregor 120b9247f129401b4849682b2e2bcdea8fc977068aDouglas Gregor// the OpenGLES 2.0 spec says this must be >= 128 130b9247f129401b4849682b2e2bcdea8fc977068aDouglas Gregorstatic const GrGLint kDefaultMaxVertexUniformVectors = 128; 140b9247f129401b4849682b2e2bcdea8fc977068aDouglas Gregor 150b9247f129401b4849682b2e2bcdea8fc977068aDouglas Gregor// the OpenGLES 2.0 spec says this must be >=16 160b9247f129401b4849682b2e2bcdea8fc977068aDouglas Gregorstatic const GrGLint kDefaultMaxFragmentUniformVectors = 16; 170b9247f129401b4849682b2e2bcdea8fc977068aDouglas Gregor 180b9247f129401b4849682b2e2bcdea8fc977068aDouglas Gregor// the OpenGLES 2.0 spec says this must be >= 8 190b9247f129401b4849682b2e2bcdea8fc977068aDouglas Gregorstatic const GrGLint kDefaultMaxVertexAttribs = 8; 200b9247f129401b4849682b2e2bcdea8fc977068aDouglas Gregor 218a51491d936d8c50480f3c3ca6647be12a7ad51fDouglas Gregor// the OpenGLES 2.0 spec says this must be >= 8 22508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregorstatic const GrGLint kDefaultMaxVaryingVectors = 8; 23508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregor 24508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregorstatic const char* kExtensions[] = { 25508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregor "GL_ARB_framebuffer_object", 26508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregor "GL_ARB_blend_func_extended", 27508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregor "GL_ARB_timer_query", 28508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregor "GL_ARB_draw_buffers", 29508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregor "GL_ARB_occlusion_query", 30508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregor "GL_EXT_blend_color", 31508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregor "GL_EXT_stencil_wrap" 32508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregor}; 33508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregor 34508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregornamespace { 35508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregorconst GrGLubyte* combined_extensions_string() { 36508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregor static SkString gExtString; 37508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregor static SkMutex gMutex; 38508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregor gMutex.acquire(); 39508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregor if (0 == gExtString.size()) { 40508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregor for (size_t i = 0; i < GR_ARRAY_COUNT(kExtensions) - 1; ++i) { 414112877d1043d0b937f5abcf043bc7fa48138f05Douglas Gregor gExtString.append(kExtensions[i]); 421282029f3d37f482bbba3c38ea9da17a78d11d40Douglas Gregor gExtString.append(" "); 431282029f3d37f482bbba3c38ea9da17a78d11d40Douglas Gregor } 441282029f3d37f482bbba3c38ea9da17a78d11d40Douglas Gregor gExtString.append(kExtensions[GR_ARRAY_COUNT(kExtensions) - 1]); 451282029f3d37f482bbba3c38ea9da17a78d11d40Douglas Gregor } 461282029f3d37f482bbba3c38ea9da17a78d11d40Douglas Gregor gMutex.release(); 47508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregor return (const GrGLubyte*) gExtString.c_str(); 48508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregor} 49508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregor} 500b9247f129401b4849682b2e2bcdea8fc977068aDouglas Gregor 510b9247f129401b4849682b2e2bcdea8fc977068aDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLBlendColor(GrGLclampf red, 52f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor GrGLclampf green, 531eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump GrGLclampf blue, 54f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor GrGLclampf alpha) { 55f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor} 56d708c72e3e5186662fb0045d2bd666bfd93a013dDouglas Gregor 57f67875d5addf36b951ad37fb04509ab2b572c88aDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLBindFragDataLocation(GrGLuint program, 58d708c72e3e5186662fb0045d2bd666bfd93a013dDouglas Gregor GrGLuint colorNumber, 59d708c72e3e5186662fb0045d2bd666bfd93a013dDouglas Gregor const GrGLchar* name) { 60199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor} 61199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor 62199d99192fbcca9f043596c40ead4afab4999dbaDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLBlendFunc(GrGLenum sfactor, 63199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor GrGLenum dfactor) { 64199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor} 65199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor 661eb4433ac451dc16f4133a88af2d002ac26c58efMike StumpGrGLvoid GR_GL_FUNCTION_TYPE noOpGLBufferSubData(GrGLenum target, 67199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor GrGLintptr offset, 68199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor GrGLsizeiptr size, 691eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump const GrGLvoid* data) { 70199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor} 71199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor 72199d99192fbcca9f043596c40ead4afab4999dbaDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLClear(GrGLbitfield mask) { 731eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump} 74199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor 75f67875d5addf36b951ad37fb04509ab2b572c88aDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLClearColor(GrGLclampf red, 761eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump GrGLclampf green, 771eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump GrGLclampf blue, 78335e24a194f2000086d298b800d6169ebc5a7ee6Anders Carlsson GrGLclampf alpha) { 79f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor} 80f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor 811eb4433ac451dc16f4133a88af2d002ac26c58efMike StumpGrGLvoid GR_GL_FUNCTION_TYPE noOpGLClearStencil(GrGLint s) { 82199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor} 831eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump 84199d99192fbcca9f043596c40ead4afab4999dbaDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLColorMask(GrGLboolean red, 8525af1ed6ffa46a333886264299be98a838097b34Anders Carlsson GrGLboolean green, 861eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump GrGLboolean blue, 8725af1ed6ffa46a333886264299be98a838097b34Anders Carlsson GrGLboolean alpha) { 8825af1ed6ffa46a333886264299be98a838097b34Anders Carlsson} 8925af1ed6ffa46a333886264299be98a838097b34Anders Carlsson 9025af1ed6ffa46a333886264299be98a838097b34Anders CarlssonGrGLvoid GR_GL_FUNCTION_TYPE noOpGLCompileShader(GrGLuint shader) { 9125af1ed6ffa46a333886264299be98a838097b34Anders Carlsson} 9225af1ed6ffa46a333886264299be98a838097b34Anders Carlsson 9325af1ed6ffa46a333886264299be98a838097b34Anders CarlssonGrGLvoid GR_GL_FUNCTION_TYPE noOpGLCompressedTexImage2D(GrGLenum target, 94f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor GrGLint level, 95199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor GrGLenum internalformat, 961eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump GrGLsizei width, 97f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor GrGLsizei height, 981eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump GrGLint border, 991eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump GrGLsizei imageSize, 100199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor const GrGLvoid* data) { 101199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor} 102335e24a194f2000086d298b800d6169ebc5a7ee6Anders Carlsson 103f67875d5addf36b951ad37fb04509ab2b572c88aDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLCopyTexSubImage2D(GrGLenum target, 104f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor GrGLint level, 105335e24a194f2000086d298b800d6169ebc5a7ee6Anders Carlsson GrGLint xoffset, 106f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor GrGLint yoffset, 107f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor GrGLint x, 108f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor GrGLint y, 109335e24a194f2000086d298b800d6169ebc5a7ee6Anders Carlsson GrGLsizei width, 110199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor GrGLsizei height) { 111199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor} 112199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor 113199d99192fbcca9f043596c40ead4afab4999dbaDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLCullFace(GrGLenum mode) { 114f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor} 115f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor 116f67875d5addf36b951ad37fb04509ab2b572c88aDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLDepthMask(GrGLboolean flag) { 117f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor} 118335e24a194f2000086d298b800d6169ebc5a7ee6Anders Carlsson 119f67875d5addf36b951ad37fb04509ab2b572c88aDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLDisable(GrGLenum cap) { 120f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor} 121f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor 122f67875d5addf36b951ad37fb04509ab2b572c88aDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLDisableClientState(GrGLenum) { 123199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor} 124199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor 1251eb4433ac451dc16f4133a88af2d002ac26c58efMike StumpGrGLvoid GR_GL_FUNCTION_TYPE noOpGLDisableVertexAttribArray(GrGLuint index) { 126199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor} 127199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor 128199d99192fbcca9f043596c40ead4afab4999dbaDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLDrawArrays(GrGLenum mode, 129199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor GrGLint first, 130f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor GrGLsizei count) { 1311eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump} 132f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor 133f67875d5addf36b951ad37fb04509ab2b572c88aDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLDrawBuffer(GrGLenum mode) { 134f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor} 135f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor 1361eb4433ac451dc16f4133a88af2d002ac26c58efMike StumpGrGLvoid GR_GL_FUNCTION_TYPE noOpGLDrawBuffers(GrGLsizei n, 137199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor const GrGLenum* bufs) { 138199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor} 139199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor 1401eb4433ac451dc16f4133a88af2d002ac26c58efMike StumpGrGLvoid GR_GL_FUNCTION_TYPE noOpGLDrawElements(GrGLenum mode, 141199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor GrGLsizei count, 142199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor GrGLenum type, 143199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor const GrGLvoid* indices) { 144f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor} 145199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor 1461eb4433ac451dc16f4133a88af2d002ac26c58efMike StumpGrGLvoid GR_GL_FUNCTION_TYPE noOpGLEnable(GrGLenum cap) { 147199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor} 1481eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump 1491eb4433ac451dc16f4133a88af2d002ac26c58efMike StumpGrGLvoid GR_GL_FUNCTION_TYPE noOpGLEnableClientState(GrGLenum cap) { 150199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor} 151f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor 152199d99192fbcca9f043596c40ead4afab4999dbaDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLEnableVertexAttribArray(GrGLuint index) { 1531eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump} 1549eea08ba72f8b1e7faf38e43376b9157fc4a2af2Douglas Gregor 1559eea08ba72f8b1e7faf38e43376b9157fc4a2af2Douglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLEndQuery(GrGLenum target) { 1569eea08ba72f8b1e7faf38e43376b9157fc4a2af2Douglas Gregor} 1579eea08ba72f8b1e7faf38e43376b9157fc4a2af2Douglas Gregor 1589eea08ba72f8b1e7faf38e43376b9157fc4a2af2Douglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLFinish() { 1599eea08ba72f8b1e7faf38e43376b9157fc4a2af2Douglas Gregor} 1609eea08ba72f8b1e7faf38e43376b9157fc4a2af2Douglas Gregor 1619eea08ba72f8b1e7faf38e43376b9157fc4a2af2Douglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLFlush() { 1629eea08ba72f8b1e7faf38e43376b9157fc4a2af2Douglas Gregor} 1639eea08ba72f8b1e7faf38e43376b9157fc4a2af2Douglas Gregor 1649eea08ba72f8b1e7faf38e43376b9157fc4a2af2Douglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLFrontFace(GrGLenum mode) { 1659eea08ba72f8b1e7faf38e43376b9157fc4a2af2Douglas Gregor} 166f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor 167199d99192fbcca9f043596c40ead4afab4999dbaDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLLineWidth(GrGLfloat width) { 168199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor} 169f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor 170f67875d5addf36b951ad37fb04509ab2b572c88aDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLLinkProgram(GrGLuint program) { 171f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor} 172f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor 173f67875d5addf36b951ad37fb04509ab2b572c88aDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLLoadIdentity() { 174f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor} 175d708c72e3e5186662fb0045d2bd666bfd93a013dDouglas Gregor 176d708c72e3e5186662fb0045d2bd666bfd93a013dDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLLoadMatrixf(const GrGLfloat*) { 177d708c72e3e5186662fb0045d2bd666bfd93a013dDouglas Gregor} 178f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor 179f67875d5addf36b951ad37fb04509ab2b572c88aDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLMatrixMode(GrGLenum) { 180f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor} 181d708c72e3e5186662fb0045d2bd666bfd93a013dDouglas Gregor 182d708c72e3e5186662fb0045d2bd666bfd93a013dDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLQueryCounter(GrGLuint id, GrGLenum target) { 1831eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump} 184f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor 185f67875d5addf36b951ad37fb04509ab2b572c88aDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLReadBuffer(GrGLenum src) { 186f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor} 187f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor 188d708c72e3e5186662fb0045d2bd666bfd93a013dDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLScissor(GrGLint x, 18997fbaa2a38804268a024f1a104b43fcf8b4411b0Argyrios Kyrtzidis GrGLint y, 19097fbaa2a38804268a024f1a104b43fcf8b4411b0Argyrios Kyrtzidis GrGLsizei width, 191f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor GrGLsizei height) { 192f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor} 193f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor 194f67875d5addf36b951ad37fb04509ab2b572c88aDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLShaderSource(GrGLuint shader, 195f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor GrGLsizei count, 196f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor#if GR_GL_USE_NEW_SHADER_SOURCE_SIGNATURE 197d708c72e3e5186662fb0045d2bd666bfd93a013dDouglas Gregor const char* const * str, 198d708c72e3e5186662fb0045d2bd666bfd93a013dDouglas Gregor#else 1991eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump const char** str, 200de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor#endif 201de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor const GrGLint* length) { 202de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor} 203de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor 204de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLStencilFunc(GrGLenum func, GrGLint ref, GrGLuint mask) { 205de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor} 206de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor 207de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLStencilFuncSeparate(GrGLenum face, 208de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor GrGLenum func, 209de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor GrGLint ref, 210de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor GrGLuint mask) { 211de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor} 212de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor 213de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLStencilMask(GrGLuint mask) { 214de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor} 215de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor 216de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLStencilMaskSeparate(GrGLenum face, GrGLuint mask) { 217de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor} 218de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor 219de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLStencilOp(GrGLenum fail, GrGLenum zfail, GrGLenum zpass) { 220de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor} 221de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor 222de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLStencilOpSeparate(GrGLenum face, 223de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor GrGLenum fail, 224de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor GrGLenum zfail, 2251eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump GrGLenum zpass) { 226de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor} 227de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor 228de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLTexGenf(GrGLenum, GrGLenum, float) { 2291eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump} 230de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor 231de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLTexGenfv(GrGLenum, GrGLenum, const float*) { 232de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor} 233de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor 234de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLTexGeni(GrGLenum, GrGLenum, GrGLint) { 235de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor} 236de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor 237de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLTexImage2D(GrGLenum target, 2381eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump GrGLint level, 239de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor GrGLint internalformat, 2401eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump GrGLsizei width, 241de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor GrGLsizei height, 242de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor GrGLint border, 243de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor GrGLenum format, 244de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor GrGLenum type, 245de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor const GrGLvoid* pixels) { 246de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor} 247de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor 248de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLTexParameteri(GrGLenum target, 249de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor GrGLenum pname, 2501eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump GrGLint param) { 251de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor} 252de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor 253de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLTexParameteriv(GrGLenum target, 254de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor GrGLenum pname, 255de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor const GrGLint* params) { 256de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor} 257de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor 258de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLTexStorage2D(GrGLenum target, 259de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor GrGLsizei levels, 2601eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump GrGLenum internalformat, 261de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor GrGLsizei width, 262de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor GrGLsizei height) { 2631eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump} 264de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor 265de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLDiscardFramebuffer(GrGLenum target, 266de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor GrGLsizei numAttachments, 267de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor const GrGLenum* attachments) { 268de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor} 269de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor 2701eb4433ac451dc16f4133a88af2d002ac26c58efMike StumpGrGLvoid GR_GL_FUNCTION_TYPE noOpGLTexSubImage2D(GrGLenum target, 2711eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump GrGLint level, 272de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor GrGLint xoffset, 273de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor GrGLint yoffset, 274de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor GrGLsizei width, 2751eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump GrGLsizei height, 276de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor GrGLenum format, 277de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor GrGLenum type, 2781eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump const GrGLvoid* pixels) { 279de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor} 280de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor 281de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform1f(GrGLint location, GrGLfloat v0) { 282de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor} 2831eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump 284de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform1i(GrGLint location, GrGLint v0) { 285de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor} 286de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor 287de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform1fv(GrGLint location, 288de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor GrGLsizei count, 289de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor const GrGLfloat* v) { 2901eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump} 291de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor 2921eb4433ac451dc16f4133a88af2d002ac26c58efMike StumpGrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform1iv(GrGLint location, 293de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor GrGLsizei count, 294de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor const GrGLint* v) { 295de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor} 296de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor 297de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform2f(GrGLint location, GrGLfloat v0, GrGLfloat v1) { 2981eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump} 299de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor 300de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform2i(GrGLint location, GrGLint v0, GrGLint v1) { 301de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor} 3021eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump 3030953e767ff7817f97b3ab20896b229891eeff45bJohn McCallGrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform2fv(GrGLint location, 304f290e0db835a619014538c41ed552696efc0e977Douglas Gregor GrGLsizei count, 305f290e0db835a619014538c41ed552696efc0e977Douglas Gregor const GrGLfloat* v) { 306f290e0db835a619014538c41ed552696efc0e977Douglas Gregor} 307f290e0db835a619014538c41ed552696efc0e977Douglas Gregor 308f290e0db835a619014538c41ed552696efc0e977Douglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform2iv(GrGLint location, 3090953e767ff7817f97b3ab20896b229891eeff45bJohn McCall GrGLsizei count, 3100953e767ff7817f97b3ab20896b229891eeff45bJohn McCall const GrGLint* v) { 311f290e0db835a619014538c41ed552696efc0e977Douglas Gregor} 312f290e0db835a619014538c41ed552696efc0e977Douglas Gregor 313f290e0db835a619014538c41ed552696efc0e977Douglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform3f(GrGLint location, 314f290e0db835a619014538c41ed552696efc0e977Douglas Gregor GrGLfloat v0, 3150953e767ff7817f97b3ab20896b229891eeff45bJohn McCall GrGLfloat v1, 316f290e0db835a619014538c41ed552696efc0e977Douglas Gregor GrGLfloat v2) { 317f290e0db835a619014538c41ed552696efc0e977Douglas Gregor} 3180953e767ff7817f97b3ab20896b229891eeff45bJohn McCall 319f290e0db835a619014538c41ed552696efc0e977Douglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform3i(GrGLint location, 320f290e0db835a619014538c41ed552696efc0e977Douglas Gregor GrGLint v0, 3211eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump GrGLint v1, 3220953e767ff7817f97b3ab20896b229891eeff45bJohn McCall GrGLint v2) { 3230953e767ff7817f97b3ab20896b229891eeff45bJohn McCall} 324f290e0db835a619014538c41ed552696efc0e977Douglas Gregor 325f290e0db835a619014538c41ed552696efc0e977Douglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform3fv(GrGLint location, 3260953e767ff7817f97b3ab20896b229891eeff45bJohn McCall GrGLsizei count, 327f290e0db835a619014538c41ed552696efc0e977Douglas Gregor const GrGLfloat* v) { 328f290e0db835a619014538c41ed552696efc0e977Douglas Gregor} 329f290e0db835a619014538c41ed552696efc0e977Douglas Gregor 3301eb4433ac451dc16f4133a88af2d002ac26c58efMike StumpGrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform3iv(GrGLint location, 331f290e0db835a619014538c41ed552696efc0e977Douglas Gregor GrGLsizei count, 332f290e0db835a619014538c41ed552696efc0e977Douglas Gregor const GrGLint* v) { 3331eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump} 334f290e0db835a619014538c41ed552696efc0e977Douglas Gregor 335f290e0db835a619014538c41ed552696efc0e977Douglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform4f(GrGLint location, 3360953e767ff7817f97b3ab20896b229891eeff45bJohn McCall GrGLfloat v0, 337f290e0db835a619014538c41ed552696efc0e977Douglas Gregor GrGLfloat v1, 338f290e0db835a619014538c41ed552696efc0e977Douglas Gregor GrGLfloat v2, 3391eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump GrGLfloat v3) { 340f290e0db835a619014538c41ed552696efc0e977Douglas Gregor} 341f290e0db835a619014538c41ed552696efc0e977Douglas Gregor 3421eb4433ac451dc16f4133a88af2d002ac26c58efMike StumpGrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform4i(GrGLint location, 343f290e0db835a619014538c41ed552696efc0e977Douglas Gregor GrGLint v0, 344f290e0db835a619014538c41ed552696efc0e977Douglas Gregor GrGLint v1, 3450953e767ff7817f97b3ab20896b229891eeff45bJohn McCall GrGLint v2, 346f290e0db835a619014538c41ed552696efc0e977Douglas Gregor GrGLint v3) { 347f290e0db835a619014538c41ed552696efc0e977Douglas Gregor} 3481eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump 349d497206844a894a0557e927adf29b34fe960dffdAnders CarlssonGrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform4fv(GrGLint location, 350f290e0db835a619014538c41ed552696efc0e977Douglas Gregor GrGLsizei count, 351f290e0db835a619014538c41ed552696efc0e977Douglas Gregor const GrGLfloat* v) { 352f290e0db835a619014538c41ed552696efc0e977Douglas Gregor} 353f290e0db835a619014538c41ed552696efc0e977Douglas Gregor 354500d331eade2f5070b66ba51d777224f9fda6e1dDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniform4iv(GrGLint location, 355500d331eade2f5070b66ba51d777224f9fda6e1dDouglas Gregor GrGLsizei count, 356500d331eade2f5070b66ba51d777224f9fda6e1dDouglas Gregor const GrGLint* v) { 357500d331eade2f5070b66ba51d777224f9fda6e1dDouglas Gregor} 358500d331eade2f5070b66ba51d777224f9fda6e1dDouglas Gregor 359500d331eade2f5070b66ba51d777224f9fda6e1dDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniformMatrix2fv(GrGLint location, 360500d331eade2f5070b66ba51d777224f9fda6e1dDouglas Gregor GrGLsizei count, 361500d331eade2f5070b66ba51d777224f9fda6e1dDouglas Gregor GrGLboolean transpose, 362500d331eade2f5070b66ba51d777224f9fda6e1dDouglas Gregor const GrGLfloat* value) { 363500d331eade2f5070b66ba51d777224f9fda6e1dDouglas Gregor} 364500d331eade2f5070b66ba51d777224f9fda6e1dDouglas Gregor 365500d331eade2f5070b66ba51d777224f9fda6e1dDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniformMatrix3fv(GrGLint location, 366500d331eade2f5070b66ba51d777224f9fda6e1dDouglas Gregor GrGLsizei count, 367500d331eade2f5070b66ba51d777224f9fda6e1dDouglas Gregor GrGLboolean transpose, 368500d331eade2f5070b66ba51d777224f9fda6e1dDouglas Gregor const GrGLfloat* value) { 369508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregor} 3701eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump 371500d331eade2f5070b66ba51d777224f9fda6e1dDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLUniformMatrix4fv(GrGLint location, 372500d331eade2f5070b66ba51d777224f9fda6e1dDouglas Gregor GrGLsizei count, 373500d331eade2f5070b66ba51d777224f9fda6e1dDouglas Gregor GrGLboolean transpose, 374500d331eade2f5070b66ba51d777224f9fda6e1dDouglas Gregor const GrGLfloat* value) { 375f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor} 3761eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump 377f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor GrGLvoid GR_GL_FUNCTION_TYPE noOpGLVertexAttrib4fv(GrGLuint indx, const GrGLfloat* values) { 378f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor} 379f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor 380500d331eade2f5070b66ba51d777224f9fda6e1dDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLVertexAttribPointer(GrGLuint indx, 381508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregor GrGLint size, 3820b9247f129401b4849682b2e2bcdea8fc977068aDouglas Gregor GrGLenum type, 3830b9247f129401b4849682b2e2bcdea8fc977068aDouglas Gregor GrGLboolean normalized, 384f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor GrGLsizei stride, 385f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor const GrGLvoid* ptr) { 3860b9247f129401b4849682b2e2bcdea8fc977068aDouglas Gregor} 387500d331eade2f5070b66ba51d777224f9fda6e1dDouglas Gregor 388500d331eade2f5070b66ba51d777224f9fda6e1dDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLVertexPointer(GrGLint, GrGLenum, GrGLsizei, const GrGLvoid*) { 3891eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump} 390500d331eade2f5070b66ba51d777224f9fda6e1dDouglas Gregor 391508f1c889b9833903ea394034fe0246d3a57a32dDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLViewport(GrGLint x, 3920953e767ff7817f97b3ab20896b229891eeff45bJohn McCall GrGLint y, 3930953e767ff7817f97b3ab20896b229891eeff45bJohn McCall GrGLsizei width, 3940953e767ff7817f97b3ab20896b229891eeff45bJohn McCall GrGLsizei height) { 395500d331eade2f5070b66ba51d777224f9fda6e1dDouglas Gregor} 3961eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump 397f670c8cfa58b4c224eb8fb566130dc47844dd3deDouglas Gregor GrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetFramebufferAttachmentParameteriv(GrGLenum target, 3981282029f3d37f482bbba3c38ea9da17a78d11d40Douglas Gregor GrGLenum attachment, 3991282029f3d37f482bbba3c38ea9da17a78d11d40Douglas Gregor GrGLenum pname, 4001282029f3d37f482bbba3c38ea9da17a78d11d40Douglas Gregor GrGLint* params) { 4011282029f3d37f482bbba3c38ea9da17a78d11d40Douglas Gregor} 4021282029f3d37f482bbba3c38ea9da17a78d11d40Douglas Gregor 4031282029f3d37f482bbba3c38ea9da17a78d11d40Douglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetRenderbufferParameteriv(GrGLenum target, 404f670c8cfa58b4c224eb8fb566130dc47844dd3deDouglas Gregor GrGLenum pname, 4051282029f3d37f482bbba3c38ea9da17a78d11d40Douglas Gregor GrGLint* params) { 4060b9247f129401b4849682b2e2bcdea8fc977068aDouglas Gregor} 407199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor 4081eb4433ac451dc16f4133a88af2d002ac26c58efMike StumpGrGLvoid GR_GL_FUNCTION_TYPE noOpGLRenderbufferStorage(GrGLenum target, 4091eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump GrGLenum internalformat, 410199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor GrGLsizei width, 411199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor GrGLsizei height) { 412199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor} 413199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor 4141eb4433ac451dc16f4133a88af2d002ac26c58efMike StumpGrGLvoid GR_GL_FUNCTION_TYPE noOpGLRenderbufferStorageMultisample(GrGLenum target, 415183700f494ec9b6701b6efe82bcb25f4c79ba561John McCall GrGLsizei samples, 416f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor GrGLenum internalformat, 417f290e0db835a619014538c41ed552696efc0e977Douglas Gregor GrGLsizei width, 4181eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump GrGLsizei height) { 4199e9fae4b8af47c15696da4ea3c30102e3a035179Douglas Gregor} 4209e9fae4b8af47c15696da4ea3c30102e3a035179Douglas Gregor 4219e9fae4b8af47c15696da4ea3c30102e3a035179Douglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLBlitFramebuffer(GrGLint srcX0, 422f290e0db835a619014538c41ed552696efc0e977Douglas Gregor GrGLint srcY0, 4230953e767ff7817f97b3ab20896b229891eeff45bJohn McCall GrGLint srcX1, 4240953e767ff7817f97b3ab20896b229891eeff45bJohn McCall GrGLint srcY1, 4250953e767ff7817f97b3ab20896b229891eeff45bJohn McCall GrGLint dstX0, 4260953e767ff7817f97b3ab20896b229891eeff45bJohn McCall GrGLint dstY0, 427f290e0db835a619014538c41ed552696efc0e977Douglas Gregor GrGLint dstX1, 428f290e0db835a619014538c41ed552696efc0e977Douglas Gregor GrGLint dstY1, 429f290e0db835a619014538c41ed552696efc0e977Douglas Gregor GrGLbitfield mask, 4301eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump GrGLenum filter) { 4310b9247f129401b4849682b2e2bcdea8fc977068aDouglas Gregor} 4320b9247f129401b4849682b2e2bcdea8fc977068aDouglas Gregor 433508f1c889b9833903ea394034fe0246d3a57a32dDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLResolveMultisampleFramebuffer() { 434f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor} 435f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor 436f67875d5addf36b951ad37fb04509ab2b572c88aDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLBindFragDataLocationIndexed(GrGLuint program, 437f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor GrGLuint colorNumber, 438f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor GrGLuint index, 4390b9247f129401b4849682b2e2bcdea8fc977068aDouglas Gregor const GrGLchar * name) { 4400b9247f129401b4849682b2e2bcdea8fc977068aDouglas Gregor} 4411eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump 4420953e767ff7817f97b3ab20896b229891eeff45bJohn McCallGrGLenum GR_GL_FUNCTION_TYPE noOpGLCheckFramebufferStatus(GrGLenum target) { 4430953e767ff7817f97b3ab20896b229891eeff45bJohn McCall 444f290e0db835a619014538c41ed552696efc0e977Douglas Gregor GrAlwaysAssert(GR_GL_FRAMEBUFFER == target); 445f290e0db835a619014538c41ed552696efc0e977Douglas Gregor 4461eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump return GR_GL_FRAMEBUFFER_COMPLETE; 4470b9247f129401b4849682b2e2bcdea8fc977068aDouglas Gregor} 4480b9247f129401b4849682b2e2bcdea8fc977068aDouglas Gregor 4490b9247f129401b4849682b2e2bcdea8fc977068aDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLGenIds(GrGLsizei n, GrGLuint* ids) { 4501eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump static int gCurrID = 1; 4510b9247f129401b4849682b2e2bcdea8fc977068aDouglas Gregor for (int i = 0; i < n; ++i) { 4521eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump ids[i] = ++gCurrID; 4531eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump } 4541eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump} 4550b9247f129401b4849682b2e2bcdea8fc977068aDouglas Gregor 456f67875d5addf36b951ad37fb04509ab2b572c88aDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLDeleteIds(GrGLsizei n, const GrGLuint* ids) { 4571eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump} 458f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor 459f67875d5addf36b951ad37fb04509ab2b572c88aDouglas GregorGrGLenum GR_GL_FUNCTION_TYPE noOpGLGetError() { 460f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor return GR_GL_NO_ERROR; 461f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor} 462f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor 4630b9247f129401b4849682b2e2bcdea8fc977068aDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetIntegerv(GrGLenum pname, GrGLint* params) { 464f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor // TODO: remove from Ganesh the #defines for gets we don't use. 4650b9247f129401b4849682b2e2bcdea8fc977068aDouglas Gregor // We would like to minimize gets overall due to performance issues 4660b9247f129401b4849682b2e2bcdea8fc977068aDouglas Gregor switch (pname) { 467f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor case GR_GL_CONTEXT_PROFILE_MASK: 468f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor *params = GR_GL_CONTEXT_COMPATIBILITY_PROFILE_BIT; 469f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor break; 470f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor case GR_GL_STENCIL_BITS: 471508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregor *params = 8; 472508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregor break; 473508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregor case GR_GL_SAMPLES: 474508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregor *params = 1; 475508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregor break; 476508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregor case GR_GL_FRAMEBUFFER_BINDING: 477508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregor *params = 0; 4781eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump break; 479508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregor case GR_GL_VIEWPORT: 480508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregor params[0] = 0; 4810b9247f129401b4849682b2e2bcdea8fc977068aDouglas Gregor params[1] = 0; 482d560d5025a0e5b1942d99d5f39005337b03a64c2Douglas Gregor params[2] = 800; 483199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor params[3] = 600; 484199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor break; 485f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor case GR_GL_MAX_TEXTURE_IMAGE_UNITS: 4861eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump *params = 8; 487199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor break; 488d560d5025a0e5b1942d99d5f39005337b03a64c2Douglas Gregor case GR_GL_MAX_TEXTURE_COORDS: 4896217b80b7a1379b74cced1c076338262c3c980b3Ted Kremenek *params = 8; 490d560d5025a0e5b1942d99d5f39005337b03a64c2Douglas Gregor break; 491f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor case GR_GL_MAX_VERTEX_UNIFORM_VECTORS: 4921eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump *params = kDefaultMaxVertexUniformVectors; 4934112877d1043d0b937f5abcf043bc7fa48138f05Douglas Gregor break; 494f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor case GR_GL_MAX_FRAGMENT_UNIFORM_VECTORS: 495d560d5025a0e5b1942d99d5f39005337b03a64c2Douglas Gregor *params = kDefaultMaxFragmentUniformVectors; 496d560d5025a0e5b1942d99d5f39005337b03a64c2Douglas Gregor break; 4974112877d1043d0b937f5abcf043bc7fa48138f05Douglas Gregor case GR_GL_MAX_FRAGMENT_UNIFORM_COMPONENTS: 498d560d5025a0e5b1942d99d5f39005337b03a64c2Douglas Gregor *params = 16 * 4; 4991eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump break; 500199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor case GR_GL_NUM_COMPRESSED_TEXTURE_FORMATS: 501d560d5025a0e5b1942d99d5f39005337b03a64c2Douglas Gregor *params = 0; 5026217b80b7a1379b74cced1c076338262c3c980b3Ted Kremenek break; 503d560d5025a0e5b1942d99d5f39005337b03a64c2Douglas Gregor case GR_GL_COMPRESSED_TEXTURE_FORMATS: 504f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor break; 5051eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump case GR_GL_MAX_TEXTURE_SIZE: 506f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor *params = 8192; 507d560d5025a0e5b1942d99d5f39005337b03a64c2Douglas Gregor break; 508d560d5025a0e5b1942d99d5f39005337b03a64c2Douglas Gregor case GR_GL_MAX_RENDERBUFFER_SIZE: 509508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregor *params = 8192; 510d560d5025a0e5b1942d99d5f39005337b03a64c2Douglas Gregor break; 5110b9247f129401b4849682b2e2bcdea8fc977068aDouglas Gregor case GR_GL_MAX_SAMPLES: 512199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor *params = 32; 513d560d5025a0e5b1942d99d5f39005337b03a64c2Douglas Gregor break; 5146217b80b7a1379b74cced1c076338262c3c980b3Ted Kremenek case GR_GL_MAX_VERTEX_ATTRIBS: 515d560d5025a0e5b1942d99d5f39005337b03a64c2Douglas Gregor *params = kDefaultMaxVertexAttribs; 516f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor break; 5171eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump case GR_GL_MAX_VARYING_VECTORS: 518f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor *params = kDefaultMaxVaryingVectors; 519d560d5025a0e5b1942d99d5f39005337b03a64c2Douglas Gregor break; 520d560d5025a0e5b1942d99d5f39005337b03a64c2Douglas Gregor case GR_GL_NUM_EXTENSIONS: 521508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregor *params = GR_ARRAY_COUNT(kExtensions); 522d560d5025a0e5b1942d99d5f39005337b03a64c2Douglas Gregor break; 5231eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump default: 524199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor GrCrash("Unexpected pname to GetIntegerv"); 5254d6fb501ffc0568ca5ca7266005e96a6f1273845Anders Carlsson } 5261eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump} 5274d6fb501ffc0568ca5ca7266005e96a6f1273845Anders Carlsson 5284d6fb501ffc0568ca5ca7266005e96a6f1273845Anders CarlssonGrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetInfoLog(GrGLuint program, 529f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor GrGLsizei bufsize, 5301eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump GrGLsizei* length, 531f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor char* infolog) { 5324d6fb501ffc0568ca5ca7266005e96a6f1273845Anders Carlsson if (length) { 5334d6fb501ffc0568ca5ca7266005e96a6f1273845Anders Carlsson *length = 0; 534508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregor } 5354d6fb501ffc0568ca5ca7266005e96a6f1273845Anders Carlsson if (bufsize > 0) { 536199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor *infolog = 0; 537199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor } 5384d6fb501ffc0568ca5ca7266005e96a6f1273845Anders Carlsson} 5391eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump 5404d6fb501ffc0568ca5ca7266005e96a6f1273845Anders CarlssonGrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetShaderOrProgramiv(GrGLuint program, 5414d6fb501ffc0568ca5ca7266005e96a6f1273845Anders Carlsson GrGLenum pname, 542f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor GrGLint* params) { 5431eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump switch (pname) { 5441eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump case GR_GL_LINK_STATUS: // fallthru 5454d6fb501ffc0568ca5ca7266005e96a6f1273845Anders Carlsson case GR_GL_COMPILE_STATUS: 5464d6fb501ffc0568ca5ca7266005e96a6f1273845Anders Carlsson *params = GR_GL_TRUE; 547f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor break; 5481eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump case GR_GL_INFO_LOG_LENGTH: 549f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor *params = 0; 5504d6fb501ffc0568ca5ca7266005e96a6f1273845Anders Carlsson break; 5514d6fb501ffc0568ca5ca7266005e96a6f1273845Anders Carlsson // we don't expect any other pnames 552508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregor default: 5534d6fb501ffc0568ca5ca7266005e96a6f1273845Anders Carlsson GrCrash("Unexpected pname to GetProgramiv"); 5544d6fb501ffc0568ca5ca7266005e96a6f1273845Anders Carlsson break; 555199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor } 556199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor} 557199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor 558199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregornamespace { 559f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregortemplate <typename T> 5601eb4433ac451dc16f4133a88af2d002ac26c58efMike Stumpvoid query_result(GrGLenum GLtarget, GrGLenum pname, T *params) { 561199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor switch (pname) { 562199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor case GR_GL_QUERY_RESULT_AVAILABLE: 563199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor *params = GR_GL_TRUE; 564f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor break; 565f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor case GR_GL_QUERY_RESULT: 566f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor *params = 0; 567f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor break; 568508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregor default: 569f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor GrCrash("Unexpected pname passed to GetQueryObject."); 5701eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump break; 571199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor } 5721eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump} 573199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor} 574199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor 575f67875d5addf36b951ad37fb04509ab2b572c88aDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetQueryiv(GrGLenum GLtarget, 5761eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump GrGLenum pname, 5771eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump GrGLint *params) { 578199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor switch (pname) { 5791eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump case GR_GL_CURRENT_QUERY: 580199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor *params = 0; 5811eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump break; 582335e24a194f2000086d298b800d6169ebc5a7ee6Anders Carlsson case GR_GL_QUERY_COUNTER_BITS: 583335e24a194f2000086d298b800d6169ebc5a7ee6Anders Carlsson *params = 32; 584335e24a194f2000086d298b800d6169ebc5a7ee6Anders Carlsson break; 585f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor default: 586335e24a194f2000086d298b800d6169ebc5a7ee6Anders Carlsson GrCrash("Unexpected pname passed GetQueryiv."); 587199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor } 588199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor} 589199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor 590199d99192fbcca9f043596c40ead4afab4999dbaDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetQueryObjecti64v(GrGLuint id, 591f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor GrGLenum pname, 5921eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump GrGLint64 *params) { 593199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor query_result(id, pname, params); 594f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor} 595199d99192fbcca9f043596c40ead4afab4999dbaDouglas Gregor 5961eb4433ac451dc16f4133a88af2d002ac26c58efMike StumpGrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetQueryObjectiv(GrGLuint id, 5971eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump GrGLenum pname, 5981eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump GrGLint *params) { 5991eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump query_result(id, pname, params); 600a27fad59dc760252af025ef6a86d31bb7d11a44aAnders Carlsson} 6011eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump 602a27fad59dc760252af025ef6a86d31bb7d11a44aAnders CarlssonGrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetQueryObjectui64v(GrGLuint id, 603a27fad59dc760252af025ef6a86d31bb7d11a44aAnders Carlsson GrGLenum pname, 604f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor GrGLuint64 *params) { 6051eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump query_result(id, pname, params); 6061eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump} 607a27fad59dc760252af025ef6a86d31bb7d11a44aAnders Carlsson 608994b6cb65c9daba2128366bc4c64be6dbf953528Anders CarlssonGrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetQueryObjectuiv(GrGLuint id, 6091eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump GrGLenum pname, 610994b6cb65c9daba2128366bc4c64be6dbf953528Anders Carlsson GrGLuint *params) { 611f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor query_result(id, pname, params); 6121eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump} 613994b6cb65c9daba2128366bc4c64be6dbf953528Anders Carlsson 614f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregorconst GrGLubyte* GR_GL_FUNCTION_TYPE noOpGLGetString(GrGLenum name) { 6151eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump switch (name) { 616994b6cb65c9daba2128366bc4c64be6dbf953528Anders Carlsson case GR_GL_EXTENSIONS: 617f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor return combined_extensions_string(); 618994b6cb65c9daba2128366bc4c64be6dbf953528Anders Carlsson case GR_GL_VERSION: 619a27fad59dc760252af025ef6a86d31bb7d11a44aAnders Carlsson return (const GrGLubyte*)"4.0 Debug GL"; 620f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor case GR_GL_SHADING_LANGUAGE_VERSION: 621f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor return (const GrGLubyte*)"4.20.8 Debug GLSL"; 622f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor case GR_GL_VENDOR: 623f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor return (const GrGLubyte*)"Debug Vendor"; 624508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregor case GR_GL_RENDERER: 625f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor return (const GrGLubyte*)"The Debug (Non-)Renderer"; 6261eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump default: 627a27fad59dc760252af025ef6a86d31bb7d11a44aAnders Carlsson GrCrash("Unexpected name passed to GetString"); 628a27fad59dc760252af025ef6a86d31bb7d11a44aAnders Carlsson return NULL; 629f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor } 630f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor} 631f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor 632f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregorconst GrGLubyte* GR_GL_FUNCTION_TYPE noOpGLGetStringi(GrGLenum name, GrGLuint i) { 633508f1c889b9833903ea394034fe0246d3a57a32dDouglas Gregor switch (name) { 634f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor case GR_GL_EXTENSIONS: 635a27fad59dc760252af025ef6a86d31bb7d11a44aAnders Carlsson if (static_cast<size_t>(i) <= GR_ARRAY_COUNT(kExtensions)) { 6361eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump return (const GrGLubyte*) kExtensions[i]; 637f67875d5addf36b951ad37fb04509ab2b572c88aDouglas Gregor } else { 638a27fad59dc760252af025ef6a86d31bb7d11a44aAnders Carlsson return NULL; 6391eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump } 640f670c8cfa58b4c224eb8fb566130dc47844dd3deDouglas Gregor default: 641d708c72e3e5186662fb0045d2bd666bfd93a013dDouglas Gregor GrCrash("Unexpected name passed to GetStringi"); 642d708c72e3e5186662fb0045d2bd666bfd93a013dDouglas Gregor return NULL; 643d708c72e3e5186662fb0045d2bd666bfd93a013dDouglas Gregor } 644d708c72e3e5186662fb0045d2bd666bfd93a013dDouglas Gregor} 645d708c72e3e5186662fb0045d2bd666bfd93a013dDouglas Gregor 646d708c72e3e5186662fb0045d2bd666bfd93a013dDouglas GregorGrGLvoid GR_GL_FUNCTION_TYPE noOpGLGetTexLevelParameteriv(GrGLenum target, 647d708c72e3e5186662fb0045d2bd666bfd93a013dDouglas Gregor GrGLint level, 6481eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump GrGLenum pname, 649de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor GrGLint* params) { 650de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor // we used to use this to query stuff about externally created textures, 6511eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump // now we just require clients to tell us everything about the texture. 652de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor GrCrash("Should never query texture parameters."); 6531eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump} 6544a5c15f75f76b95e1c2ceb6fa2737dcadd5f4be1Douglas Gregor 655de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas GregorGrGLint GR_GL_FUNCTION_TYPE noOpGLGetUniformLocation(GrGLuint program, const char* name) { 656de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor static int gUniLocation = 0; 657de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor return ++gUniLocation; 6581eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump} 659de0cb8b6c15c756e14b0716bebd40f4ce48ee717Douglas Gregor