MobileGlues

MobileGlues, which stands for "(on) Mobile, GL uses ES", is a GL implementation running on top of host OpenGL ES 3.x (best on 3.2, minimum 3.0), with running Minecraft: Java Edition in mind.

For Shader Developers

  1. MobileGlues automatically:

    • Converts desktop GLSL → GLSL ES
    • Removes layout(binding) syntax
    • Handles version directives
    • Always declare precision explicitly:
      precision highp float;
      precision highp int;
      
  2. MobileGlues (since V1.2.6.0) injects these macros into your shaders:

    #define MG_MOBILEGLUES                   // Indicates MobileGlues environment
    #define MG_MOBILEGLUES_VERSION 1260      // Version number (e.g. 1260 = V1.2.6)
    

    Use these macros for platform-specific logic:

    #ifdef MG_MOBILEGLUES
        #if MG_MOBILEGLUES_VERSION >= 1270
            // Logic for MobileGlues (version >= V1.2.7)
        #else
            // Logic for MobileGlues (version < V1.2.7)
        #endif
    #else
        // ...
    #endif
    
  3. If encountering issues:

    • Enable Ignore shader/program error, and check the logs (located at /sdcard/MG/latest.log).

License

MobileGlues is licensed under GNU LGPL-2.1 License.

Please see LICENSE.

Third party components

SPIRV-Cross by KhronosGroup - Apache License 2.0: github

glslang by KhronosGroup - Various Licenses: github

GlslOptimizerV2 by aiekick - Apache License 2.0: github

cJSON by DaveGamble - MIT License: github

OpenGL Mathematics (GLM) by G-Truc Creation - The Happy Bunny License: github

FidelityFX-FSR by AMD - MIT License: github

Description
Languages
C++ 56.6%
C 42.9%
Python 0.3%
CMake 0.1%