Started adding Xrandr functions.
This commit is contained in:
parent
db0e269791
commit
112732353d
1 changed files with 71 additions and 2 deletions
|
@ -32,11 +32,16 @@ namespace OpenTK.Platform.X11
|
|||
using Display = System.IntPtr;
|
||||
using XPointer = System.IntPtr;
|
||||
|
||||
// Xrandr
|
||||
using Bool = System.Boolean;
|
||||
using XRRScreenConfiguration = System.IntPtr; // opaque datatype
|
||||
using Rotation = System.UInt16;
|
||||
|
||||
#endregion
|
||||
|
||||
#region public static class API
|
||||
|
||||
public static class API
|
||||
internal static class API
|
||||
{
|
||||
// Prevent BeforeFieldInit optimization.
|
||||
static API() { }
|
||||
|
@ -1105,7 +1110,7 @@ XF86VidModeGetGammaRampSize(
|
|||
|
||||
#endregion
|
||||
|
||||
public static partial class Functions
|
||||
internal static partial class Functions
|
||||
{
|
||||
#region XCreateWindow
|
||||
|
||||
|
@ -1188,6 +1193,70 @@ XF86VidModeGetGammaRampSize(
|
|||
public static extern void XPutBackEvent(IntPtr display, ref XEvent @event);
|
||||
|
||||
#endregion
|
||||
|
||||
#region Xrandr
|
||||
|
||||
const string XrandrLibrary = "libxrandr.so.2";
|
||||
|
||||
[DllImport(XrandrLibrary)]
|
||||
public static extern Bool XRRQueryExtension(Display dpy, ref int event_basep, ref int error_basep);
|
||||
|
||||
[DllImport(XrandrLibrary)]
|
||||
public static extern Status XRRQueryVersion(Display dpy, ref int major_versionp, ref int minor_versionp);
|
||||
|
||||
[DllImport(XrandrLibrary)]
|
||||
public static extern XRRScreenConfiguration XRRGetScreenInfo(Display dpy, Drawable draw);
|
||||
|
||||
[DllImport(XrandrLibrary)]
|
||||
public static extern void XRRFreeScreenConfigInfo(XRRScreenConfiguration config);
|
||||
|
||||
//[DllImport(XrandrLibrary)]
|
||||
//public static extern Status XRRSetScreenConfig(Display dpy, XRRScreenConfiguration config,
|
||||
// Drawable draw, int size_index, Rotation rotation, Time timestamp);
|
||||
|
||||
//Status XRRSetScreenConfigAndRate(Display *dpy, XRRScreenConfiguration *config,
|
||||
// Drawable draw, int size_index, Rotation rotation, short rate, Time timestamp);
|
||||
|
||||
//Rotation XRRConfigRotations(XRRScreenConfiguration *config, Rotation *current_rotation);
|
||||
|
||||
//Time XRRConfigTimes(XRRScreenConfiguration *config, Time *config_timestamp);
|
||||
|
||||
//XRRScreenSize *XRRConfigSizes(XRRScreenConfiguration *config, int *nsizes);
|
||||
|
||||
//short *XRRConfigRates(XRRScreenConfiguration *config, int size_index, int *nrates);
|
||||
|
||||
//SizeID XRRConfigCurrentConfiguration(XRRScreenConfiguration *config, Rotation *rotation);
|
||||
|
||||
//short XRRConfigCurrentRate(XRRScreenConfiguration *config);
|
||||
|
||||
//int XRRRootToScreen(Display *dpy, Window root);
|
||||
|
||||
//XRRScreenConfiguration *XRRScreenConfig(Display *dpy, int screen);
|
||||
|
||||
//XRRScreenConfiguration *XRRConfig(Screen *screen);
|
||||
|
||||
//void XRRSelectInput(Display *dpy, Window window, int mask);
|
||||
|
||||
/*
|
||||
* intended to take RRScreenChangeNotify, or
|
||||
* ConfigureNotify (on the root window)
|
||||
* returns 1 if it is an event type it understands, 0 if not
|
||||
*/
|
||||
//int XRRUpdateConfiguration(XEvent *event^);
|
||||
|
||||
/*
|
||||
* the following are always safe to call, even if RandR is
|
||||
* not implemented on a screen
|
||||
*/
|
||||
//Rotation XRRRotations(Display *dpy, int screen, Rotation *current_rotation);
|
||||
|
||||
//XRRScreenSize *XRRSizes(Display *dpy, int screen, int *nsizes);
|
||||
|
||||
//short *XRRRates(Display *dpy, int screen, int size_index, int *nrates);
|
||||
|
||||
//Time XRRTimes(Display *dpy, int screen, Time *config_timestamp);
|
||||
|
||||
#endregion
|
||||
}
|
||||
/*
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
|
|
Loading…
Reference in a new issue