d2dc58391b
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).
69 lines
3.5 KiB
YAML
69 lines
3.5 KiB
YAML
glx:
|
|
glXBindHyperpipeSGIX: [int, Display *dpy, int hpId]
|
|
glXBindSwapBarrierSGIX: [void, uint32_t window, uint32_t barrier]
|
|
glXChangeDrawableAttributes: [void, uint32_t drawable]
|
|
glXChangeDrawableAttributesSGIX: [void, uint32_t drawable]
|
|
glXClientInfo: [void]
|
|
glXCopyContext: [void, uint32_t source, uint32_t dest, uint32_t mask]
|
|
glXCreateContext: [void, uint32_t gc_id, uint32_t screen, uint32_t visual, uint32_t
|
|
share_list]
|
|
glXCreateContextWithConfigSGIX: [void, uint32_t gc_id, uint32_t screen, uint32_t
|
|
config, uint32_t share_list]
|
|
glXCreateGLXPbufferSGIX: [void, uint32_t config, uint32_t pbuffer]
|
|
glXCreateGLXPixmap: [void, uint32_t visual, uint32_t pixmap, uint32_t glxpixmap]
|
|
glXCreateGLXPixmapWithConfigSGIX: [void, uint32_t config, uint32_t pixmap, uint32_t
|
|
glxpixmap]
|
|
glXCreateGLXVideoSourceSGIX: [void, uint32_t dpy, uint32_t screen, uint32_t server,
|
|
uint32_t path, uint32_t class, uint32_t node]
|
|
glXCreateNewContext: [void, uint32_t config, uint32_t render_type, uint32_t share_list,
|
|
uint32_t direct]
|
|
glXCreatePbuffer: [void, uint32_t config, uint32_t pbuffer]
|
|
glXCreatePixmap: [void, uint32_t config, uint32_t pixmap, uint32_t glxpixmap]
|
|
glXCreateWindow: [void, uint32_t config, uint32_t window, uint32_t glxwindow]
|
|
glXDestroyContext: [void, uint32_t context]
|
|
glXDestroyGLXPbufferSGIX: [void, uint32_t pbuffer]
|
|
glXDestroyGLXPixmap: [void, uint32_t pixmap]
|
|
glXDestroyGLXVideoSourceSGIX: [void, uint32_t dpy, uint32_t glxvideosource]
|
|
glXDestroyHyperpipeConfigSGIX: [int, Display *dpy, int hpId]
|
|
glXDestroyPbuffer: [void, uint32_t pbuffer]
|
|
glXDestroyPixmap: [void, uint32_t glxpixmap]
|
|
glXDestroyWindow: [void, uint32_t glxwindow]
|
|
glXGetDrawableAttributes: [void, uint32_t drawable]
|
|
glXGetDrawableAttributesSGIX: [void, uint32_t drawable]
|
|
glXGetFBConfigs: [void]
|
|
glXGetFBConfigsSGIX: [void]
|
|
glXGetVisualConfigs: [void]
|
|
glXHyperpipeAttribSGIX: [int, Display *dpy, int timeSlice, int attrib, int size,
|
|
const void *attribList]
|
|
glXHyperpipeConfigSGIX: [int, Display *dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX
|
|
cfg, int *hpId]
|
|
glXIsDirect: [void, uint32_t dpy, uint32_t context]
|
|
glXJoinSwapGroupSGIX: [void, uint32_t window, uint32_t group]
|
|
glXMakeContextCurrent: [void, uint32_t drawable, uint32_t readdrawable, uint32_t
|
|
context]
|
|
glXMakeCurrent: [void, uint32_t drawable, uint32_t context]
|
|
glXMakeCurrentReadSGI: [void, uint32_t drawable, uint32_t readdrawable, uint32_t
|
|
context]
|
|
glXQueryContext: [void]
|
|
glXQueryContextInfoEXT: [void]
|
|
glXQueryExtensionsString: [void, uint32_t screen]
|
|
glXQueryHyperpipeAttribSGIX: [int, Display *dpy, int timeSlice, int attrib, int
|
|
size, const void *returnAttribList]
|
|
glXQueryHyperpipeBestAttribSGIX: [int, Display *dpy, int timeSlice, int attrib,
|
|
int size, const void *attribList, void *returnAttribList]
|
|
glXQueryHyperpipeConfigSGIX: [GLXHyperpipeConfigSGIX *, Display *dpy, int hpId,
|
|
int *npipes]
|
|
glXQueryHyperpipeNetworkSGIX: [GLXHyperpipeNetworkSGIX *, Display *dpy, int *npipes]
|
|
glXQueryMaxSwapBarriersSGIX: [void]
|
|
glXQueryServerString: [void, uint32_t screen, uint32_t name]
|
|
glXQueryVersion: [void, uint32_t *major, uint32_t *minor]
|
|
glXRender: [void]
|
|
glXRenderLarge: [void]
|
|
glXSwapBuffers: [void, uint32_t drawable]
|
|
glXSwapIntervalSGI: [void]
|
|
glXUseXFont: [void, uint32_t font, uint32_t first, uint32_t count, uint32_t list_base]
|
|
glXVendorPrivate: [void]
|
|
glXVendorPrivateWithReply: [void]
|
|
glXWaitGL: [void, uint32_t context]
|
|
glXWaitX: [void]
|