Add controller input and a laser-pointer-driven menu quad
build / build (push) Successful in 2m26s

- xr_input.c/h: an OpenXR action set (aim pose, trigger/select click, a
  menu-toggle button) plus ray/quad hit-testing, and a visible
  laser-pointer line drawn from the controller toward the hit point.
- xr_menu.c/h + MenuOverlay.java: a second composition-layer quad,
  toggled by a controller button, showing an off-screen, never-attached
  Android View tree (one "Keyboard" button so far) driven by synthetic
  touch events computed from the laser ray's hit UV.
- Migrate gl4es from a prebuilt binary baked into the Docker build-image
  to a vendored source snapshot (android/gl4es-src/) compiled from
  source at APK build time via CMake add_subdirectory(), patched through
  a new android/gl4es-patches/ (mirrors the existing engine-patches/
  pattern). This was needed to track down and fix a bug hit while
  building the menu: gl4es's fixed-pipeline emulation (fpe.c) was
  unconditionally substituting its own shader onto the menu's draw call
  (fpe_ReleventState() always sets alphafunc to a nonzero sentinel, so
  its fpe_IsEmpty() check could never see the state as empty), making
  the menu quad show the game's own rendering instead of its own
  content. Fixed by routing the menu's blit through a real
  glBlitFramebuffer() call instead of a shader-based draw, which gl4es's
  fpe.c has nothing to intercept - documented in README.md's new
  "Debugging notes" section.
- Renumber android/engine-patches/ to close the gap left by removing an
  unrelated diagnostic-only patch, and strip investigation-journal
  comments and dead diagnostic code (temporary tracing, env-var probes)
  left over from finding the bug above.
- Restructure README.md into numbered sections, document every
  engine/gl4es patch, add Android Studio dev/testing-cycle instructions,
  and generalize Quest-specific wording to any OpenXR headset. Update
  NOTICE.txt to match (gl4es is now vendored/patched source, not a
  prebuilt binary; add the OpenXR-SDK loader).
This commit is contained in:
ml
2026-08-02 06:27:49 +02:00
parent 2300d081c3
commit d2dc58391b
310 changed files with 141458 additions and 226 deletions
+5
View File
@@ -0,0 +1,5 @@
gl4es for Debian
---------------
-- licheng <shiptux@gmail.com> Fri, 30 Jul 2021 14:53:15 +0800
+7
View File
@@ -0,0 +1,7 @@
gl4es for Debian
---------------
-- licheng <shiptux@gmail.com> Fri, 30 Jul 2021 14:53:15 +0800
+5
View File
@@ -0,0 +1,5 @@
gl4es (1.1.4-1) unstable; urgency=medium
* Initial release
-- licheng <shiptux@gmail.com> Fri, 30 Jul 2021 14:53:15 +0800
+1
View File
@@ -0,0 +1 @@
11
+29
View File
@@ -0,0 +1,29 @@
Source: gl4es
Section: libs
Priority: optional
Maintainer: licheng <shiptux@gmail.com>
Build-Depends: debhelper (>= 11),cmake,libx11-dev
Standards-Version: 4.1.3
Homepage: https://github.com/ptitSeb/gl4es
Package: libgl4es
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Multi-arch: no
Description: GL4ES - OpenGL for GLES Hardware
This is a library provide OpenGL 2.x functionality for GLES2.0 accelerated Hardware
(and of course also support OpenGL 1.5 function, so metimes better than when using
GLES 1.1 backend) There is also support for GLES 1.1 Hardware, emulating OpenGL 1.5,
and some OpenGL 2.x + extensions.
This package contains the shared libraries.
Package: libgl4es-dev
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Multi-arch: no
Description: GL4ES - OpenGL for GLES Hardware
This is a headers provide OpenGL 2.x functionality for GLES2.0 accelerated Hardware
(and of course also support OpenGL 1.5 function, so metimes better than when using
GLES 1.1 backend) There is also support for GLES 1.1 Hardware, emulating OpenGL 1.5,
and some OpenGL 2.x + extensions.
This package contains the development files.
+46
View File
@@ -0,0 +1,46 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: gl4es
Source: https://github.com/ptitSeb/gl4es
Files: *
Copyright: Copyright (c) 2016-2018 Sebastien Chevalier
Copyright (c) 2013-2016 Ryan Hileman
License: Expat
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Files: debian/*
Copyright: 2021 licheng <shiptux@gmail.com>
License: GPL-2+
This package is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
.
This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>
.
On Debian systems, the complete text of the GNU General
Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".
@@ -0,0 +1,3 @@
include/gl4esinit.h usr/include/gl4es/
include/gl4eshint.h usr/include/gl4es/
@@ -0,0 +1,2 @@
lib/libGL.so.1 usr/lib/gl4es/
@@ -0,0 +1,13 @@
fix lintian error
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,6 +6,9 @@
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib)
+set(CMAKE_SKIP_INSTALL_RPATH ON)
+set(CMAKE_SKIP_RPATH ON)
+
link_directories(${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
option(PANDORA "Set to ON if targeting an OpenPandora device" ${PANDORA})
+1
View File
@@ -0,0 +1 @@
fix_lintian_error
+15
View File
@@ -0,0 +1,15 @@
#!/usr/bin/make -f
%:
dh $@
override_dh_auto_test:
# Disable auto tests at build time
:
override_dh_auto_clean:
dh_auto_clean
rm -f lib/*.so*
+1
View File
@@ -0,0 +1 @@
3.0 (quilt)