mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-04 06:38:47 +00:00
Merge pull request #4049 from IllusionMan1212/xrandr-xinput-xfixes
vendor/x11: added a few procedures for xrandr, xinput, and xfixes
This commit is contained in:
Vendored
+5
@@ -72,6 +72,11 @@ XkbAllEventsMask :: XkbEventMask {
|
|||||||
.ExtensionDeviceNotify,
|
.ExtensionDeviceNotify,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ---- X11/extensions/XI2.h ---------------------------------------------------------*/
|
||||||
|
|
||||||
|
XIAllDevices :: 0
|
||||||
|
XIAllMasterDevices :: 1
|
||||||
|
|
||||||
|
|
||||||
/* ---- X11/Xlib.h ---------------------------------------------------------*/
|
/* ---- X11/Xlib.h ---------------------------------------------------------*/
|
||||||
|
|
||||||
|
|||||||
Vendored
+41
-5
@@ -9,13 +9,49 @@ foreign xlib {
|
|||||||
foreign import xcursor "system:Xcursor"
|
foreign import xcursor "system:Xcursor"
|
||||||
@(default_calling_convention="c", link_prefix="X")
|
@(default_calling_convention="c", link_prefix="X")
|
||||||
foreign xcursor {
|
foreign xcursor {
|
||||||
cursorGetTheme :: proc(display: ^Display) -> cstring ---
|
cursorGetTheme :: proc(display: ^Display) -> cstring ---
|
||||||
cursorGetDefaultSize :: proc(display: ^Display) -> i32 ---
|
cursorGetDefaultSize :: proc(display: ^Display) -> i32 ---
|
||||||
cursorLibraryLoadImage :: proc(name: cstring, theme: cstring, size: i32) -> rawptr ---
|
cursorLibraryLoadCursor :: proc(display: ^Display, name: cstring) -> Cursor ---
|
||||||
cursorImageLoadCursor :: proc(display: ^Display, img: rawptr) -> Cursor ---
|
cursorLibraryLoadImage :: proc(name: cstring, theme: cstring, size: i32) -> rawptr ---
|
||||||
cursorImageDestroy :: proc(img: rawptr) ---
|
cursorImageLoadCursor :: proc(display: ^Display, img: rawptr) -> Cursor ---
|
||||||
|
cursorImageDestroy :: proc(img: rawptr) ---
|
||||||
}
|
}
|
||||||
|
|
||||||
|
foreign import xfixes "system:Xfixes"
|
||||||
|
@(default_calling_convention="c", link_prefix="XFixes")
|
||||||
|
foreign xfixes {
|
||||||
|
HideCursor :: proc(display: ^Display, window: Window) ---
|
||||||
|
ShowCursor :: proc(display: ^Display, window: Window) ---
|
||||||
|
}
|
||||||
|
|
||||||
|
foreign import xrandr "system:Xrandr"
|
||||||
|
@(default_calling_convention="c")
|
||||||
|
foreign xrandr {
|
||||||
|
XRRSizes :: proc(display: ^Display, screen: i32, nsizes: ^i32) -> [^]XRRScreenSize ---
|
||||||
|
XRRGetScreenResources :: proc(display: ^Display, window: Window) -> ^XRRScreenResources ---
|
||||||
|
XRRFreeScreenResources :: proc(resources: ^XRRScreenResources) ---
|
||||||
|
XRRGetOutputInfo :: proc(display: ^Display, resources: ^XRRScreenResources, output: RROutput) -> ^XRROutputInfo ---
|
||||||
|
XRRFreeOutputInfo :: proc(output_info: ^XRROutputInfo) ---
|
||||||
|
XRRGetCrtcInfo :: proc(display: ^Display, resources: ^XRRScreenResources, crtc: RRCrtc) -> ^XRRCrtcInfo ---
|
||||||
|
XRRFreeCrtcInfo :: proc(crtc_info: ^XRRCrtcInfo) ---
|
||||||
|
XRRGetMonitors :: proc(dpy: ^Display, window: Window, get_active: b32, nmonitors: ^i32) -> [^]XRRMonitorInfo ---
|
||||||
|
}
|
||||||
|
|
||||||
|
foreign import xinput "system:Xi"
|
||||||
|
foreign xinput {
|
||||||
|
XISelectEvents :: proc(display: ^Display, window: Window, masks: [^]XIEventMask, num_masks: i32) -> i32 ---
|
||||||
|
XIQueryVersion :: proc(display: ^Display, major: ^i32, minor: ^i32) -> Status ---
|
||||||
|
}
|
||||||
|
|
||||||
|
XISetMask :: proc(ptr: [^]u8, event: XIEventType) {
|
||||||
|
ptr[cast(i32)event >> 3] |= (1 << cast(uint)((cast(i32)event) & 7))
|
||||||
|
}
|
||||||
|
|
||||||
|
XIMaskIsSet :: proc(ptr: [^]u8, event: i32) -> bool {
|
||||||
|
return (ptr[event >> 3] & (1 << cast(uint)((event) & 7))) != 0
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* ---- X11/Xlib.h ---------------------------------------------------------*/
|
/* ---- X11/Xlib.h ---------------------------------------------------------*/
|
||||||
|
|
||||||
@(default_calling_convention="c", link_prefix="X")
|
@(default_calling_convention="c", link_prefix="X")
|
||||||
|
|||||||
Vendored
+188
@@ -26,6 +26,7 @@ GContext :: XID
|
|||||||
|
|
||||||
RRCrtc :: XID
|
RRCrtc :: XID
|
||||||
RROutput :: XID
|
RROutput :: XID
|
||||||
|
RRMode :: XID
|
||||||
|
|
||||||
KeyCode :: u8
|
KeyCode :: u8
|
||||||
|
|
||||||
@@ -2069,3 +2070,190 @@ XrmOptionDescRec :: struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
XrmOptionDescList :: [^]XrmOptionDescRec
|
XrmOptionDescList :: [^]XrmOptionDescRec
|
||||||
|
|
||||||
|
/* ---- X11/extensions/Xrandr.h ---------------------------------------------------------*/
|
||||||
|
|
||||||
|
XRRModeFlags :: bit_set[XRRModeBits;u64]
|
||||||
|
XRRModeBits :: enum u8 {
|
||||||
|
RR_HSyncPositive = 0,
|
||||||
|
RR_HSyncNegative = 1,
|
||||||
|
RR_VSyncPositive = 2,
|
||||||
|
RR_VSyncNegative = 3,
|
||||||
|
RR_Interlace = 4,
|
||||||
|
RR_DoubleScan = 5,
|
||||||
|
RR_CSync = 6,
|
||||||
|
RR_CSyncPositive = 7,
|
||||||
|
RR_CSyncNegative = 8,
|
||||||
|
RR_HSkewPresent = 9,
|
||||||
|
RR_BCast = 10,
|
||||||
|
RR_PixelMultiplex = 11,
|
||||||
|
RR_DoubleClock = 12,
|
||||||
|
RR_ClockDivideBy2 = 13,
|
||||||
|
}
|
||||||
|
|
||||||
|
Rotation :: enum u16 {
|
||||||
|
Rotate_0 = 1,
|
||||||
|
Rotate_90 = 2,
|
||||||
|
Rotate_180 = 4,
|
||||||
|
Rotate_270 = 8,
|
||||||
|
}
|
||||||
|
|
||||||
|
Connection :: enum u16 {
|
||||||
|
RR_Connected = 0,
|
||||||
|
RR_Disconnected = 1,
|
||||||
|
RR_UnknownConnection = 2,
|
||||||
|
}
|
||||||
|
|
||||||
|
SubpixelOrder :: enum u16 {
|
||||||
|
Unknown = 0,
|
||||||
|
HorizontalRGB = 1,
|
||||||
|
HorizontalBGR = 2,
|
||||||
|
VerticalRGB = 3,
|
||||||
|
VerticalBGR = 4,
|
||||||
|
None = 5,
|
||||||
|
}
|
||||||
|
|
||||||
|
XRRModeInfo :: struct {
|
||||||
|
id: RRMode,
|
||||||
|
width: u32,
|
||||||
|
height: u32,
|
||||||
|
dotClock: u64,
|
||||||
|
hSyncStart: u32,
|
||||||
|
hSyncEnd: u32,
|
||||||
|
hTotal: u32,
|
||||||
|
hSkew: u32,
|
||||||
|
vSyncStart: u32,
|
||||||
|
vSyncEnd: u32,
|
||||||
|
vTotal: u32,
|
||||||
|
name: cstring,
|
||||||
|
nameLength: u32,
|
||||||
|
modeFlags: XRRModeFlags,
|
||||||
|
}
|
||||||
|
|
||||||
|
XRRScreenSize :: struct {
|
||||||
|
width, height: i32,
|
||||||
|
mwidth, mheight: i32,
|
||||||
|
}
|
||||||
|
|
||||||
|
XRRScreenResources :: struct {
|
||||||
|
timestamp: Time,
|
||||||
|
configTimestamp: Time,
|
||||||
|
ncrtc: i32,
|
||||||
|
crtcs: [^]RRCrtc,
|
||||||
|
noutput: i32,
|
||||||
|
outputs: [^]RROutput,
|
||||||
|
nmode: i32,
|
||||||
|
modes: [^]XRRModeInfo,
|
||||||
|
}
|
||||||
|
|
||||||
|
XRROutputInfo :: struct {
|
||||||
|
timestamp: Time,
|
||||||
|
crtc: RRCrtc,
|
||||||
|
name: cstring,
|
||||||
|
nameLen: i32,
|
||||||
|
mm_width: u64,
|
||||||
|
mm_height: u64,
|
||||||
|
connection: Connection,
|
||||||
|
subpixel_order: SubpixelOrder,
|
||||||
|
ncrtc: i32,
|
||||||
|
crtcs: [^]RRCrtc,
|
||||||
|
nclone: i32,
|
||||||
|
clones: [^]RROutput,
|
||||||
|
nmode: i32,
|
||||||
|
npreferred: i32,
|
||||||
|
modes: [^]RRMode,
|
||||||
|
}
|
||||||
|
|
||||||
|
XRRCrtcInfo :: struct {
|
||||||
|
timestamp: Time,
|
||||||
|
x, y: i32,
|
||||||
|
width, height: u32,
|
||||||
|
mode: RRMode,
|
||||||
|
rotation: Rotation,
|
||||||
|
noutput: i32,
|
||||||
|
outputs: [^]RROutput,
|
||||||
|
rotations: Rotation,
|
||||||
|
npossible: i32,
|
||||||
|
possible: [^]RROutput,
|
||||||
|
}
|
||||||
|
|
||||||
|
XRRMonitorInfo :: struct {
|
||||||
|
name: Atom,
|
||||||
|
primary: b32,
|
||||||
|
automatic: b32,
|
||||||
|
noutput: i32,
|
||||||
|
x: i32,
|
||||||
|
y: i32,
|
||||||
|
width: i32,
|
||||||
|
height: i32,
|
||||||
|
mwidth: i32,
|
||||||
|
mheight: i32,
|
||||||
|
outputs: [^]RROutput,
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ---- X11/extensions/XInput2.h ---------------------------------------------------------*/
|
||||||
|
|
||||||
|
XIEventType :: enum i32 {
|
||||||
|
DeviceChanged = 1,
|
||||||
|
KeyPress,
|
||||||
|
KeyRelease,
|
||||||
|
ButtonPress,
|
||||||
|
ButtonRelease,
|
||||||
|
Motion,
|
||||||
|
Enter,
|
||||||
|
Leave,
|
||||||
|
FocusIn,
|
||||||
|
FocusOut,
|
||||||
|
HierarchyChanged,
|
||||||
|
Property,
|
||||||
|
RawKeyPress,
|
||||||
|
RawKeyRelease,
|
||||||
|
RawButtonPress,
|
||||||
|
RawButtonRelease,
|
||||||
|
RawMotion,
|
||||||
|
TouchBegin,
|
||||||
|
TouchUpdate,
|
||||||
|
TouchEnd,
|
||||||
|
TouchOwnership,
|
||||||
|
RawTouchBegin,
|
||||||
|
RawTouchUpdate,
|
||||||
|
RawTouchEnd,
|
||||||
|
BarrierHit,
|
||||||
|
BarrierLeave,
|
||||||
|
GesturePinchBegin,
|
||||||
|
GesturePinchUpdate,
|
||||||
|
GesturePinchEnd,
|
||||||
|
GestureSwipeBegin,
|
||||||
|
GestureSwipeUpdate,
|
||||||
|
GestureSwipeEnd,
|
||||||
|
LastEvent = GestureSwipeEnd,
|
||||||
|
}
|
||||||
|
|
||||||
|
XIEventMask :: struct {
|
||||||
|
deviceid: i32,
|
||||||
|
mask_len: i32,
|
||||||
|
mask: [^]u8,
|
||||||
|
}
|
||||||
|
|
||||||
|
XIValuatorState :: struct {
|
||||||
|
mask_len: i32,
|
||||||
|
mask: [^]u8,
|
||||||
|
values: [^]f64,
|
||||||
|
}
|
||||||
|
|
||||||
|
XIRawEvent :: struct {
|
||||||
|
type: EventType,
|
||||||
|
serial: u64,
|
||||||
|
send_event: b32,
|
||||||
|
display: ^Display,
|
||||||
|
extension: i32,
|
||||||
|
evtype: XIEventType,
|
||||||
|
time: Time,
|
||||||
|
deviceid: i32,
|
||||||
|
sourceid: i32,
|
||||||
|
detail: i32,
|
||||||
|
flags: i32,
|
||||||
|
valuators: XIValuatorState,
|
||||||
|
raw_values: [^]f64,
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user