Remove RandR output options.
RandR output options are now expected to be handled by properties instead.
(cherry picked from commit 8b2a7e94a1
)
This commit is contained in:
parent
6ff7f2ad6a
commit
07b26e690c
|
@ -52,7 +52,7 @@ miRRCrtcSet (ScreenPtr pScreen,
|
|||
int y,
|
||||
Rotation rotation,
|
||||
int numOutput,
|
||||
RROutputConfigPtr outputs)
|
||||
RROutputPtr *outputs)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -137,10 +137,6 @@ miRandRInit (ScreenPtr pScreen)
|
|||
return FALSE;
|
||||
if (!RROutputSetCrtcs (output, &crtc, 1))
|
||||
return FALSE;
|
||||
if (!RROutputSetPossibleOptions (output, 0))
|
||||
return FALSE;
|
||||
if (!RROutputSetCurrentOptions (output, 0))
|
||||
return FALSE;
|
||||
if (!RROutputSetConnection (output, RR_Connected))
|
||||
return FALSE;
|
||||
RRCrtcNotify (crtc, mode, 0, 0, RR_Rotate_0, 1, &output);
|
||||
|
|
|
@ -72,7 +72,6 @@ extern int (*SProcRandrVector[RRNumberRequests])(ClientPtr);
|
|||
typedef struct _rrMode RRModeRec, *RRModePtr;
|
||||
typedef struct _rrCrtc RRCrtcRec, *RRCrtcPtr;
|
||||
typedef struct _rrOutput RROutputRec, *RROutputPtr;
|
||||
typedef struct _rrOutputConfig RROutputConfigRec, *RROutputConfigPtr;
|
||||
|
||||
struct _rrMode {
|
||||
int refcnt;
|
||||
|
@ -109,8 +108,6 @@ struct _rrOutput {
|
|||
int mmWidth;
|
||||
int mmHeight;
|
||||
RRCrtcPtr crtc;
|
||||
CARD32 currentOptions;
|
||||
CARD32 possibleOptions;
|
||||
int numCrtcs;
|
||||
RRCrtcPtr *crtcs;
|
||||
int numClones;
|
||||
|
@ -123,11 +120,6 @@ struct _rrOutput {
|
|||
void *devPrivate;
|
||||
};
|
||||
|
||||
struct _rrOutputConfig {
|
||||
RROutputPtr output;
|
||||
CARD32 options;
|
||||
};
|
||||
|
||||
#if RANDR_12_INTERFACE
|
||||
typedef Bool (*RRScreenSetSizeProcPtr) (ScreenPtr pScreen,
|
||||
CARD16 width,
|
||||
|
@ -142,7 +134,7 @@ typedef Bool (*RRCrtcSetProcPtr) (ScreenPtr pScreen,
|
|||
int y,
|
||||
Rotation rotation,
|
||||
int numOutputs,
|
||||
RROutputConfigPtr outputs);
|
||||
RROutputPtr *outputs);
|
||||
|
||||
typedef Bool (*RRCrtcSetGammaProcPtr) (ScreenPtr pScreen,
|
||||
RRCrtcPtr crtc);
|
||||
|
@ -369,7 +361,7 @@ miRRCrtcSet (ScreenPtr pScreen,
|
|||
int y,
|
||||
Rotation rotation,
|
||||
int numOutput,
|
||||
RROutputConfigPtr outputs);
|
||||
RROutputPtr *outputs);
|
||||
|
||||
/* randr.c */
|
||||
/*
|
||||
|
@ -490,7 +482,7 @@ RRCrtcSet (RRCrtcPtr crtc,
|
|||
int y,
|
||||
Rotation rotation,
|
||||
int numOutput,
|
||||
RROutputConfigPtr outputs);
|
||||
RROutputPtr *outputs);
|
||||
|
||||
/*
|
||||
* Request that the Crtc gamma be changed
|
||||
|
@ -641,10 +633,6 @@ RROutputSetCrtcs (RROutputPtr output,
|
|||
RRCrtcPtr *crtcs,
|
||||
int numCrtcs);
|
||||
|
||||
Bool
|
||||
RROutputSetPossibleOptions (RROutputPtr output,
|
||||
CARD32 possibleOptions);
|
||||
|
||||
void
|
||||
RROutputSetCrtc (RROutputPtr output, RRCrtcPtr crtc);
|
||||
|
||||
|
@ -656,10 +644,6 @@ Bool
|
|||
RROutputSetSubpixelOrder (RROutputPtr output,
|
||||
int subpixelOrder);
|
||||
|
||||
Bool
|
||||
RROutputSetCurrentOptions (RROutputPtr output,
|
||||
CARD32 currentOptions);
|
||||
|
||||
Bool
|
||||
RROutputSetPhysicalSize (RROutputPtr output,
|
||||
int mmWidth,
|
||||
|
@ -739,8 +723,6 @@ Query state:
|
|||
RRScreenSetSizeRange
|
||||
RROutputSetCrtcs
|
||||
RROutputSetCrtc
|
||||
RROutputSetPossibleOptions
|
||||
RRSetCurrentOptions
|
||||
RRModeGet
|
||||
RROutputSetModes
|
||||
RROutputSetConnection
|
||||
|
|
|
@ -257,7 +257,7 @@ RRCrtcSet (RRCrtcPtr crtc,
|
|||
int y,
|
||||
Rotation rotation,
|
||||
int numOutputs,
|
||||
RROutputConfigPtr outputs)
|
||||
RROutputPtr *outputs)
|
||||
{
|
||||
ScreenPtr pScreen = crtc->pScreen;
|
||||
|
||||
|
@ -290,10 +290,10 @@ RRCrtcSet (RRCrtcPtr crtc,
|
|||
|
||||
size.width = mode->mode.width;
|
||||
size.height = mode->mode.height;
|
||||
if (outputs[0].output->mmWidth && outputs[0].output->mmHeight)
|
||||
if (outputs[0]->mmWidth && outputs[0]->mmHeight)
|
||||
{
|
||||
size.mmWidth = outputs[0].output->mmWidth;
|
||||
size.mmHeight = outputs[0].output->mmHeight;
|
||||
size.mmWidth = outputs[0]->mmWidth;
|
||||
size.mmHeight = outputs[0]->mmHeight;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -308,7 +308,7 @@ RRCrtcSet (RRCrtcPtr crtc,
|
|||
* Old 1.0 interface tied screen size to mode size
|
||||
*/
|
||||
if (ret)
|
||||
RRCrtcNotify (crtc, mode, x, y, rotation, 1, &outputs[0].output);
|
||||
RRCrtcNotify (crtc, mode, x, y, rotation, 1, outputs);
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
@ -554,15 +554,15 @@ ProcRRSetCrtcConfig (ClientPtr client)
|
|||
RRCrtcPtr crtc;
|
||||
RRModePtr mode;
|
||||
int numOutputs;
|
||||
RROutputConfigPtr outputs = NULL;
|
||||
xRROutputConfig *outputConfigs;
|
||||
RROutputPtr *outputs = NULL;
|
||||
RROutput *outputIds;
|
||||
TimeStamp configTime;
|
||||
TimeStamp time;
|
||||
Rotation rotation;
|
||||
int i, j;
|
||||
|
||||
REQUEST_AT_LEAST_SIZE(xRRSetCrtcConfigReq);
|
||||
numOutputs = (stuff->length - (SIZEOF (xRRSetCrtcConfigReq) >> 2)) >> 1;
|
||||
numOutputs = (stuff->length - (SIZEOF (xRRSetCrtcConfigReq) >> 2));
|
||||
|
||||
crtc = LookupIDByType (stuff->crtc, RRCrtcType);
|
||||
if (!crtc)
|
||||
|
@ -589,47 +589,39 @@ ProcRRSetCrtcConfig (ClientPtr client)
|
|||
}
|
||||
if (numOutputs)
|
||||
{
|
||||
outputs = xalloc (numOutputs * sizeof (RROutputConfigRec));
|
||||
outputs = xalloc (numOutputs * sizeof (RROutputPtr));
|
||||
if (!outputs)
|
||||
return BadAlloc;
|
||||
}
|
||||
else
|
||||
outputs = NULL;
|
||||
|
||||
outputConfigs = (xRROutputConfig *) (stuff + 1);
|
||||
outputIds = (RROutput *) (stuff + 1);
|
||||
for (i = 0; i < numOutputs; i++)
|
||||
{
|
||||
outputs[i].output = LookupIDByType (outputConfigs[i].output, RROutputType);
|
||||
if (!outputs[i].output)
|
||||
outputs[i] = (RROutputPtr) LookupIDByType (outputIds[i], RROutputType);
|
||||
if (!outputs[i])
|
||||
{
|
||||
client->errorValue = outputConfigs[i].output;
|
||||
client->errorValue = outputIds[i];
|
||||
if (outputs)
|
||||
xfree (outputs);
|
||||
return RRErrorBase + BadRROutput;
|
||||
}
|
||||
outputs[i].options = outputConfigs[i].options;
|
||||
if (outputs[i].options & ~outputs[i].output->possibleOptions)
|
||||
{
|
||||
client->errorValue = outputConfigs[i].options;
|
||||
if (outputs)
|
||||
xfree (outputs);
|
||||
return BadMatch;
|
||||
}
|
||||
/* validate crtc for this output */
|
||||
for (j = 0; j < outputs[i].output->numCrtcs; j++)
|
||||
if (outputs[i].output->crtcs[j] == crtc)
|
||||
for (j = 0; j < outputs[i]->numCrtcs; j++)
|
||||
if (outputs[i]->crtcs[j] == crtc)
|
||||
break;
|
||||
if (j == outputs[i].output->numCrtcs)
|
||||
if (j == outputs[i]->numCrtcs)
|
||||
{
|
||||
if (outputs)
|
||||
xfree (outputs);
|
||||
return BadMatch;
|
||||
}
|
||||
/* validate mode for this output */
|
||||
for (j = 0; j < outputs[i].output->numModes; j++)
|
||||
if (outputs[i].output->modes[j] == mode)
|
||||
for (j = 0; j < outputs[i]->numModes; j++)
|
||||
if (outputs[i]->modes[j] == mode)
|
||||
break;
|
||||
if (j == outputs[i].output->numModes)
|
||||
if (j == outputs[i]->numModes)
|
||||
{
|
||||
if (outputs)
|
||||
xfree (outputs);
|
||||
|
|
|
@ -65,8 +65,6 @@ RROutputCreate (const char *name,
|
|||
output->mmWidth = 0;
|
||||
output->mmHeight = 0;
|
||||
output->crtc = NULL;
|
||||
output->currentOptions = 0;
|
||||
output->possibleOptions = 0;
|
||||
output->numCrtcs = 0;
|
||||
output->crtcs = NULL;
|
||||
output->numClones = 0;
|
||||
|
@ -223,17 +221,6 @@ RROutputSetCrtcs (RROutputPtr output,
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
Bool
|
||||
RROutputSetPossibleOptions (RROutputPtr output,
|
||||
CARD32 possibleOptions)
|
||||
{
|
||||
if (output->possibleOptions == possibleOptions)
|
||||
return TRUE;
|
||||
output->possibleOptions = possibleOptions;
|
||||
RROutputChanged (output);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void
|
||||
RROutputSetCrtc (RROutputPtr output, RRCrtcPtr crtc)
|
||||
{
|
||||
|
@ -266,17 +253,6 @@ RROutputSetSubpixelOrder (RROutputPtr output,
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
Bool
|
||||
RROutputSetCurrentOptions (RROutputPtr output,
|
||||
CARD32 currentOptions)
|
||||
{
|
||||
if (output->currentOptions == currentOptions)
|
||||
return TRUE;
|
||||
output->currentOptions = currentOptions;
|
||||
RROutputChanged (output);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
Bool
|
||||
RROutputSetPhysicalSize (RROutputPtr output,
|
||||
int mmWidth,
|
||||
|
@ -413,7 +389,6 @@ ProcRRGetOutputInfo (ClientPtr client)
|
|||
rep.length = OutputInfoExtra >> 2;
|
||||
rep.timestamp = pScrPriv->lastSetTime.milliseconds;
|
||||
rep.crtc = output->crtc ? output->crtc->id : None;
|
||||
rep.currentOptions = output->currentOptions;
|
||||
rep.mmWidth = output->mmWidth;
|
||||
rep.mmHeight = output->mmHeight;
|
||||
rep.connection = output->connection;
|
||||
|
@ -423,7 +398,6 @@ ProcRRGetOutputInfo (ClientPtr client)
|
|||
rep.nPreferred = output->numPreferred;
|
||||
rep.nClones = output->numClones;
|
||||
rep.nameLength = output->nameLength;
|
||||
rep.possibleOptions = output->possibleOptions;
|
||||
|
||||
extraLen = ((output->numCrtcs +
|
||||
output->numModes +
|
||||
|
@ -469,15 +443,12 @@ ProcRRGetOutputInfo (ClientPtr client)
|
|||
swapl(&rep.length, n);
|
||||
swapl(&rep.timestamp, n);
|
||||
swapl(&rep.crtc, n);
|
||||
swapl(&rep.currentOptions, n);
|
||||
swapl(&rep.mmWidth, n);
|
||||
swapl(&rep.mmHeight, n);
|
||||
swaps(&rep.nCrtcs, n);
|
||||
swaps(&rep.nModes, n);
|
||||
swaps(&rep.nClones, n);
|
||||
swapl(&rep.possibleOptions, n);
|
||||
swaps(&rep.nameLength, n);
|
||||
swapl(&rep.possibleOptions, n);
|
||||
}
|
||||
WriteToClient(client, sizeof(xRRGetOutputInfoReply), (char *)&rep);
|
||||
if (extraLen)
|
||||
|
|
|
@ -712,7 +712,7 @@ ProcRRSetScreenConfig (ClientPtr client)
|
|||
Rotation rotation;
|
||||
int rate;
|
||||
Bool has_rate;
|
||||
RROutputConfigRec output;
|
||||
RROutputPtr output;
|
||||
RRModePtr mode;
|
||||
RR10DataPtr pData = NULL;
|
||||
RRScreenSizePtr pSize;
|
||||
|
@ -749,14 +749,13 @@ ProcRRSetScreenConfig (ClientPtr client)
|
|||
if (!RRGetInfo (pScreen))
|
||||
return BadAlloc;
|
||||
|
||||
output.output = RRFirstOutput (pScreen);
|
||||
if (!output.output)
|
||||
output = RRFirstOutput (pScreen);
|
||||
if (!output)
|
||||
{
|
||||
time = currentTime;
|
||||
rep.status = RRSetConfigFailed;
|
||||
goto sendReply;
|
||||
}
|
||||
output.options = output.output->currentOptions;
|
||||
|
||||
/*
|
||||
* if the client's config timestamp is not the same as the last config
|
||||
|
@ -769,7 +768,7 @@ ProcRRSetScreenConfig (ClientPtr client)
|
|||
goto sendReply;
|
||||
}
|
||||
|
||||
pData = RR10GetData (pScreen, output.output);
|
||||
pData = RR10GetData (pScreen, output);
|
||||
if (!pData)
|
||||
return BadAlloc;
|
||||
|
||||
|
@ -805,7 +804,7 @@ ProcRRSetScreenConfig (ClientPtr client)
|
|||
return BadValue;
|
||||
}
|
||||
|
||||
if ((~output.output->crtc->rotations) & rotation)
|
||||
if ((~output->crtc->rotations) & rotation)
|
||||
{
|
||||
/*
|
||||
* requested rotation or reflection not supported by screen
|
||||
|
@ -878,7 +877,7 @@ ProcRRSetScreenConfig (ClientPtr client)
|
|||
}
|
||||
}
|
||||
|
||||
rep.status = RRCrtcSet (output.output->crtc, mode, 0, 0, stuff->rotation,
|
||||
rep.status = RRCrtcSet (output->crtc, mode, 0, 0, stuff->rotation,
|
||||
1, &output);
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue
Block a user