mirror of
https://github.com/AngelAuraMC/Amethyst-Android.git
synced 2025-09-17 00:29:50 -04:00
Fix for multiple renderers
This commit is contained in:
parent
749573dcac
commit
4977c4f483
@ -41,22 +41,41 @@ render_window_t* gl_init_context(render_window_t *share) {
|
|||||||
render_window_t* bundle = malloc(sizeof(render_window_t));
|
render_window_t* bundle = malloc(sizeof(render_window_t));
|
||||||
memset(bundle, 0, sizeof(render_window_t));
|
memset(bundle, 0, sizeof(render_window_t));
|
||||||
const EGLint egl_attributes[] = { EGL_BLUE_SIZE, 8, EGL_GREEN_SIZE, 8, EGL_RED_SIZE, 8, EGL_ALPHA_SIZE, 8, EGL_DEPTH_SIZE, 24, EGL_SURFACE_TYPE, EGL_WINDOW_BIT|EGL_PBUFFER_BIT, EGL_RENDERABLE_TYPE, EGL_OPENGL_BIT, EGL_NONE };
|
const EGLint egl_attributes[] = { EGL_BLUE_SIZE, 8, EGL_GREEN_SIZE, 8, EGL_RED_SIZE, 8, EGL_ALPHA_SIZE, 8, EGL_DEPTH_SIZE, 24, EGL_SURFACE_TYPE, EGL_WINDOW_BIT|EGL_PBUFFER_BIT, EGL_RENDERABLE_TYPE, EGL_OPENGL_BIT, EGL_NONE };
|
||||||
|
const EGLint egl_attributes2[] = { EGL_BLUE_SIZE, 8, EGL_GREEN_SIZE, 8, EGL_RED_SIZE, 8, EGL_ALPHA_SIZE, 8, EGL_DEPTH_SIZE, 24, EGL_SURFACE_TYPE, EGL_WINDOW_BIT|EGL_PBUFFER_BIT, EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, EGL_NONE };
|
||||||
EGLint num_configs = 0;
|
EGLint num_configs = 0;
|
||||||
if (eglChooseConfig_p(g_EglDisplay, egl_attributes, NULL, 0, &num_configs) != EGL_TRUE) {
|
if(strncmp(getenv("POJAV_RENDERER"), "opengles3_desktopgl", 19) == 0) {
|
||||||
__android_log_print(ANDROID_LOG_ERROR, g_LogTag, "eglChooseConfig_p() failed: %04x",
|
if (eglChooseConfig_p(g_EglDisplay, egl_attributes2, NULL, 0, &num_configs) != EGL_TRUE) {
|
||||||
eglGetError_p());
|
__android_log_print(ANDROID_LOG_ERROR, g_LogTag, "eglChooseConfig_p() failed: %04x",
|
||||||
free(bundle);
|
eglGetError_p());
|
||||||
return NULL;
|
free(bundle);
|
||||||
}
|
return NULL;
|
||||||
if (num_configs == 0) {
|
}
|
||||||
__android_log_print(ANDROID_LOG_ERROR, g_LogTag, "%s",
|
if (num_configs == 0) {
|
||||||
"eglChooseConfig_p() found no matching config");
|
__android_log_print(ANDROID_LOG_ERROR, g_LogTag, "%s",
|
||||||
free(bundle);
|
"eglChooseConfig_p() found no matching config");
|
||||||
return NULL;
|
free(bundle);
|
||||||
}
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
// Get the first matching config
|
// Get the first matching config
|
||||||
eglChooseConfig_p(g_EglDisplay, egl_attributes, &bundle->config, 1, &num_configs);
|
eglChooseConfig_p(g_EglDisplay, egl_attributes2, &bundle->config, 1, &num_configs);
|
||||||
|
} else {
|
||||||
|
if (eglChooseConfig_p(g_EglDisplay, egl_attributes, NULL, 0, &num_configs) != EGL_TRUE) {
|
||||||
|
__android_log_print(ANDROID_LOG_ERROR, g_LogTag, "eglChooseConfig_p() failed: %04x",
|
||||||
|
eglGetError_p());
|
||||||
|
free(bundle);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
if (num_configs == 0) {
|
||||||
|
__android_log_print(ANDROID_LOG_ERROR, g_LogTag, "%s",
|
||||||
|
"eglChooseConfig_p() found no matching config");
|
||||||
|
free(bundle);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the first matching config
|
||||||
|
eglChooseConfig_p(g_EglDisplay, egl_attributes, &bundle->config, 1, &num_configs);
|
||||||
|
}
|
||||||
eglGetConfigAttrib_p(g_EglDisplay, bundle->config, EGL_NATIVE_VISUAL_ID, &bundle->format);
|
eglGetConfigAttrib_p(g_EglDisplay, bundle->config, EGL_NATIVE_VISUAL_ID, &bundle->format);
|
||||||
|
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user