Hi, On 5 May 2015 at 14:52, Derek Foreman <der...@osg.samsung.com> wrote: > +static bool > +fallback_format(EGLint *format) > +{ > + char *fourcc = (char *)format; > + > + if (fourcc[0] != 'X') > + return false; > + > + fourcc[0] = 'A'; > + return true; > +}
Took me a moment to work out what was going on here. Cute, but nasty. We should probably fix this up once we get the format database we need for linux_dmabuf. Could probably squeeze it into a single pass with two variables and some restructuring, along these lines: EGLConfig matching_config = EGL_NO_CONFIG; EGLConfig fallback_config = EGL_NO_CONFIG; fallback_id = *visual_id; if (!fallback_format(&fallback_id)) fallback_id = 0; for (i = 0; i < matched; i++) { eglGetConfigAttrib(...); if (id == visual_id) { matching_config = configs[i]; break; } else if (fallback_id != 0 && id == fallback_id && fallback_config == EGL_NO_CONFIG) { fallback_config = configs[i]; } } free(configs); if (matching_config != EGL_NO_CONFIG) { *config_out = matching_config; return 0; } else if (fallback_config != EGL_NO_CONFIG) { *config_out = fallback_config; return 0; } else { return -1; } But that's just nitpicking; the current version does work fine. And my reworked version does have a less elegant return ladder. So, either way: Reviewed-by: Daniel Stone <dani...@collabora.com> Cheers, Daniel _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel