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).
77 lines
4.2 KiB
YAML
77 lines
4.2 KiB
YAML
glx:
|
|
glXChooseVisual: [XVisualInfo *, Display *dpy, int screen, int *attribList]
|
|
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, Display *dpy, GLXContext src, GLXContext dst, unsigned long mask]
|
|
glXCreateContext: [GLXContext, Display *dpy, XVisualInfo *vis, GLXContext shareList, Bool direct]
|
|
glXCreateContextAttribsARB: [GLXContext, Display *display, void *config, GLXContext share_context, Bool direct, const int *attrib_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: [GLXPixmap, Display *dpy, XVisualInfo *visual, Pixmap pixmap]
|
|
glXCreateGLXPixmapWithConfigSGIX: [void, uint32_t config, uint32_t pixmap, uint32_t
|
|
glxpixmap]
|
|
glXCreateGLXVideoSourceSGIX: [void, Display *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, Display *dpy, GLXContext ctx]
|
|
glXDestroyGLXPbufferSGIX: [void, uint32_t pbuffer]
|
|
glXDestroyGLXPixmap: [void, Display *dpy, GLXPixmap pixmap]
|
|
glXDestroyGLXVideoSourceSGIX: [void, Display *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]
|
|
glXGetClientString: [const char *, Display *display, int name]
|
|
glXGetCurrentContext: [GLXContext]
|
|
glXGetCurrentDrawable: [GLXDrawable]
|
|
glXGetConfig: [int, Display *display, XVisualInfo *visual, int attribute, int *value]
|
|
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: [Bool, Display *dpy, GLXContext ctx]
|
|
glXJoinSwapGroupSGIX: [void, uint32_t window, uint32_t group]
|
|
glXMakeContextCurrent: [void, uint32_t drawable, uint32_t readdrawable, uint32_t
|
|
context]
|
|
glXMakeCurrent: [Bool, Display *dpy, GLXDrawable drawable, GLXContext ctx]
|
|
glXMakeCurrentReadSGI: [void, uint32_t drawable, uint32_t readdrawable, uint32_t
|
|
context]
|
|
glXQueryContext: [void]
|
|
glXQueryContextInfoEXT: [void]
|
|
glXQueryExtension: [Bool, Display *display, int *errorBase, int *eventBase]
|
|
glXQueryExtensionsString: [const char *, Display *dpy, int 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: [const char *, Display *dpy, int screen, int name]
|
|
glXQueryVersion: [Bool, Display *dpy, int *maj, int *min]
|
|
glXReleaseBuffersMESA: [Bool, Display *dpy, GLXDrawable drawable]
|
|
glXRender: [void]
|
|
glXRenderLarge: [void]
|
|
glXSwapBuffers: [void, Display *dpy, GLXDrawable drawable]
|
|
glXSwapIntervalSGI: [void, unsigned int interval]
|
|
glXSwapIntervalMESA: [int, unsigned int interval]
|
|
glXUseXFont: [void, Font font, int first, int count, int list]
|
|
glXVendorPrivate: [void]
|
|
glXVendorPrivateWithReply: [void]
|
|
glXWaitGL: [void]
|
|
glXWaitX: [void]
|