vidmode: move to a separate library of its own
XVidMode extension might be useful to non hardware servers as well (e.g.
Xwayand) so that applications that rely on it (e.g. lot of older games)
can at least have read access to XVidMode.
But the implementation is very XFree86 centric, so the idea is to add
a bunch of vfunc that other non-XFree86 servers can hook up into to
provide a similar functionality.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=87806
Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
(cherry picked from commit f175cf45ae
)
This commit is contained in:
parent
860669b186
commit
349b71a37e
|
@ -1,4 +1,4 @@
|
|||
noinst_LTLIBRARIES = libXext.la libXextdpmsstubs.la
|
||||
noinst_LTLIBRARIES = libXext.la libXextdpmsstubs.la libXvidmode.la
|
||||
|
||||
AM_CFLAGS = $(DIX_CFLAGS)
|
||||
|
||||
|
@ -6,7 +6,7 @@ if XORG
|
|||
sdk_HEADERS = xvdix.h xvmcext.h geext.h geint.h shmint.h syncsdk.h
|
||||
endif
|
||||
|
||||
# Sources always included in libXextbuiltin.la & libXext.la
|
||||
# Sources always included in libXextbuiltin.la, libXext.la
|
||||
BUILTIN_SRCS = \
|
||||
bigreq.c \
|
||||
geext.c \
|
||||
|
@ -98,6 +98,9 @@ libXext_la_LIBADD = $(BUILTIN_LIBS)
|
|||
|
||||
libXextdpmsstubs_la_SOURCES = dpmsstubs.c
|
||||
|
||||
# XVidMode extension
|
||||
libXvidmode_la_SOURCES = vidmode.c
|
||||
|
||||
EXTRA_DIST = \
|
||||
$(MITSHM_SRCS) \
|
||||
$(XV_SRCS) \
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -72,7 +72,9 @@ LOCAL_LIBS = \
|
|||
$(DRI3_LIB) \
|
||||
$(top_builddir)/miext/sync/libsync.la \
|
||||
$(top_builddir)/mi/libmi.la \
|
||||
$(top_builddir)/os/libos.la
|
||||
$(top_builddir)/os/libos.la \
|
||||
$(top_builddir)/Xext/libXvidmode.la
|
||||
|
||||
Xorg_LDADD = \
|
||||
$(LOCAL_LIBS) \
|
||||
$(XORG_SYS_LIBS) \
|
||||
|
|
|
@ -14,10 +14,6 @@ XVSOURCES = xf86xv.c xf86xvmc.c
|
|||
XVSDKINCS = xf86xv.h xf86xvmc.h xf86xvpriv.h
|
||||
endif
|
||||
|
||||
if XF86VIDMODE
|
||||
XF86VMODESOURCES = xf86vmode.c
|
||||
endif
|
||||
|
||||
if DGA
|
||||
DGASOURCES = xf86DGA.c
|
||||
DGA_SDK = dgaproc.h
|
||||
|
|
|
@ -1,78 +0,0 @@
|
|||
|
||||
/* Prototypes for DGA functions that the DDX must provide */
|
||||
|
||||
#ifdef HAVE_DIX_CONFIG_H
|
||||
#include <dix-config.h>
|
||||
#endif
|
||||
|
||||
#ifndef _VIDMODEPROC_H_
|
||||
#define _VIDMODEPROC_H_
|
||||
|
||||
typedef enum {
|
||||
VIDMODE_H_DISPLAY,
|
||||
VIDMODE_H_SYNCSTART,
|
||||
VIDMODE_H_SYNCEND,
|
||||
VIDMODE_H_TOTAL,
|
||||
VIDMODE_H_SKEW,
|
||||
VIDMODE_V_DISPLAY,
|
||||
VIDMODE_V_SYNCSTART,
|
||||
VIDMODE_V_SYNCEND,
|
||||
VIDMODE_V_TOTAL,
|
||||
VIDMODE_FLAGS,
|
||||
VIDMODE_CLOCK
|
||||
} VidModeSelectMode;
|
||||
|
||||
typedef enum {
|
||||
VIDMODE_MON_VENDOR,
|
||||
VIDMODE_MON_MODEL,
|
||||
VIDMODE_MON_NHSYNC,
|
||||
VIDMODE_MON_NVREFRESH,
|
||||
VIDMODE_MON_HSYNC_LO,
|
||||
VIDMODE_MON_HSYNC_HI,
|
||||
VIDMODE_MON_VREFRESH_LO,
|
||||
VIDMODE_MON_VREFRESH_HI
|
||||
} VidModeSelectMonitor;
|
||||
|
||||
typedef union {
|
||||
const void *ptr;
|
||||
int i;
|
||||
float f;
|
||||
} vidMonitorValue;
|
||||
|
||||
extern Bool xf86VidModeExtensionInit(ScreenPtr pScreen);
|
||||
|
||||
extern Bool xf86VidModeGetCurrentModeline(ScreenPtr pScreen, DisplayModePtr *mode,
|
||||
int *dotClock);
|
||||
extern Bool xf86VidModeGetFirstModeline(ScreenPtr pScreen, DisplayModePtr *mode,
|
||||
int *dotClock);
|
||||
extern Bool xf86VidModeGetNextModeline(ScreenPtr pScreen, DisplayModePtr *mode,
|
||||
int *dotClock);
|
||||
extern Bool xf86VidModeDeleteModeline(ScreenPtr pScreen, DisplayModePtr mode);
|
||||
extern Bool xf86VidModeZoomViewport(ScreenPtr pScreen, int zoom);
|
||||
extern Bool xf86VidModeGetViewPort(ScreenPtr pScreen, int *x, int *y);
|
||||
extern Bool xf86VidModeSetViewPort(ScreenPtr pScreen, int x, int y);
|
||||
extern Bool xf86VidModeSwitchMode(ScreenPtr pScreen, DisplayModePtr mode);
|
||||
extern Bool xf86VidModeLockZoom(ScreenPtr pScreen, Bool lock);
|
||||
extern int xf86VidModeGetNumOfClocks(ScreenPtr pScreen, Bool *progClock);
|
||||
extern Bool xf86VidModeGetClocks(ScreenPtr pScreen, int *Clocks);
|
||||
extern ModeStatus xf86VidModeCheckModeForMonitor(ScreenPtr pScreen,
|
||||
DisplayModePtr mode);
|
||||
extern ModeStatus xf86VidModeCheckModeForDriver(ScreenPtr pScreen,
|
||||
DisplayModePtr mode);
|
||||
extern void xf86VidModeSetCrtcForMode(ScreenPtr pScreen, DisplayModePtr mode);
|
||||
extern Bool xf86VidModeAddModeline(ScreenPtr pScreen, DisplayModePtr mode);
|
||||
extern int xf86VidModeGetDotClock(ScreenPtr pScreen, int Clock);
|
||||
extern int xf86VidModeGetNumOfModes(ScreenPtr pScreen);
|
||||
extern Bool xf86VidModeSetGamma(ScreenPtr pScreen, float red, float green,
|
||||
float blue);
|
||||
extern Bool xf86VidModeGetGamma(ScreenPtr pScreen, float *red, float *green,
|
||||
float *blue);
|
||||
extern vidMonitorValue xf86VidModeGetMonitorValue(ScreenPtr pScreen,
|
||||
int valtyp, int indx);
|
||||
extern Bool xf86VidModeSetGammaRamp(ScreenPtr, int, CARD16 *, CARD16 *,
|
||||
CARD16 *);
|
||||
extern Bool xf86VidModeGetGammaRamp(ScreenPtr, int, CARD16 *, CARD16 *,
|
||||
CARD16 *);
|
||||
extern int xf86VidModeGetGammaRampSize(ScreenPtr pScreen);
|
||||
|
||||
#endif
|
|
@ -28,6 +28,7 @@
|
|||
#endif
|
||||
|
||||
#include "extension.h"
|
||||
#include "extinit.h"
|
||||
#include "globals.h"
|
||||
|
||||
#include "xf86.h"
|
||||
|
@ -47,7 +48,7 @@
|
|||
|
||||
#ifdef XF86VIDMODE
|
||||
#include <X11/extensions/xf86vmproto.h>
|
||||
#include "vidmodeproc.h"
|
||||
#include "vidmodestr.h"
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
|
|
@ -72,6 +72,7 @@
|
|||
#include "mipointer.h"
|
||||
#include <X11/extensions/XI.h>
|
||||
#include <X11/extensions/XIproto.h>
|
||||
#include "xf86Extensions.h"
|
||||
#include "xf86DDC.h"
|
||||
#include "xf86Xinput.h"
|
||||
#include "xf86InPriv.h"
|
||||
|
|
|
@ -115,15 +115,6 @@ typedef struct {
|
|||
} DPMSRec, *DPMSPtr;
|
||||
#endif
|
||||
|
||||
#ifdef XF86VIDMODE
|
||||
/* Private info for Video Mode Extentsion */
|
||||
typedef struct {
|
||||
DisplayModePtr First;
|
||||
DisplayModePtr Next;
|
||||
int Flags;
|
||||
} VidModeRec, *VidModePtr;
|
||||
#endif
|
||||
|
||||
/* Information for root window properties. */
|
||||
typedef struct _RootWinProp {
|
||||
struct _RootWinProp *next;
|
||||
|
|
|
@ -42,29 +42,18 @@
|
|||
#include "os.h"
|
||||
#include "xf86.h"
|
||||
#include "xf86Priv.h"
|
||||
#include "extinit.h"
|
||||
|
||||
#ifdef XF86VIDMODE
|
||||
#include "vidmodeproc.h"
|
||||
#include "vidmodestr.h"
|
||||
#include "xf86Privstr.h"
|
||||
#include "xf86Extensions.h"
|
||||
#include "xf86cmap.h"
|
||||
|
||||
static DevPrivateKeyRec VidModeKeyRec;
|
||||
#define VidModeKey (&VidModeKeyRec)
|
||||
|
||||
#define VMPTR(p) ((VidModePtr)dixLookupPrivate(&(p)->devPrivates, VidModeKey))
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef XF86VIDMODE
|
||||
|
||||
static Bool
|
||||
xf86VidModeAvailable(ScreenPtr pScreen)
|
||||
{
|
||||
if (pScreen == NULL) {
|
||||
DebugF("pScreen == NULL\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (VMPTR(pScreen))
|
||||
if (VidModeGetPtr(pScreen))
|
||||
return TRUE;
|
||||
else {
|
||||
DebugF("pVidMode == NULL\n");
|
||||
|
@ -72,7 +61,7 @@ xf86VidModeAvailable(ScreenPtr pScreen)
|
|||
}
|
||||
}
|
||||
|
||||
vidMonitorValue
|
||||
static vidMonitorValue
|
||||
xf86VidModeGetMonitorValue(ScreenPtr pScreen, int valtyp, int indx)
|
||||
{
|
||||
vidMonitorValue ret = { NULL, };
|
||||
|
@ -114,7 +103,7 @@ xf86VidModeGetMonitorValue(ScreenPtr pScreen, int valtyp, int indx)
|
|||
return ret;
|
||||
}
|
||||
|
||||
Bool
|
||||
static Bool
|
||||
xf86VidModeGetCurrentModeline(ScreenPtr pScreen, DisplayModePtr *mode, int *dotClock)
|
||||
{
|
||||
ScrnInfoPtr pScrn;
|
||||
|
@ -133,7 +122,7 @@ xf86VidModeGetCurrentModeline(ScreenPtr pScreen, DisplayModePtr *mode, int *dotC
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
xf86VidModeGetDotClock(ScreenPtr pScreen, int Clock)
|
||||
{
|
||||
ScrnInfoPtr pScrn;
|
||||
|
@ -148,7 +137,7 @@ xf86VidModeGetDotClock(ScreenPtr pScreen, int Clock)
|
|||
return pScrn->clock[Clock];
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
xf86VidModeGetNumOfClocks(ScreenPtr pScreen, Bool *progClock)
|
||||
{
|
||||
ScrnInfoPtr pScrn;
|
||||
|
@ -167,7 +156,7 @@ xf86VidModeGetNumOfClocks(ScreenPtr pScreen, Bool *progClock)
|
|||
}
|
||||
}
|
||||
|
||||
Bool
|
||||
static Bool
|
||||
xf86VidModeGetClocks(ScreenPtr pScreen, int *Clocks)
|
||||
{
|
||||
ScrnInfoPtr pScrn;
|
||||
|
@ -187,7 +176,7 @@ xf86VidModeGetClocks(ScreenPtr pScreen, int *Clocks)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
Bool
|
||||
static Bool
|
||||
xf86VidModeGetNextModeline(ScreenPtr pScreen, DisplayModePtr *mode, int *dotClock)
|
||||
{
|
||||
VidModePtr pVidMode;
|
||||
|
@ -196,7 +185,7 @@ xf86VidModeGetNextModeline(ScreenPtr pScreen, DisplayModePtr *mode, int *dotCloc
|
|||
if (!xf86VidModeAvailable(pScreen))
|
||||
return FALSE;
|
||||
|
||||
pVidMode = VMPTR(pScreen);
|
||||
pVidMode = VidModeGetPtr(pScreen);
|
||||
|
||||
for (p = pVidMode->Next; p != NULL && p != pVidMode->First; p = p->next) {
|
||||
if (p->status == MODE_OK) {
|
||||
|
@ -210,7 +199,7 @@ xf86VidModeGetNextModeline(ScreenPtr pScreen, DisplayModePtr *mode, int *dotCloc
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
Bool
|
||||
static Bool
|
||||
xf86VidModeGetFirstModeline(ScreenPtr pScreen, DisplayModePtr *mode, int *dotClock)
|
||||
{
|
||||
ScrnInfoPtr pScrn;
|
||||
|
@ -223,7 +212,7 @@ xf86VidModeGetFirstModeline(ScreenPtr pScreen, DisplayModePtr *mode, int *dotClo
|
|||
if (pScrn->modes == NULL)
|
||||
return FALSE;
|
||||
|
||||
pVidMode = VMPTR(pScreen);
|
||||
pVidMode = VidModeGetPtr(pScreen);
|
||||
pVidMode->First = pScrn->modes;
|
||||
pVidMode->Next = pVidMode->First->next;
|
||||
|
||||
|
@ -236,7 +225,7 @@ xf86VidModeGetFirstModeline(ScreenPtr pScreen, DisplayModePtr *mode, int *dotClo
|
|||
return xf86VidModeGetNextModeline(pScreen, mode, dotClock);
|
||||
}
|
||||
|
||||
Bool
|
||||
static Bool
|
||||
xf86VidModeDeleteModeline(ScreenPtr pScreen, DisplayModePtr mode)
|
||||
{
|
||||
ScrnInfoPtr pScrn;
|
||||
|
@ -249,7 +238,7 @@ xf86VidModeDeleteModeline(ScreenPtr pScreen, DisplayModePtr mode)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
Bool
|
||||
static Bool
|
||||
xf86VidModeZoomViewport(ScreenPtr pScreen, int zoom)
|
||||
{
|
||||
if (!xf86VidModeAvailable(pScreen))
|
||||
|
@ -259,7 +248,7 @@ xf86VidModeZoomViewport(ScreenPtr pScreen, int zoom)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
Bool
|
||||
static Bool
|
||||
xf86VidModeSetViewPort(ScreenPtr pScreen, int x, int y)
|
||||
{
|
||||
ScrnInfoPtr pScrn;
|
||||
|
@ -280,7 +269,7 @@ xf86VidModeSetViewPort(ScreenPtr pScreen, int x, int y)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
Bool
|
||||
static Bool
|
||||
xf86VidModeGetViewPort(ScreenPtr pScreen, int *x, int *y)
|
||||
{
|
||||
ScrnInfoPtr pScrn;
|
||||
|
@ -294,7 +283,7 @@ xf86VidModeGetViewPort(ScreenPtr pScreen, int *x, int *y)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
Bool
|
||||
static Bool
|
||||
xf86VidModeSwitchMode(ScreenPtr pScreen, DisplayModePtr mode)
|
||||
{
|
||||
ScrnInfoPtr pScrn;
|
||||
|
@ -316,7 +305,7 @@ xf86VidModeSwitchMode(ScreenPtr pScreen, DisplayModePtr mode)
|
|||
return retval;
|
||||
}
|
||||
|
||||
Bool
|
||||
static Bool
|
||||
xf86VidModeLockZoom(ScreenPtr pScreen, Bool lock)
|
||||
{
|
||||
if (!xf86VidModeAvailable(pScreen))
|
||||
|
@ -329,7 +318,7 @@ xf86VidModeLockZoom(ScreenPtr pScreen, Bool lock)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
ModeStatus
|
||||
static ModeStatus
|
||||
xf86VidModeCheckModeForMonitor(ScreenPtr pScreen, DisplayModePtr mode)
|
||||
{
|
||||
ScrnInfoPtr pScrn;
|
||||
|
@ -342,7 +331,7 @@ xf86VidModeCheckModeForMonitor(ScreenPtr pScreen, DisplayModePtr mode)
|
|||
return xf86CheckModeForMonitor(mode, pScrn->monitor);
|
||||
}
|
||||
|
||||
ModeStatus
|
||||
static ModeStatus
|
||||
xf86VidModeCheckModeForDriver(ScreenPtr pScreen, DisplayModePtr mode)
|
||||
{
|
||||
ScrnInfoPtr pScrn;
|
||||
|
@ -355,7 +344,7 @@ xf86VidModeCheckModeForDriver(ScreenPtr pScreen, DisplayModePtr mode)
|
|||
return xf86CheckModeForDriver(pScrn, mode, 0);
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
xf86VidModeSetCrtcForMode(ScreenPtr pScreen, DisplayModePtr mode)
|
||||
{
|
||||
ScrnInfoPtr pScrn;
|
||||
|
@ -374,7 +363,7 @@ xf86VidModeSetCrtcForMode(ScreenPtr pScreen, DisplayModePtr mode)
|
|||
return;
|
||||
}
|
||||
|
||||
Bool
|
||||
static Bool
|
||||
xf86VidModeAddModeline(ScreenPtr pScreen, DisplayModePtr mode)
|
||||
{
|
||||
ScrnInfoPtr pScrn;
|
||||
|
@ -395,7 +384,7 @@ xf86VidModeAddModeline(ScreenPtr pScreen, DisplayModePtr mode)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
xf86VidModeGetNumOfModes(ScreenPtr pScreen)
|
||||
{
|
||||
DisplayModePtr mode = NULL;
|
||||
|
@ -411,7 +400,7 @@ xf86VidModeGetNumOfModes(ScreenPtr pScreen)
|
|||
} while (TRUE);
|
||||
}
|
||||
|
||||
Bool
|
||||
static Bool
|
||||
xf86VidModeSetGamma(ScreenPtr pScreen, float red, float green, float blue)
|
||||
{
|
||||
Gamma gamma;
|
||||
|
@ -428,7 +417,7 @@ xf86VidModeSetGamma(ScreenPtr pScreen, float red, float green, float blue)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
Bool
|
||||
static Bool
|
||||
xf86VidModeGetGamma(ScreenPtr pScreen, float *red, float *green, float *blue)
|
||||
{
|
||||
ScrnInfoPtr pScrn;
|
||||
|
@ -443,7 +432,7 @@ xf86VidModeGetGamma(ScreenPtr pScreen, float *red, float *green, float *blue)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
Bool
|
||||
static Bool
|
||||
xf86VidModeSetGammaRamp(ScreenPtr pScreen, int size, CARD16 *r, CARD16 *g, CARD16 *b)
|
||||
{
|
||||
if (!xf86VidModeAvailable(pScreen))
|
||||
|
@ -453,7 +442,7 @@ xf86VidModeSetGammaRamp(ScreenPtr pScreen, int size, CARD16 *r, CARD16 *g, CARD1
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
Bool
|
||||
static Bool
|
||||
xf86VidModeGetGammaRamp(ScreenPtr pScreen, int size, CARD16 *r, CARD16 *g, CARD16 *b)
|
||||
{
|
||||
if (!xf86VidModeAvailable(pScreen))
|
||||
|
@ -463,7 +452,7 @@ xf86VidModeGetGammaRamp(ScreenPtr pScreen, int size, CARD16 *r, CARD16 *g, CARD1
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
int
|
||||
static int
|
||||
xf86VidModeGetGammaRampSize(ScreenPtr pScreen)
|
||||
{
|
||||
if (!xf86VidModeAvailable(pScreen))
|
||||
|
@ -472,12 +461,9 @@ xf86VidModeGetGammaRampSize(ScreenPtr pScreen)
|
|||
return xf86GetGammaRampSize(pScreen);
|
||||
}
|
||||
|
||||
#endif /* XF86VIDMODE */
|
||||
|
||||
Bool
|
||||
xf86VidModeExtensionInit(ScreenPtr pScreen)
|
||||
static Bool
|
||||
xf86VidModeInit(ScreenPtr pScreen)
|
||||
{
|
||||
#ifdef XF86VIDMODE
|
||||
VidModePtr pVidMode;
|
||||
|
||||
if (!xf86GetVidModeEnabled()) {
|
||||
|
@ -485,18 +471,61 @@ xf86VidModeExtensionInit(ScreenPtr pScreen)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
if (!dixRegisterPrivateKey(&VidModeKeyRec, PRIVATE_SCREEN, sizeof(VidModeRec)))
|
||||
pVidMode = VidModeInit(pScreen);
|
||||
if (!pVidMode)
|
||||
return FALSE;
|
||||
|
||||
pVidMode = VMPTR(pScreen);
|
||||
|
||||
pVidMode->Flags = 0;
|
||||
pVidMode->Next = NULL;
|
||||
|
||||
pVidMode->GetMonitorValue = xf86VidModeGetMonitorValue;
|
||||
pVidMode->GetCurrentModeline = xf86VidModeGetCurrentModeline;
|
||||
pVidMode->GetFirstModeline = xf86VidModeGetFirstModeline;
|
||||
pVidMode->GetNextModeline = xf86VidModeGetNextModeline;
|
||||
pVidMode->DeleteModeline = xf86VidModeDeleteModeline;
|
||||
pVidMode->ZoomViewport = xf86VidModeZoomViewport;
|
||||
pVidMode->GetViewPort = xf86VidModeGetViewPort;
|
||||
pVidMode->SetViewPort = xf86VidModeSetViewPort;
|
||||
pVidMode->SwitchMode = xf86VidModeSwitchMode;
|
||||
pVidMode->LockZoom = xf86VidModeLockZoom;
|
||||
pVidMode->GetNumOfClocks = xf86VidModeGetNumOfClocks;
|
||||
pVidMode->GetClocks = xf86VidModeGetClocks;
|
||||
pVidMode->CheckModeForMonitor = xf86VidModeCheckModeForMonitor;
|
||||
pVidMode->CheckModeForDriver = xf86VidModeCheckModeForDriver;
|
||||
pVidMode->SetCrtcForMode = xf86VidModeSetCrtcForMode;
|
||||
pVidMode->AddModeline = xf86VidModeAddModeline;
|
||||
pVidMode->GetDotClock = xf86VidModeGetDotClock;
|
||||
pVidMode->GetNumOfModes = xf86VidModeGetNumOfModes;
|
||||
pVidMode->SetGamma = xf86VidModeSetGamma;
|
||||
pVidMode->GetGamma = xf86VidModeGetGamma;
|
||||
pVidMode->SetGammaRamp = xf86VidModeSetGammaRamp;
|
||||
pVidMode->GetGammaRamp = xf86VidModeGetGammaRamp;
|
||||
pVidMode->GetGammaRampSize = xf86VidModeGetGammaRampSize;
|
||||
|
||||
return TRUE;
|
||||
#else
|
||||
DebugF("no vidmode extension\n");
|
||||
return FALSE;
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
XFree86VidModeExtensionInit(void)
|
||||
{
|
||||
int i;
|
||||
Bool enabled = FALSE;
|
||||
|
||||
DebugF("XFree86VidModeExtensionInit");
|
||||
|
||||
/* This means that the DDX doesn't want the vidmode extension enabled */
|
||||
if (!xf86GetVidModeEnabled())
|
||||
return;
|
||||
|
||||
for (i = 0; i < screenInfo.numScreens; i++) {
|
||||
if (xf86VidModeInit (screenInfo.screens[i]))
|
||||
enabled = TRUE;
|
||||
}
|
||||
/* This means that the DDX doesn't want the vidmode extension enabled */
|
||||
if (!enabled)
|
||||
return;
|
||||
|
||||
VidModeAddExtension(xf86GetVidModeAllowNonLocal());
|
||||
}
|
||||
|
||||
#endif /* XF86VIDMODE */
|
||||
|
|
|
@ -76,4 +76,5 @@ EXTRA_DIST = \
|
|||
swaprep.h \
|
||||
swapreq.h \
|
||||
systemd-logind.h \
|
||||
vidmodestr.h \
|
||||
xsha1.h
|
||||
|
|
|
@ -0,0 +1,140 @@
|
|||
#ifdef HAVE_DIX_CONFIG_H
|
||||
#include <dix-config.h>
|
||||
#endif
|
||||
|
||||
#ifndef _VIDMODEPROC_H_
|
||||
#define _VIDMODEPROC_H_
|
||||
|
||||
#include "displaymode.h"
|
||||
|
||||
typedef enum {
|
||||
VIDMODE_H_DISPLAY,
|
||||
VIDMODE_H_SYNCSTART,
|
||||
VIDMODE_H_SYNCEND,
|
||||
VIDMODE_H_TOTAL,
|
||||
VIDMODE_H_SKEW,
|
||||
VIDMODE_V_DISPLAY,
|
||||
VIDMODE_V_SYNCSTART,
|
||||
VIDMODE_V_SYNCEND,
|
||||
VIDMODE_V_TOTAL,
|
||||
VIDMODE_FLAGS,
|
||||
VIDMODE_CLOCK
|
||||
} VidModeSelectMode;
|
||||
|
||||
typedef enum {
|
||||
VIDMODE_MON_VENDOR,
|
||||
VIDMODE_MON_MODEL,
|
||||
VIDMODE_MON_NHSYNC,
|
||||
VIDMODE_MON_NVREFRESH,
|
||||
VIDMODE_MON_HSYNC_LO,
|
||||
VIDMODE_MON_HSYNC_HI,
|
||||
VIDMODE_MON_VREFRESH_LO,
|
||||
VIDMODE_MON_VREFRESH_HI
|
||||
} VidModeSelectMonitor;
|
||||
|
||||
typedef union {
|
||||
const void *ptr;
|
||||
int i;
|
||||
float f;
|
||||
} vidMonitorValue;
|
||||
|
||||
typedef Bool (*VidModeExtensionInitProcPtr) (ScreenPtr pScreen);
|
||||
typedef vidMonitorValue (*VidModeGetMonitorValueProcPtr) (ScreenPtr pScreen,
|
||||
int valtyp,
|
||||
int indx);
|
||||
typedef Bool (*VidModeGetEnabledProcPtr) (void);
|
||||
typedef Bool (*VidModeGetAllowNonLocalProcPtr) (void);
|
||||
typedef Bool (*VidModeGetCurrentModelineProcPtr) (ScreenPtr pScreen,
|
||||
DisplayModePtr *mode,
|
||||
int *dotClock);
|
||||
typedef Bool (*VidModeGetFirstModelineProcPtr) (ScreenPtr pScreen,
|
||||
DisplayModePtr *mode,
|
||||
int *dotClock);
|
||||
typedef Bool (*VidModeGetNextModelineProcPtr) (ScreenPtr pScreen,
|
||||
DisplayModePtr *mode,
|
||||
int *dotClock);
|
||||
typedef Bool (*VidModeDeleteModelineProcPtr) (ScreenPtr pScreen,
|
||||
DisplayModePtr mode);
|
||||
typedef Bool (*VidModeZoomViewportProcPtr) (ScreenPtr pScreen,
|
||||
int zoom);
|
||||
typedef Bool (*VidModeGetViewPortProcPtr) (ScreenPtr pScreen,
|
||||
int *x,
|
||||
int *y);
|
||||
typedef Bool (*VidModeSetViewPortProcPtr) (ScreenPtr pScreen,
|
||||
int x,
|
||||
int y);
|
||||
typedef Bool (*VidModeSwitchModeProcPtr) (ScreenPtr pScreen,
|
||||
DisplayModePtr mode);
|
||||
typedef Bool (*VidModeLockZoomProcPtr) (ScreenPtr pScreen,
|
||||
Bool lock);
|
||||
typedef int (*VidModeGetNumOfClocksProcPtr) (ScreenPtr pScreen,
|
||||
Bool *progClock);
|
||||
typedef Bool (*VidModeGetClocksProcPtr) (ScreenPtr pScreen,
|
||||
int *Clocks);
|
||||
typedef ModeStatus (*VidModeCheckModeForMonitorProcPtr) (ScreenPtr pScreen,
|
||||
DisplayModePtr mode);
|
||||
typedef ModeStatus (*VidModeCheckModeForDriverProcPtr) (ScreenPtr pScreen,
|
||||
DisplayModePtr mode);
|
||||
typedef void (*VidModeSetCrtcForModeProcPtr) (ScreenPtr pScreen,
|
||||
DisplayModePtr mode);
|
||||
typedef Bool (*VidModeAddModelineProcPtr) (ScreenPtr pScreen,
|
||||
DisplayModePtr mode);
|
||||
typedef int (*VidModeGetDotClockProcPtr) (ScreenPtr pScreen,
|
||||
int Clock);
|
||||
typedef int (*VidModeGetNumOfModesProcPtr) (ScreenPtr pScreen);
|
||||
typedef Bool (*VidModeSetGammaProcPtr) (ScreenPtr pScreen,
|
||||
float red,
|
||||
float green,
|
||||
float blue);
|
||||
typedef Bool (*VidModeGetGammaProcPtr) (ScreenPtr pScreen,
|
||||
float *red,
|
||||
float *green,
|
||||
float *blue);
|
||||
typedef Bool (*VidModeSetGammaRampProcPtr) (ScreenPtr pScreen,
|
||||
int size,
|
||||
CARD16 *red,
|
||||
CARD16 *green,
|
||||
CARD16 *blue);
|
||||
typedef Bool (*VidModeGetGammaRampProcPtr) (ScreenPtr pScreen,
|
||||
int size,
|
||||
CARD16 *red,
|
||||
CARD16 *green,
|
||||
CARD16 *blue);
|
||||
typedef int (*VidModeGetGammaRampSizeProcPtr) (ScreenPtr pScreen);
|
||||
|
||||
typedef struct {
|
||||
DisplayModePtr First;
|
||||
DisplayModePtr Next;
|
||||
int Flags;
|
||||
|
||||
VidModeExtensionInitProcPtr ExtensionInit;
|
||||
VidModeGetMonitorValueProcPtr GetMonitorValue;
|
||||
VidModeGetCurrentModelineProcPtr GetCurrentModeline;
|
||||
VidModeGetFirstModelineProcPtr GetFirstModeline;
|
||||
VidModeGetNextModelineProcPtr GetNextModeline;
|
||||
VidModeDeleteModelineProcPtr DeleteModeline;
|
||||
VidModeZoomViewportProcPtr ZoomViewport;
|
||||
VidModeGetViewPortProcPtr GetViewPort;
|
||||
VidModeSetViewPortProcPtr SetViewPort;
|
||||
VidModeSwitchModeProcPtr SwitchMode;
|
||||
VidModeLockZoomProcPtr LockZoom;
|
||||
VidModeGetNumOfClocksProcPtr GetNumOfClocks;
|
||||
VidModeGetClocksProcPtr GetClocks;
|
||||
VidModeCheckModeForMonitorProcPtr CheckModeForMonitor;
|
||||
VidModeCheckModeForDriverProcPtr CheckModeForDriver;
|
||||
VidModeSetCrtcForModeProcPtr SetCrtcForMode;
|
||||
VidModeAddModelineProcPtr AddModeline;
|
||||
VidModeGetDotClockProcPtr GetDotClock;
|
||||
VidModeGetNumOfModesProcPtr GetNumOfModes;
|
||||
VidModeSetGammaProcPtr SetGamma;
|
||||
VidModeGetGammaProcPtr GetGamma;
|
||||
VidModeSetGammaRampProcPtr SetGammaRamp;
|
||||
VidModeGetGammaRampProcPtr GetGammaRamp;
|
||||
VidModeGetGammaRampSizeProcPtr GetGammaRampSize;
|
||||
} VidModeRec, *VidModePtr;
|
||||
|
||||
void VidModeAddExtension(Bool allow_non_local);
|
||||
VidModePtr VidModeGetPtr(ScreenPtr pScreen);
|
||||
VidModePtr VidModeInit(ScreenPtr pScreen);
|
||||
|
||||
#endif
|
|
@ -56,6 +56,7 @@ libxservertest_la_LIBADD += \
|
|||
$(top_builddir)/hw/xfree86/ddc/libddc.la \
|
||||
$(top_builddir)/hw/xfree86/i2c/libi2c.la \
|
||||
$(top_builddir)/hw/xfree86/dixmods/libxorgxkb.la \
|
||||
$(top_builddir)/Xext/libXvidmode.la \
|
||||
@XORG_LIBS@
|
||||
|
||||
BUILT_SOURCES = sdksyms.c
|
||||
|
@ -91,6 +92,7 @@ libxservertest_la_LIBADD += \
|
|||
$(top_builddir)/render/librender.la \
|
||||
$(top_builddir)/Xext/libXext.la \
|
||||
$(top_builddir)/Xext/libXextdpmsstubs.la \
|
||||
$(top_builddir)/Xext/libXvidmode.la \
|
||||
$(top_builddir)/Xi/libXi.la \
|
||||
$(top_builddir)/Xi/libXistubs.la \
|
||||
$(top_builddir)/xfixes/libxfixes.la \
|
||||
|
|
Loading…
Reference in New Issue