From 2f39c4327018ccd74b02b0c532bffe530e22ebd4 Mon Sep 17 00:00:00 2001 From: BZLZHH Date: Sat, 31 Jan 2026 15:41:52 +0800 Subject: [PATCH 1/2] [Docs] (README): Update status. --- CMakeLists.txt | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2a6d3a95..ab6013f9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,7 @@ project("MobileGL") option(MOBILEGL_BUILD_TEST "Build MobileGL tests" ON ) option(MOBILEGL_BUILD_BENCHMARK "Build MobileGL benchmarks" ON ) option(MOBILEGL_FORCE_RELEASE_OPT "Enable Release optimization flags in Debug build" ON ) -option(MOBILEGL_ENABLE_TRACY "Enable tracy for profiling" OFF) +option(MOBILEGL_ENABLE_TRACY "Enable tracy for profiling" OFF) if (ANDROID) set(MOBILEGL_BUILD_TEST OFF CACHE BOOL "Build MobileGL tests" FORCE) diff --git a/README.md b/README.md index 97446e1d..1506f8d7 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ Refer to each component's repository for exact license texts. Any bundled third- ## Compatibility & target * **Short-term target:** Implement `OpenGL 3.3 (Core Profile)`. -* **Current development focus:** MG_State and MG_Impl for `OpenGL 3.3 (Core Profile)`, and a `Direct (OpenGL ES)` backend implementation. These components are incomplete. +* **Current development focus:** MG_State and MG_Impl for `OpenGL 3.3 (Core Profile)`, and a `Direct (Vulkan)` backend implementation. These components are incomplete. ## Build Instructions From f0ccd40a6b2759d2a821d5d552bfd48990e62d7a Mon Sep 17 00:00:00 2001 From: BZLZHH Date: Sat, 31 Jan 2026 16:15:46 +0800 Subject: [PATCH 2/2] [Docs] (README): Update status & improve descriptions. --- README.md | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 1506f8d7..6274c8bd 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ A desktop OpenGL implementation

-MobileGL is a *free (libre)* and *open-source* project that implements a desktop **OpenGL** API. The goal is to provide a complete OpenGL implementation with a state management layer and multiple backends. +MobileGL is a *free* and *open-source* project that implements a desktop **OpenGL** API. The goal is to provide a complete desktop OpenGL implementation with a state management layer and multi-backend support. > [!NOTE] > @@ -18,26 +18,26 @@ MobileGL is a *free (libre)* and *open-source* project that implements a desktop ## Project positioning -MobileGL is a ground-up implementation of a desktop OpenGL library. It aims to provide: +MobileGL is an implementation of a desktop OpenGL library. It aims to provide: * Full OpenGL state management. * A front-end that exposes OpenGL functions. -* Pluggable backends so the same front-end and state machine can run on different graphics backends. +* Multiple independent backend implementations, where each backend targets a specific graphics API and remains fully isolated from others. -This project is intended as an implementation/translation layer; it is not a driver nor a GPU firmware replacement currently. +This project is intended as an implementation/translation layer. ## Key components -The repository is organized into a small number of top-level modules: +The repository is organized into following top-level modules: -1. **MG_State** — the OpenGL state machine and related state-management code. -2. **MG_Impl** — the front-end OpenGL function implementations that mainly use `MG_State` and `MG_Backend`. -3. **MG_Backend** — backend implementations that perform actual rendering. Example backend: `Direct (OpenGL ES)` backend. +1. **MG_State** — OpenGL state tracking and state-management logic. +2. **MG_Impl** — front-end OpenGL API implementations that interact with `MG_State` and `MG_Backend`. +3. **MG_Backend** — per-backend translation layer that maps front-end OpenGL semantics and state into concrete backend API calls (e.g. OpenGL ES, Vulkan). 4. **MG_Util** and other utility modules. ## Third-party components -MobileGL reuses several established open-source projects: +MobileGL reuses several open-source projects: * **SPIRV-Cross** by **KhronosGroup** - [Apache License 2.0](https://github.com/KhronosGroup/SPIRV-Cross/blob/master/LICENSE): [github](https://github.com/KhronosGroup/SPIRV-Cross) * **glslang** by **KhronosGroup** - [Various Licenses](https://github.com/KhronosGroup/glslang/blob/main/LICENSE.txt): [github](https://github.com/KhronosGroup/glslang) @@ -47,8 +47,11 @@ Refer to each component's repository for exact license texts. Any bundled third- ## Compatibility & target -* **Short-term target:** Implement `OpenGL 3.3 (Core Profile)`. -* **Current development focus:** MG_State and MG_Impl for `OpenGL 3.3 (Core Profile)`, and a `Direct (Vulkan)` backend implementation. These components are incomplete. +* **Short-term target:** `OpenGL 3.3 (Core Profile)`. +* **Current development focus:** + * `MG_State` and `MG_Impl` for `OpenGL 3.3 (Core Profile)` + * `Direct (Vulkan)` backend + * `Direct (OpenGL ES)` backend ## Build Instructions @@ -97,14 +100,13 @@ If you want to try the project right now, you’ll need to build it yourself: **Notes:** * The project requires C++23. -* `MG_Test` and `MG_Benchmark` can only be built with Clang, not GCC. To enforce Clang, use `-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++`. +* `MG_Test` and `MG_Benchmark` can only be built with Clang, not GCC. To enforce Clang, add `-DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++` to your command. * On Android, tests and benchmarks are always disabled. ## Notice * MobileGL is **not** production-ready currently. -* Many features required by a full OpenGL 3.3 implementation are still missing or incomplete. -* Performance optimizatins are now almost missing. +* Some `OpenGL 3.3 (Core Profile)` features are still missing or under development. ## License