GrGLInterface.h revision 0fc1dbe59271d507e1435a5d06bbfc2ec5bb4816
1ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com/* 2ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Copyright 2011 Google Inc. 3ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * 4ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Use of this source code is governed by a BSD-style license that can be 5ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * found in the LICENSE file. 659a190bcab5d4b2bf03f8f10cb6a581d19fed403twiz@google.com */ 759a190bcab5d4b2bf03f8f10cb6a581d19fed403twiz@google.com 859a190bcab5d4b2bf03f8f10cb6a581d19fed403twiz@google.com#ifndef GrGLInterface_DEFINED 959a190bcab5d4b2bf03f8f10cb6a581d19fed403twiz@google.com#define GrGLInterface_DEFINED 1059a190bcab5d4b2bf03f8f10cb6a581d19fed403twiz@google.com 11637d5e929708db8eace06b81fa3049141f9a07efbsalomon@google.com#include "GrGLFunctions.h" 1290313cc36a6f43a3e9d3818aca536cd6631c222bcommit-bot@chromium.org#include "GrGLExtensions.h" 13a4de8c257ea0be8ff7081f645249b6afe5c48e7ecommit-bot@chromium.org#include "SkRefCnt.h" 1459a190bcab5d4b2bf03f8f10cb6a581d19fed403twiz@google.com 1559a190bcab5d4b2bf03f8f10cb6a581d19fed403twiz@google.com//////////////////////////////////////////////////////////////////////////////// 1659a190bcab5d4b2bf03f8f10cb6a581d19fed403twiz@google.com 1759a190bcab5d4b2bf03f8f10cb6a581d19fed403twiz@google.com/** 180b77d6892b067ad402c9678b0226bff70599fbe2bsalomon@google.com * Rather than depend on platform-specific GL headers and libraries, we require 190b77d6892b067ad402c9678b0226bff70599fbe2bsalomon@google.com * the client to provide a struct of GL function pointers. This struct can be 200b77d6892b067ad402c9678b0226bff70599fbe2bsalomon@google.com * specified per-GrContext as a parameter to GrContext::Create. If NULL is 21a3b15ed0373b873d4c497b51384b8c07d751753acommit-bot@chromium.org * passed to Create then a "default" GL interface is created. If the default is 220b77d6892b067ad402c9678b0226bff70599fbe2bsalomon@google.com * also NULL GrContext creation will fail. 230b77d6892b067ad402c9678b0226bff70599fbe2bsalomon@google.com * 246fb736fc2ea5f3f7ac44494211cc6755180ca192bsalomon@google.com * The default interface is returned by GrGLDefaultInterface. This function's 250da3719050473344b6013fd7b614611984f20effrobertphillips@google.com * implementation is platform-specific. Several have been provided, along with 26a3b15ed0373b873d4c497b51384b8c07d751753acommit-bot@chromium.org * an implementation that simply returns NULL. 2756bfc5acc210987838744eece7383bc2f6b34915bsalomon@google.com * 2856bfc5acc210987838744eece7383bc2f6b34915bsalomon@google.com * By defining GR_GL_PER_GL_CALL_IFACE_CALLBACK to 1 the client can specify a 2956bfc5acc210987838744eece7383bc2f6b34915bsalomon@google.com * callback function that will be called prior to each GL function call. See 3056bfc5acc210987838744eece7383bc2f6b34915bsalomon@google.com * comments in GrGLConfig.h 3159a190bcab5d4b2bf03f8f10cb6a581d19fed403twiz@google.com */ 320b77d6892b067ad402c9678b0226bff70599fbe2bsalomon@google.com 33d416a5b10ff9e6d4f55a1f5b0419722132d68ff3cdaltontypedef void(*GrGLFuncPtr)(); 34d416a5b10ff9e6d4f55a1f5b0419722132d68ff3cdalton 3559a190bcab5d4b2bf03f8f10cb6a581d19fed403twiz@google.comstruct GrGLInterface; 3659a190bcab5d4b2bf03f8f10cb6a581d19fed403twiz@google.com 376fb736fc2ea5f3f7ac44494211cc6755180ca192bsalomon@google.comconst GrGLInterface* GrGLDefaultInterface(); 3859a190bcab5d4b2bf03f8f10cb6a581d19fed403twiz@google.com 3957f5d9854bfc78c347cb587e044fb3950f9ad298bsalomon@google.com/** 4057f5d9854bfc78c347cb587e044fb3950f9ad298bsalomon@google.com * Creates a GrGLInterface for a "native" GL context (e.g. WGL on windows, 41a3b15ed0373b873d4c497b51384b8c07d751753acommit-bot@chromium.org * GLX on linux, AGL on Mac). The interface is only valid for the GL context 42a3b15ed0373b873d4c497b51384b8c07d751753acommit-bot@chromium.org * that is current when the interface is created. 4357f5d9854bfc78c347cb587e044fb3950f9ad298bsalomon@google.com */ 440fc1dbe59271d507e1435a5d06bbfc2ec5bb4816halcanarySK_API const GrGLInterface* GrGLCreateNativeInterface(); 45373a6635b7190b4af4d265fdd4b70f102ec3a6fdbsalomon@google.com 46d3b9fbbc48c13a1b2a664cf7e01374a44c201f51robertphillips@google.com#if SK_MESA 4757f5d9854bfc78c347cb587e044fb3950f9ad298bsalomon@google.com/** 4857f5d9854bfc78c347cb587e044fb3950f9ad298bsalomon@google.com * Creates a GrGLInterface for an OSMesa context. 4957f5d9854bfc78c347cb587e044fb3950f9ad298bsalomon@google.com */ 500fc1dbe59271d507e1435a5d06bbfc2ec5bb4816halcanarySK_API const GrGLInterface* GrGLCreateMesaInterface(); 51d3b9fbbc48c13a1b2a664cf7e01374a44c201f51robertphillips@google.com#endif 52d3b9fbbc48c13a1b2a664cf7e01374a44c201f51robertphillips@google.com 53d3b9fbbc48c13a1b2a664cf7e01374a44c201f51robertphillips@google.com#if SK_ANGLE 54d3b9fbbc48c13a1b2a664cf7e01374a44c201f51robertphillips@google.com/** 55d3b9fbbc48c13a1b2a664cf7e01374a44c201f51robertphillips@google.com * Creates a GrGLInterface for an ANGLE context. 56d3b9fbbc48c13a1b2a664cf7e01374a44c201f51robertphillips@google.com */ 570fc1dbe59271d507e1435a5d06bbfc2ec5bb4816halcanarySK_API const GrGLInterface* GrGLCreateANGLEInterface(); 58d3b9fbbc48c13a1b2a664cf7e01374a44c201f51robertphillips@google.com#endif 59373a6635b7190b4af4d265fdd4b70f102ec3a6fdbsalomon@google.com 60885bf0925514b9dfe3365bab227d36897d866b5dhendrikw#if SK_COMMAND_BUFFER 61885bf0925514b9dfe3365bab227d36897d866b5dhendrikw/** 62885bf0925514b9dfe3365bab227d36897d866b5dhendrikw * Creates a GrGLInterface for a Command Buffer context. 63885bf0925514b9dfe3365bab227d36897d866b5dhendrikw */ 640fc1dbe59271d507e1435a5d06bbfc2ec5bb4816halcanarySK_API const GrGLInterface* GrGLCreateCommandBufferInterface(); 65885bf0925514b9dfe3365bab227d36897d866b5dhendrikw#endif 66885bf0925514b9dfe3365bab227d36897d866b5dhendrikw 6774913722bfe5e4b6810545891958e3d8e9c63791bsalomon@google.com/** 6874913722bfe5e4b6810545891958e3d8e9c63791bsalomon@google.com * Creates a null GrGLInterface that doesn't draw anything. Used for measuring 6974913722bfe5e4b6810545891958e3d8e9c63791bsalomon@google.com * CPU overhead. 7074913722bfe5e4b6810545891958e3d8e9c63791bsalomon@google.com */ 71aae7c2a5b7a11616879e6179357cf38f5bff53aecommit-bot@chromium.orgconst SK_API GrGLInterface* GrGLCreateNullInterface(); 7274913722bfe5e4b6810545891958e3d8e9c63791bsalomon@google.com 730da3719050473344b6013fd7b614611984f20effrobertphillips@google.com/** 74fbfcd5602128ec010c82cb733c9cdc0a3254f9f3rmistry@google.com * Creates a debugging GrGLInterface that doesn't draw anything. Used for 750da3719050473344b6013fd7b614611984f20effrobertphillips@google.com * finding memory leaks and invalid memory accesses. 760da3719050473344b6013fd7b614611984f20effrobertphillips@google.com */ 770da3719050473344b6013fd7b614611984f20effrobertphillips@google.comconst GrGLInterface* GrGLCreateDebugInterface(); 780da3719050473344b6013fd7b614611984f20effrobertphillips@google.com 7956bfc5acc210987838744eece7383bc2f6b34915bsalomon@google.com#if GR_GL_PER_GL_FUNC_CALLBACK 8056bfc5acc210987838744eece7383bc2f6b34915bsalomon@google.comtypedef void (*GrGLInterfaceCallbackProc)(const GrGLInterface*); 8156bfc5acc210987838744eece7383bc2f6b34915bsalomon@google.comtypedef intptr_t GrGLInterfaceCallbackData; 8256bfc5acc210987838744eece7383bc2f6b34915bsalomon@google.com#endif 8356bfc5acc210987838744eece7383bc2f6b34915bsalomon@google.com 84d8ed85101ee77ad2cb0c186a79d197698a75d246commit-bot@chromium.org/** Function that returns a new interface identical to "interface" but without support for 85d8ed85101ee77ad2cb0c186a79d197698a75d246commit-bot@chromium.org GL_NV_path_rendering. */ 86d8ed85101ee77ad2cb0c186a79d197698a75d246commit-bot@chromium.orgconst GrGLInterface* GrGLInterfaceRemoveNVPR(const GrGLInterface*); 87d8ed85101ee77ad2cb0c186a79d197698a75d246commit-bot@chromium.org 88a3baf3be0e2a3128fb73bd41d40d130f75a4dc86commit-bot@chromium.org/** Function that returns a new interface identical to "interface" but with support for 89a3baf3be0e2a3128fb73bd41d40d130f75a4dc86commit-bot@chromium.org test version of GL_EXT_debug_marker. */ 90a3baf3be0e2a3128fb73bd41d40d130f75a4dc86commit-bot@chromium.orgconst GrGLInterface* GrGLInterfaceAddTestDebugMarker(const GrGLInterface*, 91a3baf3be0e2a3128fb73bd41d40d130f75a4dc86commit-bot@chromium.org GrGLInsertEventMarkerProc insertEventMarkerFn, 92a3baf3be0e2a3128fb73bd41d40d130f75a4dc86commit-bot@chromium.org GrGLPushGroupMarkerProc pushGroupMarkerFn, 93a3baf3be0e2a3128fb73bd41d40d130f75a4dc86commit-bot@chromium.org GrGLPopGroupMarkerProc popGroupMarkerFn); 94a3baf3be0e2a3128fb73bd41d40d130f75a4dc86commit-bot@chromium.org 95d8ed85101ee77ad2cb0c186a79d197698a75d246commit-bot@chromium.org/** 96cc61b1762814ada94970ac071aa2d0a96f897363bsalomon@google.com * GrContext uses the following interface to make all calls into OpenGL. When a 97cc61b1762814ada94970ac071aa2d0a96f897363bsalomon@google.com * GrContext is created it is given a GrGLInterface. The interface's function 98cc61b1762814ada94970ac071aa2d0a96f897363bsalomon@google.com * pointers must be valid for the OpenGL context associated with the GrContext. 99cc61b1762814ada94970ac071aa2d0a96f897363bsalomon@google.com * On some platforms, such as Windows, function pointers for OpenGL extensions 100cc61b1762814ada94970ac071aa2d0a96f897363bsalomon@google.com * may vary between OpenGL contexts. So the caller must be careful to use a 101cc61b1762814ada94970ac071aa2d0a96f897363bsalomon@google.com * GrGLInterface initialized for the correct context. All functions that should 102cc61b1762814ada94970ac071aa2d0a96f897363bsalomon@google.com * be available based on the OpenGL's version and extension string must be 103cc61b1762814ada94970ac071aa2d0a96f897363bsalomon@google.com * non-NULL or GrContext creation will fail. This can be tested with the 104cc61b1762814ada94970ac071aa2d0a96f897363bsalomon@google.com * validate() method when the OpenGL context has been made current. 105bf2a46941e8fdebfcd24ea8f7184779021898225bsalomon@google.com */ 106a4de8c257ea0be8ff7081f645249b6afe5c48e7ecommit-bot@chromium.orgstruct SK_API GrGLInterface : public SkRefCnt { 107ba800e22253d96a7ba6aab09e969e1581f2b487dbsalomon@google.comprivate: 1089c1f1ac5d399c73f5f331bdf7b392ea7f0c44dafbsalomon@google.com // simple wrapper class that exists only to initialize a pointer to NULL 109ba800e22253d96a7ba6aab09e969e1581f2b487dbsalomon@google.com template <typename FNPTR_TYPE> class GLPtr { 110ba800e22253d96a7ba6aab09e969e1581f2b487dbsalomon@google.com public: 111ba800e22253d96a7ba6aab09e969e1581f2b487dbsalomon@google.com GLPtr() : fPtr(NULL) {} 112c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr operator=(FNPTR_TYPE ptr) { fPtr = ptr; return *this; } 113ba800e22253d96a7ba6aab09e969e1581f2b487dbsalomon@google.com operator FNPTR_TYPE() const { return fPtr; } 114ba800e22253d96a7ba6aab09e969e1581f2b487dbsalomon@google.com private: 115ba800e22253d96a7ba6aab09e969e1581f2b487dbsalomon@google.com FNPTR_TYPE fPtr; 116ba800e22253d96a7ba6aab09e969e1581f2b487dbsalomon@google.com }; 117ba800e22253d96a7ba6aab09e969e1581f2b487dbsalomon@google.com 118c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org // This is a temporary workaround to keep Chromium's GrGLInterface factories compiling until 119c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org // they're updated to use the Functions struct. 120c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org template <typename FNPTR_TYPE> class GLPtrAlias { 121c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org public: 122c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtrAlias(GLPtr<FNPTR_TYPE>* base) : fBase(base) {} 123c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org void operator=(FNPTR_TYPE ptr) { *fBase = ptr; } 124c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org private: 125c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<FNPTR_TYPE>* fBase; 126c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org }; 127c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org 128a4de8c257ea0be8ff7081f645249b6afe5c48e7ecommit-bot@chromium.org typedef SkRefCnt INHERITED; 12915e9d3e66e161ce23df30bc13f8a0c87d196b463robertphillips@google.com 130ba800e22253d96a7ba6aab09e969e1581f2b487dbsalomon@google.compublic: 1312766c00fc0b6a07d46e5f74cdad45da2ef625237mtklein 13215e9d3e66e161ce23df30bc13f8a0c87d196b463robertphillips@google.com 1330b77d6892b067ad402c9678b0226bff70599fbe2bsalomon@google.com GrGLInterface(); 1340b77d6892b067ad402c9678b0226bff70599fbe2bsalomon@google.com 135d8ed85101ee77ad2cb0c186a79d197698a75d246commit-bot@chromium.org static GrGLInterface* NewClone(const GrGLInterface*); 136d8ed85101ee77ad2cb0c186a79d197698a75d246commit-bot@chromium.org 1379e90aed5de82732cc9921f01388d3063a41a053bcommit-bot@chromium.org // Validates that the GrGLInterface supports its advertised standard. This means the necessary 1389e90aed5de82732cc9921f01388d3063a41a053bcommit-bot@chromium.org // function pointers have been initialized for both the GL version and any advertised 1399e90aed5de82732cc9921f01388d3063a41a053bcommit-bot@chromium.org // extensions. 1409e90aed5de82732cc9921f01388d3063a41a053bcommit-bot@chromium.org bool validate() const; 14189ec61e33daa9cbac200d38f7c5bb8b88046999absalomon@google.com 1429e90aed5de82732cc9921f01388d3063a41a053bcommit-bot@chromium.org // Indicates the type of GL implementation 1439e90aed5de82732cc9921f01388d3063a41a053bcommit-bot@chromium.org union { 1449e90aed5de82732cc9921f01388d3063a41a053bcommit-bot@chromium.org GrGLStandard fStandard; 1459e90aed5de82732cc9921f01388d3063a41a053bcommit-bot@chromium.org GrGLStandard fBindingsExported; // Legacy name, will be remove when Chromium is updated. 1469e90aed5de82732cc9921f01388d3063a41a053bcommit-bot@chromium.org }; 147b65e0cb8ad8a690498142d2b0097be250b0c7dfbtwiz@google.com 14890313cc36a6f43a3e9d3818aca536cd6631c222bcommit-bot@chromium.org GrGLExtensions fExtensions; 14990313cc36a6f43a3e9d3818aca536cd6631c222bcommit-bot@chromium.org 150f535561b3baeb5f19c5b81fb439818bdde00d882commit-bot@chromium.org bool hasExtension(const char ext[]) const { return fExtensions.has(ext); } 15190313cc36a6f43a3e9d3818aca536cd6631c222bcommit-bot@chromium.org 152c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org /** 153c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org * The function pointers are in a struct so that we can have a compiler generated assignment 154c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org * operator. 155c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org */ 156c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org struct Functions { 157c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLActiveTextureProc> fActiveTexture; 158c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLAttachShaderProc> fAttachShader; 159c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLBeginQueryProc> fBeginQuery; 160c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLBindAttribLocationProc> fBindAttribLocation; 161c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLBindBufferProc> fBindBuffer; 162c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLBindFragDataLocationProc> fBindFragDataLocation; 163c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLBindFragDataLocationIndexedProc> fBindFragDataLocationIndexed; 164c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLBindFramebufferProc> fBindFramebuffer; 165c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLBindRenderbufferProc> fBindRenderbuffer; 166c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLBindTextureProc> fBindTexture; 167c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLBindVertexArrayProc> fBindVertexArray; 168bae6f6c3ec927bc1f87cd4c13fec0b52e5677c23cdalton GLPtr<GrGLBlendBarrierProc> fBlendBarrier; 169c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLBlendColorProc> fBlendColor; 170bae6f6c3ec927bc1f87cd4c13fec0b52e5677c23cdalton GLPtr<GrGLBlendEquationProc> fBlendEquation; 171c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLBlendFuncProc> fBlendFunc; 172c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLBlitFramebufferProc> fBlitFramebuffer; 173c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLBufferDataProc> fBufferData; 174c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLBufferSubDataProc> fBufferSubData; 175c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLCheckFramebufferStatusProc> fCheckFramebufferStatus; 176c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLClearProc> fClear; 177c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLClearColorProc> fClearColor; 178c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLClearStencilProc> fClearStencil; 179c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLColorMaskProc> fColorMask; 180c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLCompileShaderProc> fCompileShader; 181c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLCompressedTexImage2DProc> fCompressedTexImage2D; 18237d20f75320e8182f4cdbce5f3d59a339f915e05krajcevski GLPtr<GrGLCompressedTexSubImage2DProc> fCompressedTexSubImage2D; 183c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLCopyTexSubImage2DProc> fCopyTexSubImage2D; 184f23809101e2467cb509ddc6ad4de50017c0a2094junov GLPtr<GrGLCopyTextureCHROMIUMProc> fCopyTextureCHROMIUM; 185c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLCreateProgramProc> fCreateProgram; 186c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLCreateShaderProc> fCreateShader; 187c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLCullFaceProc> fCullFace; 188c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLDeleteBuffersProc> fDeleteBuffers; 189c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLDeleteFramebuffersProc> fDeleteFramebuffers; 190c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLDeleteProgramProc> fDeleteProgram; 191c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLDeleteQueriesProc> fDeleteQueries; 192c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLDeleteRenderbuffersProc> fDeleteRenderbuffers; 193c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLDeleteShaderProc> fDeleteShader; 194c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLDeleteTexturesProc> fDeleteTextures; 195c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLDeleteVertexArraysProc> fDeleteVertexArrays; 196c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLDepthMaskProc> fDepthMask; 197c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLDisableProc> fDisable; 198c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLDisableVertexAttribArrayProc> fDisableVertexAttribArray; 199c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLDrawArraysProc> fDrawArrays; 200c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLDrawBufferProc> fDrawBuffer; 201c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLDrawBuffersProc> fDrawBuffers; 202c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLDrawElementsProc> fDrawElements; 203c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLEnableProc> fEnable; 204c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLEnableVertexAttribArrayProc> fEnableVertexAttribArray; 205c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLEndQueryProc> fEndQuery; 206c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLFinishProc> fFinish; 207c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLFlushProc> fFlush; 208160b478eed1dd4924a86a87fd60c91139e08ff71commit-bot@chromium.org GLPtr<GrGLFlushMappedBufferRangeProc> fFlushMappedBufferRange; 209c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLFramebufferRenderbufferProc> fFramebufferRenderbuffer; 210c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLFramebufferTexture2DProc> fFramebufferTexture2D; 211c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLFramebufferTexture2DMultisampleProc> fFramebufferTexture2DMultisample; 212c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLFrontFaceProc> fFrontFace; 213c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLGenBuffersProc> fGenBuffers; 214c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLGenFramebuffersProc> fGenFramebuffers; 215c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLGenerateMipmapProc> fGenerateMipmap; 216c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLGenQueriesProc> fGenQueries; 217c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLGenRenderbuffersProc> fGenRenderbuffers; 218c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLGenTexturesProc> fGenTextures; 219c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLGenVertexArraysProc> fGenVertexArrays; 220c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLGetBufferParameterivProc> fGetBufferParameteriv; 221c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLGetErrorProc> fGetError; 222c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLGetFramebufferAttachmentParameterivProc> fGetFramebufferAttachmentParameteriv; 223c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLGetIntegervProc> fGetIntegerv; 224c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLGetQueryObjecti64vProc> fGetQueryObjecti64v; 225c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLGetQueryObjectivProc> fGetQueryObjectiv; 226c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLGetQueryObjectui64vProc> fGetQueryObjectui64v; 227c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLGetQueryObjectuivProc> fGetQueryObjectuiv; 228c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLGetQueryivProc> fGetQueryiv; 229c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLGetProgramInfoLogProc> fGetProgramInfoLog; 230c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLGetProgramivProc> fGetProgramiv; 231c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLGetRenderbufferParameterivProc> fGetRenderbufferParameteriv; 232c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLGetShaderInfoLogProc> fGetShaderInfoLog; 233c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLGetShaderivProc> fGetShaderiv; 234ee64d6ef49fbb63e0fc7934334c5ae5e900f5336bsalomon GLPtr<GrGLGetShaderPrecisionFormatProc> fGetShaderPrecisionFormat; 235c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLGetStringProc> fGetString; 236c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLGetStringiProc> fGetStringi; 237c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLGetTexLevelParameterivProc> fGetTexLevelParameteriv; 238c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLGetUniformLocationProc> fGetUniformLocation; 239a3baf3be0e2a3128fb73bd41d40d130f75a4dc86commit-bot@chromium.org GLPtr<GrGLInsertEventMarkerProc> fInsertEventMarker; 240a34bb60c4e319f2289106d519544fe09d43eabd5bsalomon@google.com GLPtr<GrGLInvalidateBufferDataProc> fInvalidateBufferData; 241a34bb60c4e319f2289106d519544fe09d43eabd5bsalomon@google.com GLPtr<GrGLInvalidateBufferSubDataProc> fInvalidateBufferSubData; 242a34bb60c4e319f2289106d519544fe09d43eabd5bsalomon@google.com GLPtr<GrGLInvalidateFramebufferProc> fInvalidateFramebuffer; 243a34bb60c4e319f2289106d519544fe09d43eabd5bsalomon@google.com GLPtr<GrGLInvalidateSubFramebufferProc> fInvalidateSubFramebuffer; 244a34bb60c4e319f2289106d519544fe09d43eabd5bsalomon@google.com GLPtr<GrGLInvalidateTexImageProc> fInvalidateTexImage; 245a34bb60c4e319f2289106d519544fe09d43eabd5bsalomon@google.com GLPtr<GrGLInvalidateTexSubImageProc> fInvalidateTexSubImage; 2466dc6f5f4a153d33ed91565cb3cd397a310a937d0bsalomon GLPtr<GrGLIsTextureProc> fIsTexture; 247c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLLineWidthProc> fLineWidth; 248c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLLinkProgramProc> fLinkProgram; 249c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLMapBufferProc> fMapBuffer; 250160b478eed1dd4924a86a87fd60c91139e08ff71commit-bot@chromium.org GLPtr<GrGLMapBufferRangeProc> fMapBufferRange; 251beb8b3a4da83ce30e313e72ae0e444870acecb7ecommit-bot@chromium.org GLPtr<GrGLMapBufferSubDataProc> fMapBufferSubData; 252beb8b3a4da83ce30e313e72ae0e444870acecb7ecommit-bot@chromium.org GLPtr<GrGLMapTexSubImage2DProc> fMapTexSubImage2D; 253c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLPixelStoreiProc> fPixelStorei; 254a3baf3be0e2a3128fb73bd41d40d130f75a4dc86commit-bot@chromium.org GLPtr<GrGLPopGroupMarkerProc> fPopGroupMarker; 255a3baf3be0e2a3128fb73bd41d40d130f75a4dc86commit-bot@chromium.org GLPtr<GrGLPushGroupMarkerProc> fPushGroupMarker; 256c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLQueryCounterProc> fQueryCounter; 2570edea2c8e76a9f5340a7a4960193757c4a5fb227cdalton GLPtr<GrGLRasterSamplesProc> fRasterSamples; 258c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLReadBufferProc> fReadBuffer; 259c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLReadPixelsProc> fReadPixels; 260c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLRenderbufferStorageProc> fRenderbufferStorage; 261c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org 262c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org // On OpenGL ES there are multiple incompatible extensions that add support for MSAA 263c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org // and ES3 adds MSAA support to the standard. On an ES3 driver we may still use the 264c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org // older extensions for performance reasons or due to ES3 driver bugs. We want the function 265c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org // that creates the GrGLInterface to provide all available functions and internally 266c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org // we will select among them. They all have a method called glRenderbufferStorageMultisample*. 267c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org // So we have separate function pointers for GL_IMG/EXT_multisampled_to_texture, 268c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org // GL_CHROMIUM/ANGLE_framebuffer_multisample/ES3, and GL_APPLE_framebuffer_multisample 269c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org // variations. 270c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org // 271c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org // If a driver supports multiple GL_ARB_framebuffer_multisample-style extensions then we will 272c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org // assume the function pointers for the standard (or equivalent GL_ARB) version have 273c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org // been preferred over GL_EXT, GL_CHROMIUM, or GL_ANGLE variations that have reduced 274c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org // functionality. 275c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org 276c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org // GL_EXT_multisampled_render_to_texture (preferred) or GL_IMG_multisampled_render_to_texture 277c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLRenderbufferStorageMultisampleProc> fRenderbufferStorageMultisampleES2EXT; 278c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org // GL_APPLE_framebuffer_multisample 279c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLRenderbufferStorageMultisampleProc> fRenderbufferStorageMultisampleES2APPLE; 280c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org 281c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org // This is used to store the pointer for GL_ARB/EXT/ANGLE/CHROMIUM_framebuffer_multisample or 282c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org // the standard function in ES3+ or GL 3.0+. 283c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLRenderbufferStorageMultisampleProc> fRenderbufferStorageMultisample; 284c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org 285c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org // Pointer to BindUniformLocationCHROMIUM from the GL_CHROMIUM_bind_uniform_location extension. 286c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLBindUniformLocation> fBindUniformLocation; 287c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org 288c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLResolveMultisampleFramebufferProc> fResolveMultisampleFramebuffer; 289c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLScissorProc> fScissor; 290c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLShaderSourceProc> fShaderSource; 291c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLStencilFuncProc> fStencilFunc; 292c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLStencilFuncSeparateProc> fStencilFuncSeparate; 293c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLStencilMaskProc> fStencilMask; 294c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLStencilMaskSeparateProc> fStencilMaskSeparate; 295c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLStencilOpProc> fStencilOp; 296c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLStencilOpSeparateProc> fStencilOpSeparate; 297c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLTexImage2DProc> fTexImage2D; 298c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLTexParameteriProc> fTexParameteri; 299c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLTexParameterivProc> fTexParameteriv; 300c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLTexSubImage2DProc> fTexSubImage2D; 301c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLTexStorage2DProc> fTexStorage2D; 302fd4167ddf12ea723b828462ec1507acebdef5776cdalton GLPtr<GrGLTextureBarrierProc> fTextureBarrier; 303c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLDiscardFramebufferProc> fDiscardFramebuffer; 304c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLUniform1fProc> fUniform1f; 305c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLUniform1iProc> fUniform1i; 306c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLUniform1fvProc> fUniform1fv; 307c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLUniform1ivProc> fUniform1iv; 308c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLUniform2fProc> fUniform2f; 309c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLUniform2iProc> fUniform2i; 310c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLUniform2fvProc> fUniform2fv; 311c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLUniform2ivProc> fUniform2iv; 312c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLUniform3fProc> fUniform3f; 313c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLUniform3iProc> fUniform3i; 314c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLUniform3fvProc> fUniform3fv; 315c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLUniform3ivProc> fUniform3iv; 316c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLUniform4fProc> fUniform4f; 317c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLUniform4iProc> fUniform4i; 318c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLUniform4fvProc> fUniform4fv; 319c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLUniform4ivProc> fUniform4iv; 320c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLUniformMatrix2fvProc> fUniformMatrix2fv; 321c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLUniformMatrix3fvProc> fUniformMatrix3fv; 322c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLUniformMatrix4fvProc> fUniformMatrix4fv; 323c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLUnmapBufferProc> fUnmapBuffer; 324beb8b3a4da83ce30e313e72ae0e444870acecb7ecommit-bot@chromium.org GLPtr<GrGLUnmapBufferSubDataProc> fUnmapBufferSubData; 325beb8b3a4da83ce30e313e72ae0e444870acecb7ecommit-bot@chromium.org GLPtr<GrGLUnmapTexSubImage2DProc> fUnmapTexSubImage2D; 326c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLUseProgramProc> fUseProgram; 32727c1521ccf0f833affa1182d6d9bc5e31b3af351egdaniel GLPtr<GrGLVertexAttrib1fProc> fVertexAttrib1f; 32827c1521ccf0f833affa1182d6d9bc5e31b3af351egdaniel GLPtr<GrGLVertexAttrib2fvProc> fVertexAttrib2fv; 32927c1521ccf0f833affa1182d6d9bc5e31b3af351egdaniel GLPtr<GrGLVertexAttrib3fvProc> fVertexAttrib3fv; 330c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLVertexAttrib4fvProc> fVertexAttrib4fv; 331c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLVertexAttribPointerProc> fVertexAttribPointer; 332c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLViewportProc> fViewport; 333c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org 334626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton /* GL_NV_path_rendering */ 335626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLMatrixLoadfProc> fMatrixLoadf; 336626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLMatrixLoadIdentityProc> fMatrixLoadIdentity; 33732b9a3b02ed6b8bab4a25b6cb8853f5bea4b87bakkinnunen GLPtr<GrGLGetProgramResourceLocationProc> fGetProgramResourceLocation; 338c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLPathCommandsProc> fPathCommands; 339c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLPathParameteriProc> fPathParameteri; 340c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLPathParameterfProc> fPathParameterf; 341c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLGenPathsProc> fGenPaths; 342c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLDeletePathsProc> fDeletePaths; 3438dd90cb1fd541b9a2a264725e3dfeae736c91e22cdalton GLPtr<GrGLIsPathProc> fIsPath; 344c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLPathStencilFuncProc> fPathStencilFunc; 345c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLStencilFillPathProc> fStencilFillPath; 346c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLStencilStrokePathProc> fStencilStrokePath; 347c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLStencilFillPathInstancedProc> fStencilFillPathInstanced; 348c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLStencilStrokePathInstancedProc> fStencilStrokePathInstanced; 349c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLCoverFillPathProc> fCoverFillPath; 350c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLCoverStrokePathProc> fCoverStrokePath; 351c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLCoverFillPathInstancedProc> fCoverFillPathInstanced; 352c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org GLPtr<GrGLCoverStrokePathInstancedProc> fCoverStrokePathInstanced; 353c7103a104fdc7150b4e3c0d3efc42735ad359616cdalton // NV_path_rendering v1.2 354c8f520466701a14cf2fb86d3f2d3c70983cb4518cdalton GLPtr<GrGLStencilThenCoverFillPathProc> fStencilThenCoverFillPath; 355c8f520466701a14cf2fb86d3f2d3c70983cb4518cdalton GLPtr<GrGLStencilThenCoverStrokePathProc> fStencilThenCoverStrokePath; 356c8f520466701a14cf2fb86d3f2d3c70983cb4518cdalton GLPtr<GrGLStencilThenCoverFillPathInstancedProc> fStencilThenCoverFillPathInstanced; 357c8f520466701a14cf2fb86d3f2d3c70983cb4518cdalton GLPtr<GrGLStencilThenCoverStrokePathInstancedProc> fStencilThenCoverStrokePathInstanced; 358c7103a104fdc7150b4e3c0d3efc42735ad359616cdalton // NV_path_rendering v1.3 35932b9a3b02ed6b8bab4a25b6cb8853f5bea4b87bakkinnunen GLPtr<GrGLProgramPathFragmentInputGenProc> fProgramPathFragmentInputGen; 3606bb6d4075b198c5935ab6f2d71364ca7ff0153d1kkinnunen // CHROMIUM_path_rendering 3616bb6d4075b198c5935ab6f2d71364ca7ff0153d1kkinnunen GLPtr<GrGLBindFragmentInputLocationProc> fBindFragmentInputLocation; 362626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton 363626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton /* NV_framebuffer_mixed_samples */ 36408b4d29a0a29badc15129c9bc7ee8352bc75278dvbuzinov GLPtr<GrGLCoverageModulationProc> fCoverageModulation; 365626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton 366626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton /* ARB_draw_instanced */ 367626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLDrawArraysInstancedProc> fDrawArraysInstanced; 368626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLDrawElementsInstancedProc> fDrawElementsInstanced; 369626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton 370626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton /* ARB_instanced_arrays */ 371626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLVertexAttribDivisorProc> fVertexAttribDivisor; 372626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton 373626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton /* NV_bindless_texture */ 374626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton // We use the NVIDIA verson for now because it does not require dynamically uniform handles. 375626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton // We may switch the the ARB version and/or omit methods in the future. 376626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLGetTextureHandleProc> fGetTextureHandle; 377626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLGetTextureSamplerHandleProc> fGetTextureSamplerHandle; 378626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLMakeTextureHandleResidentProc> fMakeTextureHandleResident; 379626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLMakeTextureHandleNonResidentProc> fMakeTextureHandleNonResident; 380626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLGetImageHandleProc> fGetImageHandle; 381626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLMakeImageHandleResidentProc> fMakeImageHandleResident; 382626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLMakeImageHandleNonResidentProc> fMakeImageHandleNonResident; 383626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLIsTextureHandleResidentProc> fIsTextureHandleResident; 384626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLIsImageHandleResidentProc> fIsImageHandleResident; 385626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLUniformHandleui64Proc> fUniformHandleui64; 386626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLUniformHandleui64vProc> fUniformHandleui64v; 387626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLProgramUniformHandleui64Proc> fProgramUniformHandleui64; 388626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLProgramUniformHandleui64vProc> fProgramUniformHandleui64v; 389626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton 390626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton /* EXT_direct_state_access */ 391626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton // We use the EXT verson because it is more expansive and interacts with more extensions 392626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton // than the ARB or core (4.5) versions. We may switch and/or omit methods in the future. 393626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLTextureParameteriProc> fTextureParameteri; 394626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLTextureParameterivProc> fTextureParameteriv; 395626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLTextureParameterfProc> fTextureParameterf; 396626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLTextureParameterfvProc> fTextureParameterfv; 397626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLTextureImage1DProc> fTextureImage1D; 398626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLTextureImage2DProc> fTextureImage2D; 399626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLTextureSubImage1DProc> fTextureSubImage1D; 400626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLTextureSubImage2DProc> fTextureSubImage2D; 401626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLCopyTextureImage1DProc> fCopyTextureImage1D; 402626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLCopyTextureImage2DProc> fCopyTextureImage2D; 403626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLCopyTextureSubImage1DProc> fCopyTextureSubImage1D; 404626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLCopyTextureSubImage2DProc> fCopyTextureSubImage2D; 405626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLGetTextureImageProc> fGetTextureImage; 406626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLGetTextureParameterfvProc> fGetTextureParameterfv; 407626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLGetTextureParameterivProc> fGetTextureParameteriv; 408626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLGetTextureLevelParameterfvProc> fGetTextureLevelParameterfv; 409626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLGetTextureLevelParameterivProc> fGetTextureLevelParameteriv; 410626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton // OpenGL 1.2 411626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLTextureImage3DProc> fTextureImage3D; 412626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLTextureSubImage3DProc> fTextureSubImage3D; 413626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLCopyTextureSubImage3DProc> fCopyTextureSubImage3D; 414626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLCompressedTextureImage3DProc> fCompressedTextureImage3D; 415626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLCompressedTextureImage2DProc> fCompressedTextureImage2D; 416626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLCompressedTextureImage1DProc> fCompressedTextureImage1D; 417626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLCompressedTextureSubImage3DProc> fCompressedTextureSubImage3D; 418626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLCompressedTextureSubImage2DProc> fCompressedTextureSubImage2D; 419626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLCompressedTextureSubImage1DProc> fCompressedTextureSubImage1D; 420626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLGetCompressedTextureImageProc> fGetCompressedTextureImage; 421626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton // OpenGL 1.5 422626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLNamedBufferDataProc> fNamedBufferData; 423626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLNamedBufferSubDataProc> fNamedBufferSubData; 424626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLMapNamedBufferProc> fMapNamedBuffer; 425626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLUnmapNamedBufferProc> fUnmapNamedBuffer; 426626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLGetNamedBufferParameterivProc> fGetNamedBufferParameteriv; 427626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLGetNamedBufferPointervProc> fGetNamedBufferPointerv; 428626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLGetNamedBufferSubDataProc> fGetNamedBufferSubData; 429626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton // OpenGL 2.0 430626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLProgramUniform1fProc> fProgramUniform1f; 431626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLProgramUniform2fProc> fProgramUniform2f; 432626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLProgramUniform3fProc> fProgramUniform3f; 433626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLProgramUniform4fProc> fProgramUniform4f; 434626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLProgramUniform1iProc> fProgramUniform1i; 435626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLProgramUniform2iProc> fProgramUniform2i; 436626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLProgramUniform3iProc> fProgramUniform3i; 437626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLProgramUniform4iProc> fProgramUniform4i; 438626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLProgramUniform1fvProc> fProgramUniform1fv; 439626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLProgramUniform2fvProc> fProgramUniform2fv; 440626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLProgramUniform3fvProc> fProgramUniform3fv; 441626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLProgramUniform4fvProc> fProgramUniform4fv; 442626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLProgramUniform1ivProc> fProgramUniform1iv; 443626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLProgramUniform2ivProc> fProgramUniform2iv; 444626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLProgramUniform3ivProc> fProgramUniform3iv; 445626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLProgramUniform4ivProc> fProgramUniform4iv; 446626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLProgramUniformMatrix2fvProc> fProgramUniformMatrix2fv; 447626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLProgramUniformMatrix3fvProc> fProgramUniformMatrix3fv; 448626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLProgramUniformMatrix4fvProc> fProgramUniformMatrix4fv; 449626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton // OpenGL 2.1 450626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLProgramUniformMatrix2x3fvProc> fProgramUniformMatrix2x3fv; 451626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLProgramUniformMatrix3x2fvProc> fProgramUniformMatrix3x2fv; 452626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLProgramUniformMatrix2x4fvProc> fProgramUniformMatrix2x4fv; 453626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLProgramUniformMatrix4x2fvProc> fProgramUniformMatrix4x2fv; 454626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLProgramUniformMatrix3x4fvProc> fProgramUniformMatrix3x4fv; 455626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLProgramUniformMatrix4x3fvProc> fProgramUniformMatrix4x3fv; 456626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton // OpenGL 3.0 457626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLNamedRenderbufferStorageProc> fNamedRenderbufferStorage; 458626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLGetNamedRenderbufferParameterivProc> fGetNamedRenderbufferParameteriv; 459626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLNamedRenderbufferStorageMultisampleProc> fNamedRenderbufferStorageMultisample; 460626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLCheckNamedFramebufferStatusProc> fCheckNamedFramebufferStatus; 461626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLNamedFramebufferTexture1DProc> fNamedFramebufferTexture1D; 462626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLNamedFramebufferTexture2DProc> fNamedFramebufferTexture2D; 463626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLNamedFramebufferTexture3DProc> fNamedFramebufferTexture3D; 464626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLNamedFramebufferRenderbufferProc> fNamedFramebufferRenderbuffer; 465626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLGetNamedFramebufferAttachmentParameterivProc> fGetNamedFramebufferAttachmentParameteriv; 466626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLGenerateTextureMipmapProc> fGenerateTextureMipmap; 467626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLFramebufferDrawBufferProc> fFramebufferDrawBuffer; 468626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLFramebufferDrawBuffersProc> fFramebufferDrawBuffers; 469626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLFramebufferReadBufferProc> fFramebufferReadBuffer; 470626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLGetFramebufferParameterivProc> fGetFramebufferParameteriv; 471626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLNamedCopyBufferSubDataProc> fNamedCopyBufferSubData; 472626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLVertexArrayVertexOffsetProc> fVertexArrayVertexOffset; 473626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLVertexArrayColorOffsetProc> fVertexArrayColorOffset; 474626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLVertexArrayEdgeFlagOffsetProc> fVertexArrayEdgeFlagOffset; 475626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLVertexArrayIndexOffsetProc> fVertexArrayIndexOffset; 476626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLVertexArrayNormalOffsetProc> fVertexArrayNormalOffset; 477626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLVertexArrayTexCoordOffsetProc> fVertexArrayTexCoordOffset; 478626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLVertexArrayMultiTexCoordOffsetProc> fVertexArrayMultiTexCoordOffset; 479626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLVertexArrayFogCoordOffsetProc> fVertexArrayFogCoordOffset; 480626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLVertexArraySecondaryColorOffsetProc> fVertexArraySecondaryColorOffset; 481626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLVertexArrayVertexAttribOffsetProc> fVertexArrayVertexAttribOffset; 482626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLVertexArrayVertexAttribIOffsetProc> fVertexArrayVertexAttribIOffset; 483626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLEnableVertexArrayProc> fEnableVertexArray; 484626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLDisableVertexArrayProc> fDisableVertexArray; 485626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLEnableVertexArrayAttribProc> fEnableVertexArrayAttrib; 486626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLDisableVertexArrayAttribProc> fDisableVertexArrayAttrib; 487626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLGetVertexArrayIntegervProc> fGetVertexArrayIntegerv; 488626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLGetVertexArrayPointervProc> fGetVertexArrayPointerv; 489626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLGetVertexArrayIntegeri_vProc> fGetVertexArrayIntegeri_v; 490626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLGetVertexArrayPointeri_vProc> fGetVertexArrayPointeri_v; 491626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLMapNamedBufferRangeProc> fMapNamedBufferRange; 492626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLFlushMappedNamedBufferRangeProc> fFlushMappedNamedBufferRange; 493626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton 494626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton /* KHR_debug */ 495626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLDebugMessageControlProc> fDebugMessageControl; 496626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLDebugMessageInsertProc> fDebugMessageInsert; 497626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLDebugMessageCallbackProc> fDebugMessageCallback; 498626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLGetDebugMessageLogProc> fGetDebugMessageLog; 499626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLPushDebugGroupProc> fPushDebugGroup; 500626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLPopDebugGroupProc> fPopDebugGroup; 501626e1ffe84c24a969dc56ca70ab2e950bf5034c4cdalton GLPtr<GrGLObjectLabelProc> fObjectLabel; 502c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org } fFunctions; 503c72425ae368bfcb47de7d2532eb90d305ec0d1cfcommit-bot@chromium.org 50456bfc5acc210987838744eece7383bc2f6b34915bsalomon@google.com // Per-GL func callback 50556bfc5acc210987838744eece7383bc2f6b34915bsalomon@google.com#if GR_GL_PER_GL_FUNC_CALLBACK 50656bfc5acc210987838744eece7383bc2f6b34915bsalomon@google.com GrGLInterfaceCallbackProc fCallback; 50756bfc5acc210987838744eece7383bc2f6b34915bsalomon@google.com GrGLInterfaceCallbackData fCallbackData; 50856bfc5acc210987838744eece7383bc2f6b34915bsalomon@google.com#endif 509944bcf0acb78f8f9da01e991f1307629959e338absalomon 510944bcf0acb78f8f9da01e991f1307629959e338absalomon // This exists for internal testing. 511944bcf0acb78f8f9da01e991f1307629959e338absalomon virtual void abandon() const {} 512bf2a46941e8fdebfcd24ea8f7184779021898225bsalomon@google.com}; 51359a190bcab5d4b2bf03f8f10cb6a581d19fed403twiz@google.com 51459a190bcab5d4b2bf03f8f10cb6a581d19fed403twiz@google.com#endif 515