git subrepo clone --branch=sono6good https://github.com/essej/JUCE.git deps/juce
subrepo: subdir: "deps/juce" merged: "b13f9084e" upstream: origin: "https://github.com/essej/JUCE.git" branch: "sono6good" commit: "b13f9084e" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo.git" commit: "2f68596"
This commit is contained in:
140
deps/juce/modules/juce_opengl/native/juce_OpenGLExtensions.h
vendored
Normal file
140
deps/juce/modules/juce_opengl/native/juce_OpenGLExtensions.h
vendored
Normal file
@ -0,0 +1,140 @@
|
||||
/*
|
||||
==============================================================================
|
||||
|
||||
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
|
Reference in New Issue
Block a user