mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-11-11 16:49:27 +01:00
Enable GLES3 on desktop where supported now that glew has been upgraded
This commit is contained in:
1 parent
81bbc65216
commit
cf8ee87223
3 files changed
+34
-1
No files matched your search
@@ -5,6 +5,9 @@
|
||||
#if defined(IOS)
|
||||
#include <OpenGLES/ES2/gl.h>
|
||||
#include <OpenGLES/ES2/glext.h>
|
||||
|
||||
// I guess we can soon add ES 3.0 here too
|
||||
|
||||
#else
|
||||
|
||||
// Support OpenGL ES 3.0
|
||||
@@ -21,6 +24,9 @@
|
||||
|
||||
#endif
|
||||
#else // OpenGL
|
||||
// Now that glew is upgraded beyond 4.3, we can define MAY_HAVE_GLES3 on all platforms
|
||||
// that include glew.
|
||||
#define MAY_HAVE_GLES3
|
||||
#include <GL/glew.h>
|
||||
#if defined(__APPLE__)
|
||||
#include <OpenGL/gl.h>
|
||||
|
||||
+27
-1
@@ -99,8 +99,26 @@ void CheckGLExtensions() {
|
||||
memset(&gl_extensions, 0, sizeof(gl_extensions));
|
||||
|
||||
const char *renderer = (const char *)glGetString(GL_RENDERER);
|
||||
const char *versionStr = (const char *)glGetString(GL_VERSION);
|
||||
|
||||
#if defined(USING_GLES2) && defined(MAY_HAVE_GLES3)
|
||||
char buffer[64];
|
||||
strcpy(buffer, versionStr);
|
||||
const char *lastNumStart = buffer;
|
||||
int numVer = 0;
|
||||
int len = (int)strlen(buffer);
|
||||
for (int i = 0; i < len && numVer < 3; i++) {
|
||||
if (buffer[i] == '.') {
|
||||
buffer[i] = 0;
|
||||
gl_extensions.ver[numVer++] = atoi(lastNumStart);
|
||||
i++;
|
||||
lastNumStart = buffer + i;
|
||||
}
|
||||
}
|
||||
if (numVer < 3)
|
||||
gl_extensions.ver[numVer++] = atoi(lastNumStart);
|
||||
|
||||
#if defined(USING_GLES2)
|
||||
#if defined(MAY_HAVE_GLES3)
|
||||
// Try to load GLES 3.0
|
||||
if (GL_TRUE == gl3stubInit()) {
|
||||
gl_extensions.GLES3 = true;
|
||||
@@ -111,6 +129,14 @@ void CheckGLExtensions() {
|
||||
}
|
||||
}
|
||||
#endif
|
||||
#else
|
||||
// If the GL version >= 4.3, we know it's a true superset of OpenGL ES 3.0 and can thus enable
|
||||
// modern paths.
|
||||
// Most of it could be enabled on lower GPUs as well, but let's start this way.
|
||||
if ((gl_extensions.ver[0] == 4 && gl_extensions.ver[1] >= 3) || gl_extensions.ver[0] > 4) {
|
||||
gl_extensions.GLES3 = true;
|
||||
}
|
||||
#endif
|
||||
|
||||
const char *extString = (const char *)glGetString(GL_EXTENSIONS);
|
||||
if (extString) {
|
||||
|
||||
@@ -314,6 +314,7 @@ extern OpenGLState glstate;
|
||||
|
||||
// WARNING: This gets memset-d - so no strings please
|
||||
struct GLExtensions {
|
||||
int ver[3];
|
||||
bool GLES3; // true if the full OpenGL ES 3.0 is supported
|
||||
bool OES_depth24;
|
||||
bool OES_packed_depth_stencil;
|
||||
|
||||
Reference in new issue
Block a user