diff --git a/android/jni/com/mapswithme/opengl/android_gl_utils.cpp b/android/jni/com/mapswithme/opengl/android_gl_utils.cpp index 300187db05..ec51926c0b 100644 --- a/android/jni/com/mapswithme/opengl/android_gl_utils.cpp +++ b/android/jni/com/mapswithme/opengl/android_gl_utils.cpp @@ -13,7 +13,11 @@ ConfigComparator::ConfigComparator(EGLDisplay display) int ConfigComparator::operator()(EGLConfig const & l, EGLConfig const & r) const { - return configWeight(l) - configWeight(r); + int const weight = configWeight(l) - configWeight(r); + if (weight == 0) + return configAlphaSize(l) - configAlphaSize(r); + + return weight; } int ConfigComparator::configWeight(EGLConfig const & config) const @@ -34,6 +38,13 @@ int ConfigComparator::configWeight(EGLConfig const & config) const } } +int ConfigComparator::configAlphaSize(EGLConfig const & config) const +{ + int val = 0; + eglGetConfigAttrib(m_display, config, EGL_ALPHA_SIZE, &val); + return val; +} + namespace { @@ -71,4 +82,4 @@ void CheckEGL(my::SrcPoint const & src) } } -} // namespace android \ No newline at end of file +} // namespace android diff --git a/android/jni/com/mapswithme/opengl/android_gl_utils.hpp b/android/jni/com/mapswithme/opengl/android_gl_utils.hpp index b48f689585..22ee8909f0 100644 --- a/android/jni/com/mapswithme/opengl/android_gl_utils.hpp +++ b/android/jni/com/mapswithme/opengl/android_gl_utils.hpp @@ -15,6 +15,7 @@ public: int operator()(EGLConfig const & l, EGLConfig const & r) const; int configWeight(EGLConfig const & config) const; + int configAlphaSize(EGLConfig const & config) const; private: EGLDisplay m_display;