Skip to content
This repository was archived by the owner on Aug 16, 2026. It is now read-only.

feat: MobileGLES — comprehensive iOS-only rewrite of MobileGlues - #64

Closed
EternityQwQ wants to merge 8 commits into
mainfrom
trae/agent-scTrYY
Closed

feat: MobileGLES — comprehensive iOS-only rewrite of MobileGlues#64
EternityQwQ wants to merge 8 commits into
mainfrom
trae/agent-scTrYY

Conversation

@EternityQwQ

Copy link
Copy Markdown
Owner

Summary

Comprehensive rewrite of MobileGlues as MobileGLES, targeting iOS exclusively. All non-Apple platform code (Android, Linux) has been removed.

Key changes

  • CMake: if(NOT APPLE) message(FATAL_ERROR ...) — refuses to build on non-Apple platforms
  • Framework linkage: ANGLE (libEGL/libGLESv2 on Metal) + Metal + Foundation + QuartzCore
  • gles/loader: removed dlopen/path_prefix/open_lib; uses RTLD_MAIN_ONLY pseudo-handle for symbol resolution
  • gles/loader.h: NATIVE_FUNCTION_HEAD simplified — removed ELF __attribute__((alias)) (Mach-O incompatible)
  • glx/lookup: removed #ifdef __APPLE__ branch, iOS-only dlsym path
  • egl/loader: removed unused destroy_temp_egl_ctx
  • config: deleted gpu_utils.{cpp,h} (Vulkan/Adreno detection meaningless on iOS); settings.cpp simplified (no launcher env vars, no GPU detection); /sdcard/MG$HOME/Documents/MG (iOS sandbox)
  • gl/log, mg, getter, buffer, texture, FSR1, glsl_for_es: removed all __ANDROID__/__APPLE__ platform conditionals
  • gl/buffer: removed ARB alias block (__attribute__((alias)) not supported on Mach-O)
  • Global rename: MobileGluesMobileGLES, MG_MOBILEGLUESMG_MOBILEGLES, GL_MG_mobilegluesGL_MG_mobilegles, MOBILEGLUES_* header guards → MOBILEGLES_*
  • CI: single build.yml (replaces ios.yml + build-android.yml), builds libmobilegles.dylib for iOS
  • README: rewritten for MobileGLES iOS-only

CI status

✅ Build passed on trae/agent-scTrYYrun #29787560341

Breaking changes

  • No longer builds for Android or Linux
  • No longer supports dlopen-based GLES/EGL loading (ANGLE framework must be statically linked)
  • ARB-suffixed GL symbols no longer use ELF aliasing (Mach-O limitation)

alexytomi and others added 8 commits June 26, 2026 02:43
[Fix] (texture): Handle non-rev swizzle for glTexSubImage2D
Co-authored-by: traeagent <traeagent@users.noreply.github.com>
- gles/loader: remove dlopen/path_prefix/open_lib, keep RTLD_MAIN_ONLY
- gles/loader.h: remove open_lib decl, simplify NATIVE_FUNCTION_HEAD (no ELF alias)
- egl/loader: remove unused destroy_temp_egl_ctx
- glx/lookup: remove #ifdef __APPLE__ branch, iOS-only dlsym path
- gl/log: remove __ANDROID__ stub wrapper, keep no-op
- gl/mg: remove __APPLE__ conditionals, no-op log functions on iOS
- gl/getter: GL_MG_mobilegles, MobileGLES strings, remove non-Apple GL_EXTENSIONS branch
- gl/buffer: remove BIN_FILE_PREFIX and ARB alias block (Mach-O incompatible)
- gl/texture, FSR1: remove __ANDROID__/__APPLE__ platform conditionals
- gl/glsl_for_es: MG_MOBILEGLES macros, MobileGLES comment
- Rename all MOBILEGLUES_* header guards to MOBILEGLES_*
- Update file headers via update-source-file-header.py (MobileGLES)
- Rewrite README.md and CI workflow for MobileGLES iOS-only
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants