Browse Source

Support OpenGL 4.3

 - Support Compute Shaders by rlgl API
 - Support SSBO by rlgl API
Ray 3 years ago
parent
commit
99f6707e2c
2 changed files with 12 additions and 0 deletions
  1. 7 0
      src/rcore.c
  2. 5 0
      src/rlgl.h

+ 7 - 0
src/rcore.c

@@ -3758,6 +3758,13 @@ static bool InitGraphicsDevice(int width, int height)
 #endif
         //glfwWindowHint(GLFW_OPENGL_DEBUG_CONTEXT, GLFW_TRUE); // Request OpenGL DEBUG context
     }
+    else if (rlGetVersion() == OPENGL_43)
+    {
+        glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);          // Choose OpenGL major version (just hint)
+        glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);          // Choose OpenGL minor version (just hint)
+        glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
+        glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GLFW_FALSE);
+    }
     else if (rlGetVersion() == OPENGL_ES_20)                    // Request OpenGL ES 2.0 context
     {
         glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 2);

+ 5 - 0
src/rlgl.h

@@ -280,6 +280,7 @@ typedef enum {
     OPENGL_11 = 1,
     OPENGL_21,
     OPENGL_33,
+    OPENGL_43,
     OPENGL_ES_20
 } rlGlVersion;
 
@@ -732,6 +733,7 @@ RLAPI void rlLoadDrawQuad(void);     // Load and draw a quad
         #define GLAD_REALLOC RL_REALLOC
         #define GLAD_FREE RL_FREE
 
+        #define GLAD_IMPLEMENTATION
         #include "external/glad.h"      // GLAD extensions loading library, includes OpenGL headers
     #endif
 #endif
@@ -2125,6 +2127,9 @@ int rlGetVersion(void)
 #elif defined(GRAPHICS_API_OPENGL_33)
     glVersion = OPENGL_33;
 #endif
+#if defined(GRAPHICS_API_OPENGL_43)
+    glVersion = OPENGL_43;
+#endif
 #if defined(GRAPHICS_API_OPENGL_ES2)
     glVersion = OPENGL_ES_20;
 #endif