mirror of
https://github.com/fastfetch-cli/fastfetch.git
synced 2025-02-20 11:43:27 +08:00
OpenGL (Android): request GLES 2+
This commit is contained in:
parent
90068ab474
commit
934b6291e3
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
#if __has_include(<GL/gl.h>)
|
#if __has_include(<GL/gl.h>)
|
||||||
#include <GL/gl.h>
|
#include <GL/gl.h>
|
||||||
#elif __has_include(<OpenGL/gl.h>)
|
#elif __APPLE__
|
||||||
#define GL_SILENCE_DEPRECATION 1
|
#define GL_SILENCE_DEPRECATION 1
|
||||||
#include <OpenGL/gl.h>
|
#include <OpenGL/gl.h>
|
||||||
#else
|
#else
|
||||||
@ -64,9 +64,12 @@ static const char* eglHandleContext(FFOpenGLResult* result, EGLData* data)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const char* eglHandleSurface(FFOpenGLResult* result, EGLData* data)
|
static const char* eglHandleSurface(FFOpenGLResult* result, EGLData* data, bool gles)
|
||||||
{
|
{
|
||||||
data->context = data->ffeglCreateContext(data->display, data->config, EGL_NO_CONTEXT, (EGLint[]){EGL_NONE});
|
data->context = data->ffeglCreateContext(data->display, data->config, EGL_NO_CONTEXT, (EGLint[]){
|
||||||
|
EGL_CONTEXT_CLIENT_VERSION, gles ? 2 : 1,
|
||||||
|
EGL_NONE
|
||||||
|
});
|
||||||
if(data->context == EGL_NO_CONTEXT)
|
if(data->context == EGL_NO_CONTEXT)
|
||||||
return "eglCreateContext returned EGL_NO_CONTEXT";
|
return "eglCreateContext returned EGL_NO_CONTEXT";
|
||||||
|
|
||||||
@ -78,10 +81,11 @@ static const char* eglHandleSurface(FFOpenGLResult* result, EGLData* data)
|
|||||||
static const char* eglHandleDisplay(FFOpenGLResult* result, EGLData* data)
|
static const char* eglHandleDisplay(FFOpenGLResult* result, EGLData* data)
|
||||||
{
|
{
|
||||||
// try use OpenGL API. If failed, use the default API (usually OpenGL ES)
|
// try use OpenGL API. If failed, use the default API (usually OpenGL ES)
|
||||||
data->ffeglBindAPI(EGL_OPENGL_API);
|
bool gles = !data->ffeglBindAPI(EGL_OPENGL_API);
|
||||||
|
|
||||||
EGLint eglConfigCount;
|
EGLint eglConfigCount;
|
||||||
data->ffeglGetConfigs(data->display, &data->config, 1, &eglConfigCount);
|
data->ffeglGetConfigs(data->display, &data->config, 1, &eglConfigCount);
|
||||||
|
|
||||||
if(eglConfigCount == 0)
|
if(eglConfigCount == 0)
|
||||||
return "eglGetConfigs returned 0 configs";
|
return "eglGetConfigs returned 0 configs";
|
||||||
|
|
||||||
@ -94,7 +98,7 @@ static const char* eglHandleDisplay(FFOpenGLResult* result, EGLData* data)
|
|||||||
if(data->surface == EGL_NO_SURFACE)
|
if(data->surface == EGL_NO_SURFACE)
|
||||||
return "eglCreatePbufferSurface returned EGL_NO_SURFACE";
|
return "eglCreatePbufferSurface returned EGL_NO_SURFACE";
|
||||||
|
|
||||||
const char* error = eglHandleSurface(result, data);
|
const char* error = eglHandleSurface(result, data, gles);
|
||||||
data->ffeglDestroySurface(data->display, data->surface);
|
data->ffeglDestroySurface(data->display, data->surface);
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
@ -148,7 +152,7 @@ const char* ffOpenGLDetectByEGL(FFOpenGLResult* result)
|
|||||||
FF_LIBRARY_LOAD_SYMBOL_VAR_MESSAGE(egl, eglData, eglDestroySurface);
|
FF_LIBRARY_LOAD_SYMBOL_VAR_MESSAGE(egl, eglData, eglDestroySurface);
|
||||||
FF_LIBRARY_LOAD_SYMBOL_VAR_MESSAGE(egl, eglData, eglTerminate);
|
FF_LIBRARY_LOAD_SYMBOL_VAR_MESSAGE(egl, eglData, eglTerminate);
|
||||||
|
|
||||||
FF_SUPPRESS_IO();
|
// FF_SUPPRESS_IO();
|
||||||
return eglHandleData(result, &eglData);
|
return eglHandleData(result, &eglData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user