|
|
@ -516,28 +516,28 @@ typedef enum { |
|
|
|
// Framebuffer attachment type |
|
|
|
// NOTE: By default up to 8 color channels defined, but it can be more |
|
|
|
typedef enum { |
|
|
|
RL_ATTACHMENT_COLOR_CHANNEL0 = 0, // Framebuffer attachment type: color 0 |
|
|
|
RL_ATTACHMENT_COLOR_CHANNEL1, // Framebuffer attachment type: color 1 |
|
|
|
RL_ATTACHMENT_COLOR_CHANNEL2, // Framebuffer attachment type: color 2 |
|
|
|
RL_ATTACHMENT_COLOR_CHANNEL3, // Framebuffer attachment type: color 3 |
|
|
|
RL_ATTACHMENT_COLOR_CHANNEL4, // Framebuffer attachment type: color 4 |
|
|
|
RL_ATTACHMENT_COLOR_CHANNEL5, // Framebuffer attachment type: color 5 |
|
|
|
RL_ATTACHMENT_COLOR_CHANNEL6, // Framebuffer attachment type: color 6 |
|
|
|
RL_ATTACHMENT_COLOR_CHANNEL7, // Framebuffer attachment type: color 7 |
|
|
|
RL_ATTACHMENT_DEPTH = 100, // Framebuffer attachment type: depth |
|
|
|
RL_ATTACHMENT_STENCIL = 200, // Framebuffer attachment type: stencil |
|
|
|
RL_ATTACHMENT_COLOR_CHANNEL0 = 0, // Framebuffer attachment type: color 0 |
|
|
|
RL_ATTACHMENT_COLOR_CHANNEL1 = 1, // Framebuffer attachment type: color 1 |
|
|
|
RL_ATTACHMENT_COLOR_CHANNEL2 = 2, // Framebuffer attachment type: color 2 |
|
|
|
RL_ATTACHMENT_COLOR_CHANNEL3 = 3, // Framebuffer attachment type: color 3 |
|
|
|
RL_ATTACHMENT_COLOR_CHANNEL4 = 4, // Framebuffer attachment type: color 4 |
|
|
|
RL_ATTACHMENT_COLOR_CHANNEL5 = 5, // Framebuffer attachment type: color 5 |
|
|
|
RL_ATTACHMENT_COLOR_CHANNEL6 = 6, // Framebuffer attachment type: color 6 |
|
|
|
RL_ATTACHMENT_COLOR_CHANNEL7 = 7, // Framebuffer attachment type: color 7 |
|
|
|
RL_ATTACHMENT_DEPTH = 100, // Framebuffer attachment type: depth |
|
|
|
RL_ATTACHMENT_STENCIL = 200, // Framebuffer attachment type: stencil |
|
|
|
} rlFramebufferAttachType; |
|
|
|
|
|
|
|
// Framebuffer texture attachment type |
|
|
|
typedef enum { |
|
|
|
RL_ATTACHMENT_CUBEMAP_POSITIVE_X = 0, // Framebuffer texture attachment type: cubemap, +X side |
|
|
|
RL_ATTACHMENT_CUBEMAP_NEGATIVE_X, // Framebuffer texture attachment type: cubemap, -X side |
|
|
|
RL_ATTACHMENT_CUBEMAP_POSITIVE_Y, // Framebuffer texture attachment type: cubemap, +Y side |
|
|
|
RL_ATTACHMENT_CUBEMAP_NEGATIVE_Y, // Framebuffer texture attachment type: cubemap, -Y side |
|
|
|
RL_ATTACHMENT_CUBEMAP_POSITIVE_Z, // Framebuffer texture attachment type: cubemap, +Z side |
|
|
|
RL_ATTACHMENT_CUBEMAP_NEGATIVE_Z, // Framebuffer texture attachment type: cubemap, -Z side |
|
|
|
RL_ATTACHMENT_TEXTURE2D = 100, // Framebuffer texture attachment type: texture2d |
|
|
|
RL_ATTACHMENT_RENDERBUFFER = 200, // Framebuffer texture attachment type: renderbuffer |
|
|
|
RL_ATTACHMENT_CUBEMAP_POSITIVE_X = 0, // Framebuffer texture attachment type: cubemap, +X side |
|
|
|
RL_ATTACHMENT_CUBEMAP_NEGATIVE_X = 1, // Framebuffer texture attachment type: cubemap, -X side |
|
|
|
RL_ATTACHMENT_CUBEMAP_POSITIVE_Y = 2, // Framebuffer texture attachment type: cubemap, +Y side |
|
|
|
RL_ATTACHMENT_CUBEMAP_NEGATIVE_Y = 3, // Framebuffer texture attachment type: cubemap, -Y side |
|
|
|
RL_ATTACHMENT_CUBEMAP_POSITIVE_Z = 4, // Framebuffer texture attachment type: cubemap, +Z side |
|
|
|
RL_ATTACHMENT_CUBEMAP_NEGATIVE_Z = 5, // Framebuffer texture attachment type: cubemap, -Z side |
|
|
|
RL_ATTACHMENT_TEXTURE2D = 100, // Framebuffer texture attachment type: texture2d |
|
|
|
RL_ATTACHMENT_RENDERBUFFER = 200, // Framebuffer texture attachment type: renderbuffer |
|
|
|
} rlFramebufferAttachTextureType; |
|
|
|
|
|
|
|
// Face culling mode |
|
|
@ -823,6 +823,9 @@ RLAPI void rlLoadDrawQuad(void); // Load and draw a quad |
|
|
|
typedef void (GL_APIENTRYP PFNGLVERTEXATTRIBDIVISOREXTPROC) (GLuint index, GLuint divisor); |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
#if defined(GRAPHICS_API_OPENGL_ES3) |
|
|
|
#include <GLES3/gl3.h> |
|
|
|
#endif |
|
|
|
|
|
|
|
#include <stdlib.h> // Required for: malloc(), free() |
|
|
|
#include <string.h> // Required for: strcmp(), strlen() [Used in rlglInit(), on extensions loading] |
|
|
@ -2243,7 +2246,7 @@ void rlLoadExtensions(void *loader) |
|
|
|
|
|
|
|
#if defined(GRAPHICS_API_OPENGL_ES3) |
|
|
|
// Register supported extensions flags |
|
|
|
// OpenGL ES 3.0 extensions supported by default |
|
|
|
// OpenGL ES 3.0 extensions supported by default (or it should be) |
|
|
|
RLGL.ExtSupported.vao = true; |
|
|
|
RLGL.ExtSupported.instancing = true; |
|
|
|
RLGL.ExtSupported.texNPOT = true; |
|
|
@ -2254,20 +2257,20 @@ void rlLoadExtensions(void *loader) |
|
|
|
RLGL.ExtSupported.maxDepthBits = 24; |
|
|
|
RLGL.ExtSupported.texAnisoFilter = true; |
|
|
|
RLGL.ExtSupported.texMirrorClamp = true; |
|
|
|
// TODO: Make sure that the ones above are actually present by default |
|
|
|
// TODO: Check for these... |
|
|
|
// RLGL.ExtSupported.texCompDXT |
|
|
|
// RLGL.ExtSupported.texCompETC1 |
|
|
|
// RLGL.ExtSupported.texCompETC2 |
|
|
|
// RLGL.ExtSupported.texCompPVRT |
|
|
|
// RLGL.ExtSupported.texCompASTC |
|
|
|
// RLGL.ExtSupported.computeShader |
|
|
|
// RLGL.ExtSupported.ssbo |
|
|
|
// RLGL.ExtSupported.maxAnisotropyLevel |
|
|
|
// TODO: Check for additional OpenGL ES 3.0 supported extensions: |
|
|
|
//RLGL.ExtSupported.texCompDXT = true; |
|
|
|
//RLGL.ExtSupported.texCompETC1 = true; |
|
|
|
//RLGL.ExtSupported.texCompETC2 = true; |
|
|
|
//RLGL.ExtSupported.texCompPVRT = true; |
|
|
|
//RLGL.ExtSupported.texCompASTC = true; |
|
|
|
//RLGL.ExtSupported.maxAnisotropyLevel = true; |
|
|
|
//RLGL.ExtSupported.computeShader = true; |
|
|
|
//RLGL.ExtSupported.ssbo = true; |
|
|
|
|
|
|
|
#elif defined(GRAPHICS_API_OPENGL_ES2) |
|
|
|
|
|
|
|
#if defined(PLATFORM_DESKTOP) || defined(PLATFORM_DESKTOP_SDL) |
|
|
|
// TODO: Support OpenGL ES 3.0 |
|
|
|
// TODO: Support GLAD loader for OpenGL ES 3.0 |
|
|
|
if (gladLoadGLES2((GLADloadfunc)loader) == 0) TRACELOG(RL_LOG_WARNING, "GLAD: Cannot load OpenGL ES2.0 functions"); |
|
|
|
else TRACELOG(RL_LOG_INFO, "GLAD: OpenGL ES 2.0 loaded successfully"); |
|
|
|
#endif |
|
|
|