| 
							- /*
 -   ==============================================================================
 - 
 -    This file is part of the JUCE library.
 -    Copyright (c) 2020 - Raw Material Software Limited
 - 
 -    JUCE is an open source library subject to commercial or open-source
 -    licensing.
 - 
 -    By using JUCE, you agree to the terms of both the JUCE 6 End-User License
 -    Agreement and JUCE Privacy Policy (both effective as of the 16th June 2020).
 - 
 -    End User License Agreement: www.juce.com/juce-6-licence
 -    Privacy Policy: www.juce.com/juce-privacy-policy
 - 
 -    Or: You may also use this code under the terms of the GPL v3 (see
 -    www.gnu.org/licenses).
 - 
 -    JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
 -    EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
 -    DISCLAIMED.
 - 
 -   ==============================================================================
 - */
 - 
 - namespace juce
 - {
 - 
 - /** @internal This macro contains a list of GL extension functions that need to be dynamically loaded on Windows/Linux.
 -     @see OpenGLExtensionFunctions
 - */
 - #define JUCE_GL_BASE_FUNCTIONS \
 -     X (glActiveTexture) \
 -     X (glBindBuffer) \
 -     X (glDeleteBuffers) \
 -     X (glGenBuffers) \
 -     X (glBufferData) \
 -     X (glBufferSubData) \
 -     X (glCreateProgram) \
 -     X (glDeleteProgram) \
 -     X (glCreateShader) \
 -     X (glDeleteShader) \
 -     X (glShaderSource) \
 -     X (glCompileShader) \
 -     X (glAttachShader) \
 -     X (glLinkProgram) \
 -     X (glUseProgram) \
 -     X (glGetShaderiv) \
 -     X (glGetShaderInfoLog) \
 -     X (glGetProgramInfoLog) \
 -     X (glGetProgramiv) \
 -     X (glGetUniformLocation) \
 -     X (glGetAttribLocation) \
 -     X (glVertexAttribPointer) \
 -     X (glEnableVertexAttribArray) \
 -     X (glDisableVertexAttribArray) \
 -     X (glUniform1f) \
 -     X (glUniform1i) \
 -     X (glUniform2f) \
 -     X (glUniform3f) \
 -     X (glUniform4f) \
 -     X (glUniform4i) \
 -     X (glUniform1fv) \
 -     X (glUniformMatrix2fv) \
 -     X (glUniformMatrix3fv) \
 -     X (glUniformMatrix4fv) \
 -     X (glBindAttribLocation)
 - 
 - /** @internal This macro contains a list of GL extension functions that need to be dynamically loaded on Windows/Linux.
 -     @see OpenGLExtensionFunctions
 - */
 - #define JUCE_GL_EXTENSION_FUNCTIONS \
 -     X (glIsRenderbuffer) \
 -     X (glBindRenderbuffer) \
 -     X (glDeleteRenderbuffers) \
 -     X (glGenRenderbuffers) \
 -     X (glRenderbufferStorage) \
 -     X (glGetRenderbufferParameteriv) \
 -     X (glIsFramebuffer) \
 -     X (glBindFramebuffer) \
 -     X (glDeleteFramebuffers) \
 -     X (glGenFramebuffers) \
 -     X (glCheckFramebufferStatus) \
 -     X (glFramebufferTexture2D) \
 -     X (glFramebufferRenderbuffer) \
 -     X (glGetFramebufferAttachmentParameteriv)
 - 
 - /** @internal This macro contains a list of GL extension functions that need to be dynamically loaded on Windows/Linux.
 -     @see OpenGLExtensionFunctions
 - */
 - #define JUCE_GL_VERTEXBUFFER_FUNCTIONS \
 -     X (glGenVertexArrays) \
 -     X (glDeleteVertexArrays) \
 -     X (glBindVertexArray)
 - 
 - /** This class contains a generated list of OpenGL extension functions, which are either dynamically loaded
 -     for a specific GL context, or simply call-through to the appropriate OS function where available.
 - 
 -     This class is provided for backwards compatibility. In new code, you should prefer to use
 -     functions from the juce::gl namespace. By importing all these symbols with
 -     `using namespace ::juce::gl;`, all GL enumerations and functions will be made available at
 -     global scope. This may be helpful if you need to write code with C source compatibility, or
 -     which is compatible with a different extension-loading library.
 -     All the normal guidance about `using namespace` should still apply - don't do this in a header,
 -     or at all if you can possibly avoid it!
 - 
 -     @tags{OpenGL}
 - */
 - struct OpenGLExtensionFunctions
 - {
 -     //==============================================================================
 -    #ifndef DOXYGEN
 -     [[deprecated ("A more complete set of GL commands can be found in the juce::gl namespace. "
 -                   "You should use juce::gl::loadFunctions() to load GL functions.")]]
 -     static void initialise();
 -    #endif
 - 
 -    #if JUCE_WINDOWS && ! defined (DOXYGEN)
 -     typedef char GLchar;
 -     typedef pointer_sized_int GLsizeiptr;
 -     typedef pointer_sized_int GLintptr;
 -    #endif
 - 
 -    #define X(name) static decltype (::juce::gl::name)& name;
 -     JUCE_GL_BASE_FUNCTIONS
 -     JUCE_GL_EXTENSION_FUNCTIONS
 -     JUCE_GL_VERTEXBUFFER_FUNCTIONS
 -    #undef X
 - };
 - 
 - enum MissingOpenGLDefinitions
 - {
 -    #if JUCE_ANDROID
 -     JUCE_RGBA_FORMAT                = ::juce::gl::GL_RGBA,
 -    #else
 -     JUCE_RGBA_FORMAT                = ::juce::gl::GL_BGRA_EXT,
 -    #endif
 - };
 - 
 - } // namespace juce
 
 
  |