Load X11 dynamically
The loaders have been generated through hpvb's dynload-wrapper, although they had to be heavily handpatched to workaround some already reported issues with it. I added a note to each generated file to account for that. As GLAD uses X11 stuff directly, I had to define the GLAD_GLX_NO_X11 macro to not let do it that, and handle myself the display loading and screen handling part myself, which wasn't that hard but it's still something worth saying. I plan to improve greatly the X11 backend (including this aspect) but, as the release isn't that far and I'm also working on the Wayland backend, this will do for now, I hope.
This commit is contained in:
@@ -0,0 +1,158 @@
|
||||
#ifndef DYLIBLOAD_WRAPPER_XINPUT2
|
||||
#define DYLIBLOAD_WRAPPER_XINPUT2
|
||||
// This file is generated. Do not edit!
|
||||
// see https://github.com/hpvb/dynload-wrapper for details
|
||||
// generated by ./generate-wrapper.py 0.3 on 2022-12-02 12:54:10
|
||||
// flags: ./generate-wrapper.py --include /usr/include/X11/extensions/XInput2.h --sys-include <X11/extensions/XInput2.h> --soname libXi.so.6 --init-name xinput2 --output-header xinput2-so_wrap.h --output-implementation xinput2-so_wrap.c
|
||||
//
|
||||
// NOTE: Generated from Xi 1.7.10.
|
||||
// This has been handpatched to workaround some issues with the generator that
|
||||
// will be eventually fixed. In this case, non-existant symbols inherited from
|
||||
// libX11, liXext and libXfixes, but absent in libXi.so.6, were removed.
|
||||
#include <stdint.h>
|
||||
|
||||
#define XIQueryPointer XIQueryPointer_dylibloader_orig_xinput2
|
||||
#define XIWarpPointer XIWarpPointer_dylibloader_orig_xinput2
|
||||
#define XIDefineCursor XIDefineCursor_dylibloader_orig_xinput2
|
||||
#define XIUndefineCursor XIUndefineCursor_dylibloader_orig_xinput2
|
||||
#define XIChangeHierarchy XIChangeHierarchy_dylibloader_orig_xinput2
|
||||
#define XISetClientPointer XISetClientPointer_dylibloader_orig_xinput2
|
||||
#define XIGetClientPointer XIGetClientPointer_dylibloader_orig_xinput2
|
||||
#define XISelectEvents XISelectEvents_dylibloader_orig_xinput2
|
||||
#define XIGetSelectedEvents XIGetSelectedEvents_dylibloader_orig_xinput2
|
||||
#define XIQueryVersion XIQueryVersion_dylibloader_orig_xinput2
|
||||
#define XIQueryDevice XIQueryDevice_dylibloader_orig_xinput2
|
||||
#define XISetFocus XISetFocus_dylibloader_orig_xinput2
|
||||
#define XIGetFocus XIGetFocus_dylibloader_orig_xinput2
|
||||
#define XIGrabDevice XIGrabDevice_dylibloader_orig_xinput2
|
||||
#define XIUngrabDevice XIUngrabDevice_dylibloader_orig_xinput2
|
||||
#define XIAllowEvents XIAllowEvents_dylibloader_orig_xinput2
|
||||
#define XIAllowTouchEvents XIAllowTouchEvents_dylibloader_orig_xinput2
|
||||
#define XIGrabButton XIGrabButton_dylibloader_orig_xinput2
|
||||
#define XIGrabKeycode XIGrabKeycode_dylibloader_orig_xinput2
|
||||
#define XIGrabEnter XIGrabEnter_dylibloader_orig_xinput2
|
||||
#define XIGrabFocusIn XIGrabFocusIn_dylibloader_orig_xinput2
|
||||
#define XIGrabTouchBegin XIGrabTouchBegin_dylibloader_orig_xinput2
|
||||
#define XIUngrabButton XIUngrabButton_dylibloader_orig_xinput2
|
||||
#define XIUngrabKeycode XIUngrabKeycode_dylibloader_orig_xinput2
|
||||
#define XIUngrabEnter XIUngrabEnter_dylibloader_orig_xinput2
|
||||
#define XIUngrabFocusIn XIUngrabFocusIn_dylibloader_orig_xinput2
|
||||
#define XIUngrabTouchBegin XIUngrabTouchBegin_dylibloader_orig_xinput2
|
||||
#define XIListProperties XIListProperties_dylibloader_orig_xinput2
|
||||
#define XIChangeProperty XIChangeProperty_dylibloader_orig_xinput2
|
||||
#define XIDeleteProperty XIDeleteProperty_dylibloader_orig_xinput2
|
||||
#define XIGetProperty XIGetProperty_dylibloader_orig_xinput2
|
||||
#define XIBarrierReleasePointers XIBarrierReleasePointers_dylibloader_orig_xinput2
|
||||
#define XIBarrierReleasePointer XIBarrierReleasePointer_dylibloader_orig_xinput2
|
||||
#define XIFreeDeviceInfo XIFreeDeviceInfo_dylibloader_orig_xinput2
|
||||
#include <X11/extensions/XInput2.h>
|
||||
#undef XIQueryPointer
|
||||
#undef XIWarpPointer
|
||||
#undef XIDefineCursor
|
||||
#undef XIUndefineCursor
|
||||
#undef XIChangeHierarchy
|
||||
#undef XISetClientPointer
|
||||
#undef XIGetClientPointer
|
||||
#undef XISelectEvents
|
||||
#undef XIGetSelectedEvents
|
||||
#undef XIQueryVersion
|
||||
#undef XIQueryDevice
|
||||
#undef XISetFocus
|
||||
#undef XIGetFocus
|
||||
#undef XIGrabDevice
|
||||
#undef XIUngrabDevice
|
||||
#undef XIAllowEvents
|
||||
#undef XIAllowTouchEvents
|
||||
#undef XIGrabButton
|
||||
#undef XIGrabKeycode
|
||||
#undef XIGrabEnter
|
||||
#undef XIGrabFocusIn
|
||||
#undef XIGrabTouchBegin
|
||||
#undef XIUngrabButton
|
||||
#undef XIUngrabKeycode
|
||||
#undef XIUngrabEnter
|
||||
#undef XIUngrabFocusIn
|
||||
#undef XIUngrabTouchBegin
|
||||
#undef XIListProperties
|
||||
#undef XIChangeProperty
|
||||
#undef XIDeleteProperty
|
||||
#undef XIGetProperty
|
||||
#undef XIBarrierReleasePointers
|
||||
#undef XIBarrierReleasePointer
|
||||
#undef XIFreeDeviceInfo
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#define XIQueryPointer XIQueryPointer_dylibloader_wrapper_xinput2
|
||||
#define XIWarpPointer XIWarpPointer_dylibloader_wrapper_xinput2
|
||||
#define XIDefineCursor XIDefineCursor_dylibloader_wrapper_xinput2
|
||||
#define XIUndefineCursor XIUndefineCursor_dylibloader_wrapper_xinput2
|
||||
#define XIChangeHierarchy XIChangeHierarchy_dylibloader_wrapper_xinput2
|
||||
#define XISetClientPointer XISetClientPointer_dylibloader_wrapper_xinput2
|
||||
#define XIGetClientPointer XIGetClientPointer_dylibloader_wrapper_xinput2
|
||||
#define XISelectEvents XISelectEvents_dylibloader_wrapper_xinput2
|
||||
#define XIGetSelectedEvents XIGetSelectedEvents_dylibloader_wrapper_xinput2
|
||||
#define XIQueryVersion XIQueryVersion_dylibloader_wrapper_xinput2
|
||||
#define XIQueryDevice XIQueryDevice_dylibloader_wrapper_xinput2
|
||||
#define XISetFocus XISetFocus_dylibloader_wrapper_xinput2
|
||||
#define XIGetFocus XIGetFocus_dylibloader_wrapper_xinput2
|
||||
#define XIGrabDevice XIGrabDevice_dylibloader_wrapper_xinput2
|
||||
#define XIUngrabDevice XIUngrabDevice_dylibloader_wrapper_xinput2
|
||||
#define XIAllowEvents XIAllowEvents_dylibloader_wrapper_xinput2
|
||||
#define XIAllowTouchEvents XIAllowTouchEvents_dylibloader_wrapper_xinput2
|
||||
#define XIGrabButton XIGrabButton_dylibloader_wrapper_xinput2
|
||||
#define XIGrabKeycode XIGrabKeycode_dylibloader_wrapper_xinput2
|
||||
#define XIGrabEnter XIGrabEnter_dylibloader_wrapper_xinput2
|
||||
#define XIGrabFocusIn XIGrabFocusIn_dylibloader_wrapper_xinput2
|
||||
#define XIGrabTouchBegin XIGrabTouchBegin_dylibloader_wrapper_xinput2
|
||||
#define XIUngrabButton XIUngrabButton_dylibloader_wrapper_xinput2
|
||||
#define XIUngrabKeycode XIUngrabKeycode_dylibloader_wrapper_xinput2
|
||||
#define XIUngrabEnter XIUngrabEnter_dylibloader_wrapper_xinput2
|
||||
#define XIUngrabFocusIn XIUngrabFocusIn_dylibloader_wrapper_xinput2
|
||||
#define XIUngrabTouchBegin XIUngrabTouchBegin_dylibloader_wrapper_xinput2
|
||||
#define XIListProperties XIListProperties_dylibloader_wrapper_xinput2
|
||||
#define XIChangeProperty XIChangeProperty_dylibloader_wrapper_xinput2
|
||||
#define XIDeleteProperty XIDeleteProperty_dylibloader_wrapper_xinput2
|
||||
#define XIGetProperty XIGetProperty_dylibloader_wrapper_xinput2
|
||||
#define XIBarrierReleasePointers XIBarrierReleasePointers_dylibloader_wrapper_xinput2
|
||||
#define XIBarrierReleasePointer XIBarrierReleasePointer_dylibloader_wrapper_xinput2
|
||||
#define XIFreeDeviceInfo XIFreeDeviceInfo_dylibloader_wrapper_xinput2
|
||||
extern int (*XIQueryPointer_dylibloader_wrapper_xinput2)( Display*, int, Window, Window*, Window*, double*, double*, double*, double*, XIButtonState*, XIModifierState*, XIGroupState*);
|
||||
extern int (*XIWarpPointer_dylibloader_wrapper_xinput2)( Display*, int, Window, Window, double, double, unsigned int, unsigned int, double, double);
|
||||
extern int (*XIDefineCursor_dylibloader_wrapper_xinput2)( Display*, int, Window, Cursor);
|
||||
extern int (*XIUndefineCursor_dylibloader_wrapper_xinput2)( Display*, int, Window);
|
||||
extern int (*XIChangeHierarchy_dylibloader_wrapper_xinput2)( Display*, XIAnyHierarchyChangeInfo*, int);
|
||||
extern int (*XISetClientPointer_dylibloader_wrapper_xinput2)( Display*, Window, int);
|
||||
extern int (*XIGetClientPointer_dylibloader_wrapper_xinput2)( Display*, Window, int*);
|
||||
extern int (*XISelectEvents_dylibloader_wrapper_xinput2)( Display*, Window, XIEventMask*, int);
|
||||
extern XIEventMask* (*XIGetSelectedEvents_dylibloader_wrapper_xinput2)( Display*, Window, int*);
|
||||
extern int (*XIQueryVersion_dylibloader_wrapper_xinput2)( Display*, int*, int*);
|
||||
extern XIDeviceInfo* (*XIQueryDevice_dylibloader_wrapper_xinput2)( Display*, int, int*);
|
||||
extern int (*XISetFocus_dylibloader_wrapper_xinput2)( Display*, int, Window, Time);
|
||||
extern int (*XIGetFocus_dylibloader_wrapper_xinput2)( Display*, int, Window*);
|
||||
extern int (*XIGrabDevice_dylibloader_wrapper_xinput2)( Display*, int, Window, Time, Cursor, int, int, int, XIEventMask*);
|
||||
extern int (*XIUngrabDevice_dylibloader_wrapper_xinput2)( Display*, int, Time);
|
||||
extern int (*XIAllowEvents_dylibloader_wrapper_xinput2)( Display*, int, int, Time);
|
||||
extern int (*XIAllowTouchEvents_dylibloader_wrapper_xinput2)( Display*, int, unsigned int, Window, int);
|
||||
extern int (*XIGrabButton_dylibloader_wrapper_xinput2)( Display*, int, int, Window, Cursor, int, int, int, XIEventMask*, int, XIGrabModifiers*);
|
||||
extern int (*XIGrabKeycode_dylibloader_wrapper_xinput2)( Display*, int, int, Window, int, int, int, XIEventMask*, int, XIGrabModifiers*);
|
||||
extern int (*XIGrabEnter_dylibloader_wrapper_xinput2)( Display*, int, Window, Cursor, int, int, int, XIEventMask*, int, XIGrabModifiers*);
|
||||
extern int (*XIGrabFocusIn_dylibloader_wrapper_xinput2)( Display*, int, Window, int, int, int, XIEventMask*, int, XIGrabModifiers*);
|
||||
extern int (*XIGrabTouchBegin_dylibloader_wrapper_xinput2)( Display*, int, Window, int, XIEventMask*, int, XIGrabModifiers*);
|
||||
extern int (*XIUngrabButton_dylibloader_wrapper_xinput2)( Display*, int, int, Window, int, XIGrabModifiers*);
|
||||
extern int (*XIUngrabKeycode_dylibloader_wrapper_xinput2)( Display*, int, int, Window, int, XIGrabModifiers*);
|
||||
extern int (*XIUngrabEnter_dylibloader_wrapper_xinput2)( Display*, int, Window, int, XIGrabModifiers*);
|
||||
extern int (*XIUngrabFocusIn_dylibloader_wrapper_xinput2)( Display*, int, Window, int, XIGrabModifiers*);
|
||||
extern int (*XIUngrabTouchBegin_dylibloader_wrapper_xinput2)( Display*, int, Window, int, XIGrabModifiers*);
|
||||
extern Atom* (*XIListProperties_dylibloader_wrapper_xinput2)( Display*, int, int*);
|
||||
extern void (*XIChangeProperty_dylibloader_wrapper_xinput2)( Display*, int, Atom, Atom, int, int, unsigned char*, int);
|
||||
extern void (*XIDeleteProperty_dylibloader_wrapper_xinput2)( Display*, int, Atom);
|
||||
extern int (*XIGetProperty_dylibloader_wrapper_xinput2)( Display*, int, Atom, long, long, int, Atom, Atom*, int*, unsigned long*, unsigned long*, unsigned char**);
|
||||
extern void (*XIBarrierReleasePointers_dylibloader_wrapper_xinput2)( Display*, XIBarrierReleasePointerInfo*, int);
|
||||
extern void (*XIBarrierReleasePointer_dylibloader_wrapper_xinput2)( Display*, int, PointerBarrier, BarrierEventID);
|
||||
extern void (*XIFreeDeviceInfo_dylibloader_wrapper_xinput2)( XIDeviceInfo*);
|
||||
int initialize_xinput2(int verbose);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
Reference in New Issue
Block a user