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:
Olivier Fourdan 2016-02-10 09:34:34 +01:00 committed by Adam Jackson
parent 860669b186
commit 349b71a37e
12 changed files with 592 additions and 450 deletions

View File

@ -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

View File

@ -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) \

View File

@ -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

View File

@ -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

View File

@ -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
/*

View File

@ -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"

View File

@ -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;

View File

@ -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 */

View File

@ -76,4 +76,5 @@ EXTRA_DIST = \
swaprep.h \
swapreq.h \
systemd-logind.h \
vidmodestr.h \
xsha1.h

140
include/vidmodestr.h Normal file
View File

@ -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

View File

@ -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 \