allow RLGL to be used for the example that use GLAD
This commit is contained in:
parent
63034f8dae
commit
a49fb3b110
|
|
@ -38,8 +38,6 @@
|
||||||
#define GL_SILENCE_DEPRECATION // Silence Opengl API deprecation warnings
|
#define GL_SILENCE_DEPRECATION // Silence Opengl API deprecation warnings
|
||||||
#include <OpenGL/gl3.h> // OpenGL 3 library for OSX
|
#include <OpenGL/gl3.h> // OpenGL 3 library for OSX
|
||||||
#include <OpenGL/gl3ext.h> // OpenGL 3 extensions library for OSX
|
#include <OpenGL/gl3ext.h> // OpenGL 3 extensions library for OSX
|
||||||
#else
|
|
||||||
#include "glad.h" // Required for: OpenGL functionality
|
|
||||||
#endif
|
#endif
|
||||||
#define GLSL_VERSION 330
|
#define GLSL_VERSION 330
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
211
src/rlgl.h
211
src/rlgl.h
|
|
@ -789,19 +789,6 @@ RLAPI void rlSetMatrixViewOffsetStereo(Matrix right, Matrix left); // Set
|
||||||
RLAPI void rlLoadDrawCube(void); // Load and draw a cube
|
RLAPI void rlLoadDrawCube(void); // Load and draw a cube
|
||||||
RLAPI void rlLoadDrawQuad(void); // Load and draw a quad
|
RLAPI void rlLoadDrawQuad(void); // Load and draw a quad
|
||||||
|
|
||||||
#if defined(__cplusplus)
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // RLGL_H
|
|
||||||
|
|
||||||
/***********************************************************************************
|
|
||||||
*
|
|
||||||
* RLGL IMPLEMENTATION
|
|
||||||
*
|
|
||||||
************************************************************************************/
|
|
||||||
|
|
||||||
#if defined(RLGL_IMPLEMENTATION)
|
|
||||||
|
|
||||||
// Expose OpenGL functions from glad in raylib
|
// Expose OpenGL functions from glad in raylib
|
||||||
#if defined(BUILD_LIBTYPE_SHARED)
|
#if defined(BUILD_LIBTYPE_SHARED)
|
||||||
|
|
@ -928,6 +915,7 @@ RLAPI void rlLoadDrawQuad(void); // Load and draw a quad
|
||||||
typedef void (*glCompressedTexImage2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
|
typedef void (*glCompressedTexImage2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data);
|
||||||
typedef void (*glFramebufferTexture2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
|
typedef void (*glFramebufferTexture2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
|
||||||
typedef void (*glUniform1fvPROC) (GLint location, GLsizei count, const GLfloat *value);
|
typedef void (*glUniform1fvPROC) (GLint location, GLsizei count, const GLfloat *value);
|
||||||
|
typedef void (*glUniform1fPROC) (GLint location, const GLfloat value);
|
||||||
typedef void (*glUniform2fvPROC) (GLint location, GLsizei count, const GLfloat *value);
|
typedef void (*glUniform2fvPROC) (GLint location, GLsizei count, const GLfloat *value);
|
||||||
typedef void (*glUniform1ivPROC) (GLint location, GLsizei count, const GLint *value);
|
typedef void (*glUniform1ivPROC) (GLint location, GLsizei count, const GLint *value);
|
||||||
typedef void (*glUniform2ivPROC) (GLint location, GLsizei count, const GLint *value);
|
typedef void (*glUniform2ivPROC) (GLint location, GLsizei count, const GLint *value);
|
||||||
|
|
@ -935,79 +923,86 @@ RLAPI void rlLoadDrawQuad(void); // Load and draw a quad
|
||||||
typedef void (*glVertexAttrib2fvPROC) (GLuint index, const GLfloat *v);
|
typedef void (*glVertexAttrib2fvPROC) (GLuint index, const GLfloat *v);
|
||||||
typedef const GLubyte* (*glGetStringiPROC) (GLenum name, GLuint index);
|
typedef const GLubyte* (*glGetStringiPROC) (GLenum name, GLuint index);
|
||||||
|
|
||||||
glShaderSourcePROC glShaderSourceSRC = NULL;
|
#ifndef RLGL_IMPLEMENTATION
|
||||||
glCreateShaderPROC glCreateShaderSRC = NULL;
|
#define RLGL_GL extern
|
||||||
glCompileShaderPROC glCompileShaderSRC = NULL;
|
#else
|
||||||
glCreateProgramPROC glCreateProgramSRC = NULL;
|
#define RLGL_GL
|
||||||
glAttachShaderPROC glAttachShaderSRC = NULL;
|
#endif
|
||||||
glBindAttribLocationPROC glBindAttribLocationSRC = NULL;
|
|
||||||
glLinkProgramPROC glLinkProgramSRC = NULL;
|
RLGL_GL glShaderSourcePROC glShaderSourceSRC;
|
||||||
glBindBufferPROC glBindBufferSRC = NULL;
|
RLGL_GL glCreateShaderPROC glCreateShaderSRC;
|
||||||
glBufferDataPROC glBufferDataSRC = NULL;
|
RLGL_GL glCompileShaderPROC glCompileShaderSRC;
|
||||||
glEnableVertexAttribArrayPROC glEnableVertexAttribArraySRC = NULL;
|
RLGL_GL glCreateProgramPROC glCreateProgramSRC;
|
||||||
glVertexAttribPointerPROC glVertexAttribPointerSRC = NULL;
|
RLGL_GL glAttachShaderPROC glAttachShaderSRC;
|
||||||
glDisableVertexAttribArrayPROC glDisableVertexAttribArraySRC = NULL;
|
RLGL_GL glBindAttribLocationPROC glBindAttribLocationSRC;
|
||||||
glDeleteBuffersPROC glDeleteBuffersSRC = NULL;
|
RLGL_GL glLinkProgramPROC glLinkProgramSRC;
|
||||||
glUseProgramPROC glUseProgramSRC = NULL;
|
RLGL_GL glBindBufferPROC glBindBufferSRC;
|
||||||
glDetachShaderPROC glDetachShaderSRC = NULL;
|
RLGL_GL glBufferDataPROC glBufferDataSRC;
|
||||||
glDeleteShaderPROC glDeleteShaderSRC = NULL;
|
RLGL_GL glEnableVertexAttribArrayPROC glEnableVertexAttribArraySRC;
|
||||||
glDeleteProgramPROC glDeleteProgramSRC = NULL;
|
RLGL_GL glVertexAttribPointerPROC glVertexAttribPointerSRC;
|
||||||
glBufferSubDataPROC glBufferSubDataSRC = NULL;
|
RLGL_GL glDisableVertexAttribArrayPROC glDisableVertexAttribArraySRC;
|
||||||
glGetShaderivPROC glGetShaderivSRC = NULL;
|
RLGL_GL glDeleteBuffersPROC glDeleteBuffersSRC;
|
||||||
glGetShaderInfoLogPROC glGetShaderInfoLogSRC = NULL;
|
RLGL_GL glUseProgramPROC glUseProgramSRC;
|
||||||
glGetProgramivPROC glGetProgramivSRC = NULL;
|
RLGL_GL glDetachShaderPROC glDetachShaderSRC;
|
||||||
glGetProgramInfoLogPROC glGetProgramInfoLogSRC = NULL;
|
RLGL_GL glDeleteShaderPROC glDeleteShaderSRC;
|
||||||
glGenBuffersPROC glGenBuffersSRC = NULL;
|
RLGL_GL glDeleteProgramPROC glDeleteProgramSRC;
|
||||||
glGetUniformLocationPROC glGetUniformLocationSRC = NULL;
|
RLGL_GL glBufferSubDataPROC glBufferSubDataSRC;
|
||||||
glUniformMatrix4fvPROC glUniformMatrix4fvSRC = NULL;
|
RLGL_GL glGetShaderivPROC glGetShaderivSRC;
|
||||||
glActiveTexturePROC glActiveTextureSRC = NULL;
|
RLGL_GL glGetShaderInfoLogPROC glGetShaderInfoLogSRC;
|
||||||
glGenVertexArraysPROC glGenVertexArraysSRC = NULL;
|
RLGL_GL glGetProgramivPROC glGetProgramivSRC;
|
||||||
glBindVertexArrayPROC glBindVertexArraySRC = NULL;
|
RLGL_GL glGetProgramInfoLogPROC glGetProgramInfoLogSRC;
|
||||||
glDeleteVertexArraysPROC glDeleteVertexArraysSRC = NULL;
|
RLGL_GL glGenBuffersPROC glGenBuffersSRC;
|
||||||
glBindFramebufferPROC glBindFramebufferSRC = NULL;
|
RLGL_GL glGetUniformLocationPROC glGetUniformLocationSRC;
|
||||||
glBlitFramebufferPROC glBlitFramebufferSRC = NULL;
|
RLGL_GL glUniformMatrix4fvPROC glUniformMatrix4fvSRC;
|
||||||
glDrawBuffersPROC glDrawBuffersSRC = NULL;
|
RLGL_GL glActiveTexturePROC glActiveTextureSRC;
|
||||||
glBlendEquationPROC glBlendEquationSRC = NULL;
|
RLGL_GL glGenVertexArraysPROC glGenVertexArraysSRC;
|
||||||
glBlendFuncSeparatePROC glBlendFuncSeparateSRC = NULL;
|
RLGL_GL glBindVertexArrayPROC glBindVertexArraySRC;
|
||||||
glBlendEquationSeparatePROC glBlendEquationSeparateSRC = NULL;
|
RLGL_GL glDeleteVertexArraysPROC glDeleteVertexArraysSRC;
|
||||||
glUniform4fPROC glUniform4fSRC = NULL;
|
RLGL_GL glBindFramebufferPROC glBindFramebufferSRC;
|
||||||
glUniformiPROC glUniformiSRC = NULL;
|
RLGL_GL glBlitFramebufferPROC glBlitFramebufferSRC;
|
||||||
glCompressedTexImageDPROC glCompressedTexImageDSRC = NULL;
|
RLGL_GL glDrawBuffersPROC glDrawBuffersSRC;
|
||||||
glLoadTextureDepthPROC glLoadTextureDepthSRC = NULL;
|
RLGL_GL glBlendEquationPROC glBlendEquationSRC;
|
||||||
glGenRenderbuffersPROC glGenRenderbuffersSRC = NULL;
|
RLGL_GL glBlendFuncSeparatePROC glBlendFuncSeparateSRC;
|
||||||
glBindRenderbufferPROC glBindRenderbufferSRC = NULL;
|
RLGL_GL glBlendEquationSeparatePROC glBlendEquationSeparateSRC;
|
||||||
glRenderbufferStoragePROC glRenderbufferStorageSRC = NULL;
|
RLGL_GL glUniform4fPROC glUniform4fSRC;
|
||||||
glGenerateMipmapPROC glGenerateMipmapSRC = NULL;
|
RLGL_GL glUniformiPROC glUniformiSRC;
|
||||||
glGenFramebuffersPROC glGenFramebuffersSRC = NULL;
|
RLGL_GL glCompressedTexImageDPROC glCompressedTexImageDSRC;
|
||||||
glFramebufferTextureDPROC glFramebufferTextureDSRC = NULL;
|
RLGL_GL glLoadTextureDepthPROC glLoadTextureDepthSRC;
|
||||||
glFramebufferRenderbufferPROC glFramebufferRenderbufferSRC = NULL;
|
RLGL_GL glGenRenderbuffersPROC glGenRenderbuffersSRC;
|
||||||
glCheckFramebufferStatusPROC glCheckFramebufferStatusSRC = NULL;
|
RLGL_GL glBindRenderbufferPROC glBindRenderbufferSRC;
|
||||||
glGetFramebufferAttachmentParameterivPROC glGetFramebufferAttachmentParameterivSRC = NULL;
|
RLGL_GL glRenderbufferStoragePROC glRenderbufferStorageSRC;
|
||||||
glDeleteRenderbuffersPROC glDeleteRenderbuffersSRC = NULL;
|
RLGL_GL glGenerateMipmapPROC glGenerateMipmapSRC;
|
||||||
glDeleteFramebuffersPROC glDeleteFramebuffersSRC = NULL;
|
RLGL_GL glGenFramebuffersPROC glGenFramebuffersSRC;
|
||||||
glDrawArraysInstancedPROC glDrawArraysInstancedSRC = NULL;
|
RLGL_GL glFramebufferTextureDPROC glFramebufferTextureDSRC;
|
||||||
glDrawElementsInstancedPROC glDrawElementsInstancedSRC = NULL;
|
RLGL_GL glFramebufferRenderbufferPROC glFramebufferRenderbufferSRC;
|
||||||
glVertexAttribDivisorPROC glVertexAttribDivisorSRC = NULL;
|
RLGL_GL glCheckFramebufferStatusPROC glCheckFramebufferStatusSRC;
|
||||||
glGetAttribLocationPROC glGetAttribLocationSRC = NULL;
|
RLGL_GL glGetFramebufferAttachmentParameterivPROC glGetFramebufferAttachmentParameterivSRC;
|
||||||
glUniformfvPROC glUniformfvSRC = NULL;
|
RLGL_GL glDeleteRenderbuffersPROC glDeleteRenderbuffersSRC;
|
||||||
glUniform3fvPROC glUniform3fvSRC = NULL;
|
RLGL_GL glDeleteFramebuffersPROC glDeleteFramebuffersSRC;
|
||||||
glUniform4fvPROC glUniform4fvSRC = NULL;
|
RLGL_GL glDrawArraysInstancedPROC glDrawArraysInstancedSRC;
|
||||||
glUniformivPROC glUniformivSRC = NULL;
|
RLGL_GL glDrawElementsInstancedPROC glDrawElementsInstancedSRC;
|
||||||
glUniform3ivPROC glUniform3ivSRC = NULL;
|
RLGL_GL glVertexAttribDivisorPROC glVertexAttribDivisorSRC;
|
||||||
glUniform4ivPROC glUniform4ivSRC = NULL;
|
RLGL_GL glGetAttribLocationPROC glGetAttribLocationSRC;
|
||||||
glVertexAttribfvPROC glVertexAttribfvSRC = NULL;
|
RLGL_GL glUniformfvPROC glUniformfvSRC;
|
||||||
glVertexAttrib3fvPROC glVertexAttrib3fvSRC = NULL;
|
RLGL_GL glUniform3fvPROC glUniform3fvSRC;
|
||||||
glVertexAttrib4fvPROC glVertexAttrib4fvSRC = NULL;
|
RLGL_GL glUniform4fvPROC glUniform4fvSRC;
|
||||||
glUniform1iPROC glUniform1iSRC = NULL;
|
RLGL_GL glUniformivPROC glUniformivSRC;
|
||||||
glCompressedTexImage2DPROC glCompressedTexImage2DSRC = NULL;
|
RLGL_GL glUniform3ivPROC glUniform3ivSRC;
|
||||||
glFramebufferTexture2DPROC glFramebufferTexture2DSRC = NULL;
|
RLGL_GL glUniform4ivPROC glUniform4ivSRC;
|
||||||
glUniform1fvPROC glUniform1fvSRC = NULL;
|
RLGL_GL glVertexAttribfvPROC glVertexAttribfvSRC;
|
||||||
glUniform2fvPROC glUniform2fvSRC = NULL;
|
RLGL_GL glVertexAttrib3fvPROC glVertexAttrib3fvSRC;
|
||||||
glUniform1ivPROC glUniform1ivSRC = NULL;
|
RLGL_GL glVertexAttrib4fvPROC glVertexAttrib4fvSRC;
|
||||||
glUniform2ivPROC glUniform2ivSRC = NULL;
|
RLGL_GL glUniform1iPROC glUniform1iSRC;
|
||||||
glVertexAttrib1fvPROC glVertexAttrib1fvSRC = NULL;
|
RLGL_GL glCompressedTexImage2DPROC glCompressedTexImage2DSRC;
|
||||||
glVertexAttrib2fvPROC glVertexAttrib2fvSRC = NULL;
|
RLGL_GL glFramebufferTexture2DPROC glFramebufferTexture2DSRC;
|
||||||
glGetStringiPROC glGetStringiSRC = NULL;
|
RLGL_GL glUniform1fvPROC glUniform1fvSRC;
|
||||||
|
RLGL_GL glUniform1fPROC glUniform1fSRC;
|
||||||
|
RLGL_GL glUniform2fvPROC glUniform2fvSRC;
|
||||||
|
RLGL_GL glUniform1ivPROC glUniform1ivSRC;
|
||||||
|
RLGL_GL glUniform2ivPROC glUniform2ivSRC;
|
||||||
|
RLGL_GL glVertexAttrib1fvPROC glVertexAttrib1fvSRC;
|
||||||
|
RLGL_GL glVertexAttrib2fvPROC glVertexAttrib2fvSRC;
|
||||||
|
RLGL_GL glGetStringiPROC glGetStringiSRC;
|
||||||
|
|
||||||
#define glActiveTexture glActiveTextureSRC
|
#define glActiveTexture glActiveTextureSRC
|
||||||
#define glShaderSource glShaderSourceSRC
|
#define glShaderSource glShaderSourceSRC
|
||||||
|
|
@ -1076,6 +1071,7 @@ RLAPI void rlLoadDrawQuad(void); // Load and draw a quad
|
||||||
#define glCompressedTexImage2D glCompressedTexImage2DSRC
|
#define glCompressedTexImage2D glCompressedTexImage2DSRC
|
||||||
#define glFramebufferTexture2D glFramebufferTexture2DSRC
|
#define glFramebufferTexture2D glFramebufferTexture2DSRC
|
||||||
#define glUniform1fv glUniform1fvSRC
|
#define glUniform1fv glUniform1fvSRC
|
||||||
|
#define glUniform1f glUniform1fSRC
|
||||||
#define glUniform2fv glUniform2fvSRC
|
#define glUniform2fv glUniform2fvSRC
|
||||||
#define glUniform1iv glUniform1ivSRC
|
#define glUniform1iv glUniform1ivSRC
|
||||||
#define glUniform2iv glUniform2ivSRC
|
#define glUniform2iv glUniform2ivSRC
|
||||||
|
|
@ -1083,30 +1079,44 @@ RLAPI void rlLoadDrawQuad(void); // Load and draw a quad
|
||||||
#define glVertexAttrib2fv glVertexAttrib2fvSRC
|
#define glVertexAttrib2fv glVertexAttrib2fvSRC
|
||||||
#define glGetStringi glGetStringiSRC
|
#define glGetStringi glGetStringiSRC
|
||||||
|
|
||||||
int RLGL_GL_ARB_vertex_array_object = 0;
|
RLGL_GL int RLGL_GL_ARB_vertex_array_object;
|
||||||
int RLGL_GL_EXT_draw_instanced = 0;
|
RLGL_GL int RLGL_GL_EXT_draw_instanced;
|
||||||
int RLGL_GL_ARB_instanced_arrays = 0;
|
RLGL_GL int RLGL_GL_ARB_instanced_arrays;
|
||||||
int RLGL_GL_ARB_texture_non_power_of_two = 0;
|
RLGL_GL int RLGL_GL_ARB_texture_non_power_of_two;
|
||||||
|
|
||||||
int RLGL_GL_ARB_texture_float = 0;
|
RLGL_GL int RLGL_GL_ARB_texture_float;
|
||||||
int RLGL_GL_ARB_depth_texture = 0;
|
RLGL_GL int RLGL_GL_ARB_depth_texture;
|
||||||
|
|
||||||
int RLGL_GL_EXT_texture_filter_anisotropic = 0;
|
RLGL_GL int RLGL_GL_EXT_texture_filter_anisotropic;
|
||||||
int RLGL_GL_EXT_texture_mirror_clamp = 0;
|
RLGL_GL int RLGL_GL_EXT_texture_mirror_clamp;
|
||||||
|
|
||||||
int RLGL_GL_KHR_texture_compression_astc_hdr = 0;
|
RLGL_GL int RLGL_GL_KHR_texture_compression_astc_hdr;
|
||||||
int RLGL_GL_KHR_texture_compression_astc_ldr = 0;
|
RLGL_GL int RLGL_GL_KHR_texture_compression_astc_ldr;
|
||||||
int RLGL_GL_EXT_texture_compression_s3tc = 0; // Texture compression: DXT
|
RLGL_GL int RLGL_GL_EXT_texture_compression_s3tc; // Texture compression: DXT
|
||||||
int RLGL_GL_ARB_ES3_compatibility = 0; // Texture compression: ETC2/EAC
|
RLGL_GL int RLGL_GL_ARB_ES3_compatibility; // Texture compression: ETC2/EAC
|
||||||
|
|
||||||
#if defined(GRAPHICS_API_OPENGL_43)
|
#if defined(GRAPHICS_API_OPENGL_43)
|
||||||
int RLGL_GL_ARB_compute_shader = 0;
|
RLGL_GL int RLGL_GL_ARB_compute_shader;
|
||||||
int RLGL_GL_ARB_shader_storage_buffer_object = 0;
|
RLGL_GL int RLGL_GL_ARB_shader_storage_buffer_object;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int rlLoadGL(RLGLloadfunc proc);
|
int rlLoadGL(RLGLloadfunc proc);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(__cplusplus)
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // RLGL_H
|
||||||
|
|
||||||
|
/***********************************************************************************
|
||||||
|
*
|
||||||
|
* RLGL IMPLEMENTATION
|
||||||
|
*
|
||||||
|
************************************************************************************/
|
||||||
|
|
||||||
|
#if defined(RLGL_IMPLEMENTATION)
|
||||||
|
|
||||||
#if defined(GRAPHICS_API_OPENGL_ES3)
|
#if defined(GRAPHICS_API_OPENGL_ES3)
|
||||||
#include <GLES3/gl3.h> // OpenGL ES 3.0 library
|
#include <GLES3/gl3.h> // OpenGL ES 3.0 library
|
||||||
#define GL_GLEXT_PROTOTYPES
|
#define GL_GLEXT_PROTOTYPES
|
||||||
|
|
@ -5586,6 +5596,7 @@ int rlLoadGL(RLGLloadfunc proc) {
|
||||||
RLGL_PROC_DEF(proc, glCompressedTexImage2D);
|
RLGL_PROC_DEF(proc, glCompressedTexImage2D);
|
||||||
RLGL_PROC_DEF(proc, glFramebufferTexture2D);
|
RLGL_PROC_DEF(proc, glFramebufferTexture2D);
|
||||||
RLGL_PROC_DEF(proc, glUniform1fv);
|
RLGL_PROC_DEF(proc, glUniform1fv);
|
||||||
|
RLGL_PROC_DEF(proc, glUniform1f);
|
||||||
RLGL_PROC_DEF(proc, glUniform2fv);
|
RLGL_PROC_DEF(proc, glUniform2fv);
|
||||||
RLGL_PROC_DEF(proc, glUniform1iv);
|
RLGL_PROC_DEF(proc, glUniform1iv);
|
||||||
RLGL_PROC_DEF(proc, glUniform2iv);
|
RLGL_PROC_DEF(proc, glUniform2iv);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user