OpenGL: change option key type to library

To avoid conflict with JSON config `type`
This commit is contained in:
Carter Li
2023-06-17 22:33:41 +08:00
parent a994d398d9
commit 4bde3afe8a
5 changed files with 33 additions and 31 deletions
+17 -14
View File
@@ -47,7 +47,7 @@ void ffInitOpenGLOptions(FFOpenGLOptions* options)
ffOptionInitModuleArg(&options->moduleArgs);
#if defined(__linux__) || defined(__FreeBSD__)
options->type = FF_OPENGL_TYPE_AUTO;
options->library = FF_OPENGL_LIBRARY_AUTO;
#endif
}
@@ -59,13 +59,16 @@ bool ffParseOpenGLCommandOptions(FFOpenGLOptions* options, const char* key, cons
return true;
#if defined(__linux__) || defined(__FreeBSD__)
options->type = (FFOpenGLType) ffOptionParseEnum(key, value, (FFKeyValuePair[]) {
{ "auto", FF_OPENGL_TYPE_AUTO },
{ "egl", FF_OPENGL_TYPE_EGL },
{ "glx", FF_OPENGL_TYPE_GLX },
{ "osmesa", FF_OPENGL_TYPE_OSMESA },
{}
});
if (strcasecmp(key, "library") == 0)
{
options->library = (FFOpenGLLibrary) ffOptionParseEnum(key, value, (FFKeyValuePair[]) {
{ "auto", FF_OPENGL_LIBRARY_AUTO },
{ "egl", FF_OPENGL_LIBRARY_EGL },
{ "glx", FF_OPENGL_LIBRARY_GLX },
{ "osmesa", FF_OPENGL_LIBRARY_OSMESA },
{}
});
}
#endif
return false;
@@ -95,20 +98,20 @@ void ffParseOpenGLJsonObject(FFinstance* instance, yyjson_val* module)
continue;
#if defined(__linux__) || defined(__FreeBSD__)
if (strcasecmp(key, "type") == 0)
if (strcasecmp(key, "library") == 0)
{
int value;
const char* error = ffJsonConfigParseEnum(val, &value, (FFKeyValuePair[]) {
{ "auto", FF_OPENGL_TYPE_AUTO },
{ "egl", FF_OPENGL_TYPE_EGL },
{ "glx", FF_OPENGL_TYPE_GLX },
{ "osmesa", FF_OPENGL_TYPE_OSMESA },
{ "auto", FF_OPENGL_LIBRARY_AUTO },
{ "egl", FF_OPENGL_LIBRARY_EGL },
{ "glx", FF_OPENGL_LIBRARY_GLX },
{ "osmesa", FF_OPENGL_LIBRARY_OSMESA },
{},
});
if (error)
ffPrintError(instance, FF_OPENGL_MODULE_NAME, 0, &options.moduleArgs, "Invalid %s value: %s", key, error);
else
options.type = (FFOpenGLType) value;
options.library = (FFOpenGLLibrary) value;
continue;
}
#endif
+7 -7
View File
@@ -5,13 +5,13 @@
#include "common/option.h"
#if defined(__linux__) || defined(__FreeBSD__)
typedef enum FFOpenGLType
typedef enum FFOpenGLLibrary
{
FF_OPENGL_TYPE_AUTO,
FF_OPENGL_TYPE_EGL,
FF_OPENGL_TYPE_GLX,
FF_OPENGL_TYPE_OSMESA
} FFOpenGLType;
FF_OPENGL_LIBRARY_AUTO,
FF_OPENGL_LIBRARY_EGL,
FF_OPENGL_LIBRARY_GLX,
FF_OPENGL_LIBRARY_OSMESA
} FFOpenGLLibrary;
#endif
typedef struct FFOpenGLOptions
@@ -20,6 +20,6 @@ typedef struct FFOpenGLOptions
FFModuleArgs moduleArgs;
#if defined(__linux__) || defined(__FreeBSD__)
FFOpenGLType type;
FFOpenGLLibrary library;
#endif
} FFOpenGLOptions;