Merge remote-tracking branch 'alanc/master'
This commit is contained in:
commit
beeea70495
|
@ -1056,11 +1056,12 @@ int
|
|||
ProcXineramaQueryScreens(ClientPtr client)
|
||||
{
|
||||
/* REQUEST(xXineramaQueryScreensReq); */
|
||||
CARD32 number = (noPanoramiXExtension) ? 0 : PanoramiXNumScreens;
|
||||
xXineramaQueryScreensReply rep = {
|
||||
.type = X_Reply,
|
||||
.sequenceNumber = client->sequence,
|
||||
.length = bytes_to_int32(rep.number * sz_XineramaScreenInfo),
|
||||
.number = (noPanoramiXExtension) ? 0 : PanoramiXNumScreens
|
||||
.length = bytes_to_int32(number * sz_XineramaScreenInfo),
|
||||
.number = number
|
||||
};
|
||||
|
||||
REQUEST_SIZE_MATCH(xXineramaQueryScreensReq);
|
||||
|
|
|
@ -135,6 +135,7 @@ ProcXvMCListSurfaceTypes(ClientPtr client)
|
|||
xvmcSurfaceInfo info;
|
||||
XvMCAdaptorPtr adaptor = NULL;
|
||||
XvMCSurfaceInfoPtr surface;
|
||||
int num_surfaces;
|
||||
|
||||
REQUEST(xvmcListSurfaceTypesReq);
|
||||
REQUEST_SIZE_MATCH(xvmcListSurfaceTypesReq);
|
||||
|
@ -154,16 +155,17 @@ ProcXvMCListSurfaceTypes(ClientPtr client)
|
|||
}
|
||||
}
|
||||
|
||||
num_surfaces = (adaptor) ? adaptor->num_surfaces : 0;
|
||||
rep = (xvmcListSurfaceTypesReply) {
|
||||
.type = X_Reply,
|
||||
.sequenceNumber = client->sequence,
|
||||
.num = (adaptor) ? adaptor->num_surfaces : 0,
|
||||
.length = bytes_to_int32(rep.num * sizeof(xvmcSurfaceInfo)),
|
||||
.num = num_surfaces,
|
||||
.length = bytes_to_int32(num_surfaces * sizeof(xvmcSurfaceInfo)),
|
||||
};
|
||||
|
||||
WriteToClient(client, sizeof(xvmcListSurfaceTypesReply), &rep);
|
||||
|
||||
for (i = 0; i < rep.num; i++) {
|
||||
for (i = 0; i < num_surfaces; i++) {
|
||||
surface = adaptor->surfaces[i];
|
||||
info.surface_type_id = surface->surface_type_id;
|
||||
info.chroma_format = surface->chroma_format;
|
||||
|
|
|
@ -550,15 +550,16 @@ static int
|
|||
ProcDRI2GetParam(ClientPtr client)
|
||||
{
|
||||
REQUEST(xDRI2GetParamReq);
|
||||
xDRI2GetParamReply rep;
|
||||
xDRI2GetParamReply rep = {
|
||||
.type = X_Reply,
|
||||
.sequenceNumber = client->sequence,
|
||||
.length = 0
|
||||
};
|
||||
DrawablePtr pDrawable;
|
||||
CARD64 value;
|
||||
int status;
|
||||
|
||||
REQUEST_SIZE_MATCH(xDRI2GetParamReq);
|
||||
rep.type = X_Reply;
|
||||
rep.length = 0;
|
||||
rep.sequenceNumber = client->sequence;
|
||||
|
||||
if (!validDrawable(client, stuff->drawable, DixReadAccess,
|
||||
&pDrawable, &status))
|
||||
|
|
|
@ -86,23 +86,26 @@ ProcRRGetProviders (ClientPtr client)
|
|||
}
|
||||
|
||||
pScrPriv = rrGetScrPriv(pScreen);
|
||||
rep.pad = 0;
|
||||
|
||||
if (!pScrPriv)
|
||||
{
|
||||
rep.type = X_Reply;
|
||||
rep.sequenceNumber = client->sequence;
|
||||
rep.length = 0;
|
||||
rep.timestamp = currentTime.milliseconds;
|
||||
rep.nProviders = 0;
|
||||
rep = (xRRGetProvidersReply) {
|
||||
.type = X_Reply,
|
||||
.sequenceNumber = client->sequence,
|
||||
.length = 0,
|
||||
.timestamp = currentTime.milliseconds,
|
||||
.nProviders = 0
|
||||
};
|
||||
extra = NULL;
|
||||
extraLen = 0;
|
||||
} else {
|
||||
rep.type = X_Reply;
|
||||
rep.sequenceNumber = client->sequence;
|
||||
rep.timestamp = pScrPriv->lastSetTime.milliseconds;
|
||||
rep.nProviders = total_providers;
|
||||
rep.length = total_providers;
|
||||
rep = (xRRGetProvidersReply) {
|
||||
.type = X_Reply,
|
||||
.sequenceNumber = client->sequence,
|
||||
.timestamp = pScrPriv->lastSetTime.milliseconds,
|
||||
.nProviders = total_providers,
|
||||
.length = total_providers
|
||||
};
|
||||
extraLen = rep.length << 2;
|
||||
if (extraLen) {
|
||||
extra = malloc(extraLen);
|
||||
|
@ -163,18 +166,20 @@ ProcRRGetProviderInfo (ClientPtr client)
|
|||
pScreen = provider->pScreen;
|
||||
pScrPriv = rrGetScrPriv(pScreen);
|
||||
|
||||
rep.type = X_Reply;
|
||||
rep.status = RRSetConfigSuccess;
|
||||
rep.sequenceNumber = client->sequence;
|
||||
rep.length = 0;
|
||||
rep.capabilities = provider->capabilities;
|
||||
rep.nameLength = provider->nameLength;
|
||||
rep.timestamp = pScrPriv->lastSetTime.milliseconds;
|
||||
rep.nCrtcs = pScrPriv->numCrtcs;
|
||||
rep.nOutputs = pScrPriv->numOutputs;
|
||||
rep = (xRRGetProviderInfoReply) {
|
||||
.type = X_Reply,
|
||||
.status = RRSetConfigSuccess,
|
||||
.sequenceNumber = client->sequence,
|
||||
.length = 0,
|
||||
.capabilities = provider->capabilities,
|
||||
.nameLength = provider->nameLength,
|
||||
.timestamp = pScrPriv->lastSetTime.milliseconds,
|
||||
.nCrtcs = pScrPriv->numCrtcs,
|
||||
.nOutputs = pScrPriv->numOutputs,
|
||||
.nAssociatedProviders = 0
|
||||
};
|
||||
|
||||
/* count associated providers */
|
||||
rep.nAssociatedProviders = 0;
|
||||
if (provider->offload_sink)
|
||||
rep.nAssociatedProviders++;
|
||||
if (provider->output_source)
|
||||
|
|
|
@ -65,14 +65,14 @@ RRDestroyProviderProperty(RRPropertyPtr prop)
|
|||
static void
|
||||
RRDeleteProperty(RRProviderRec * provider, RRPropertyRec * prop)
|
||||
{
|
||||
xRRProviderPropertyNotifyEvent event;
|
||||
|
||||
event.type = RREventBase + RRNotify;
|
||||
event.subCode = RRNotify_ProviderProperty;
|
||||
event.provider = provider->id;
|
||||
event.state = PropertyDelete;
|
||||
event.atom = prop->propertyName;
|
||||
event.timestamp = currentTime.milliseconds;
|
||||
xRRProviderPropertyNotifyEvent event = {
|
||||
.type = RREventBase + RRNotify,
|
||||
.subCode = RRNotify_ProviderProperty,
|
||||
.provider = provider->id,
|
||||
.state = PropertyDelete,
|
||||
.atom = prop->propertyName,
|
||||
.timestamp = currentTime.milliseconds
|
||||
};
|
||||
|
||||
RRDeliverPropertyEvent(provider->pScreen, (xEvent *) &event);
|
||||
|
||||
|
@ -138,7 +138,6 @@ RRChangeProviderProperty(RRProviderPtr provider, Atom property, Atom type,
|
|||
pointer value, Bool sendevent, Bool pending)
|
||||
{
|
||||
RRPropertyPtr prop;
|
||||
xRRProviderPropertyNotifyEvent event;
|
||||
rrScrPrivPtr pScrPriv = rrGetScrPriv(provider->pScreen);
|
||||
int size_in_bytes;
|
||||
int total_size;
|
||||
|
@ -237,12 +236,14 @@ RRChangeProviderProperty(RRProviderPtr provider, Atom property, Atom type,
|
|||
provider->pendingProperties = TRUE;
|
||||
|
||||
if (sendevent) {
|
||||
event.type = RREventBase + RRNotify;
|
||||
event.subCode = RRNotify_ProviderProperty;
|
||||
event.provider = provider->id;
|
||||
event.state = PropertyNewValue;
|
||||
event.atom = prop->propertyName;
|
||||
event.timestamp = currentTime.milliseconds;
|
||||
xRRProviderPropertyNotifyEvent event = {
|
||||
.type = RREventBase + RRNotify,
|
||||
.subCode = RRNotify_ProviderProperty,
|
||||
.provider = provider->id,
|
||||
.state = PropertyNewValue,
|
||||
.atom = prop->propertyName,
|
||||
.timestamp = currentTime.milliseconds
|
||||
};
|
||||
RRDeliverPropertyEvent(provider->pScreen, (xEvent *) &event);
|
||||
}
|
||||
return Success;
|
||||
|
@ -394,10 +395,12 @@ ProcRRListProviderProperties(ClientPtr client)
|
|||
if (!(pAtoms = (Atom *) malloc(numProps * sizeof(Atom))))
|
||||
return BadAlloc;
|
||||
|
||||
rep.type = X_Reply;
|
||||
rep.length = bytes_to_int32(numProps * sizeof(Atom));
|
||||
rep.sequenceNumber = client->sequence;
|
||||
rep.nAtoms = numProps;
|
||||
rep = (xRRListProviderPropertiesReply) {
|
||||
.type = X_Reply,
|
||||
.sequenceNumber = client->sequence,
|
||||
.length = bytes_to_int32(numProps * sizeof(Atom)),
|
||||
.nAtoms = numProps
|
||||
};
|
||||
if (client->swapped) {
|
||||
swaps(&rep.sequenceNumber);
|
||||
swapl(&rep.length);
|
||||
|
@ -438,12 +441,14 @@ ProcRRQueryProviderProperty(ClientPtr client)
|
|||
if (!extra)
|
||||
return BadAlloc;
|
||||
}
|
||||
rep.type = X_Reply;
|
||||
rep.length = prop->num_valid;
|
||||
rep.sequenceNumber = client->sequence;
|
||||
rep.pending = prop->is_pending;
|
||||
rep.range = prop->range;
|
||||
rep.immutable = prop->immutable;
|
||||
rep = (xRRQueryProviderPropertyReply) {
|
||||
.type = X_Reply,
|
||||
.sequenceNumber = client->sequence,
|
||||
.length = prop->num_valid,
|
||||
.pending = prop->is_pending,
|
||||
.range = prop->range,
|
||||
.immutable = prop->immutable
|
||||
};
|
||||
if (client->swapped) {
|
||||
swaps(&rep.sequenceNumber);
|
||||
swapl(&rep.length);
|
||||
|
@ -568,7 +573,10 @@ ProcRRGetProviderProperty(ClientPtr client)
|
|||
RRPropertyValuePtr prop_value;
|
||||
unsigned long n, len, ind;
|
||||
RRProviderPtr provider;
|
||||
xRRGetProviderPropertyReply reply;
|
||||
xRRGetProviderPropertyReply reply = {
|
||||
.type = X_Reply,
|
||||
.sequenceNumber = client->sequence
|
||||
};
|
||||
char *extra = NULL;
|
||||
|
||||
REQUEST_SIZE_MATCH(xRRGetProviderPropertyReq);
|
||||
|
@ -594,8 +602,6 @@ ProcRRGetProviderProperty(ClientPtr client)
|
|||
if (prop->propertyName == stuff->property)
|
||||
break;
|
||||
|
||||
reply.type = X_Reply;
|
||||
reply.sequenceNumber = client->sequence;
|
||||
if (!prop) {
|
||||
reply.nItems = 0;
|
||||
reply.length = 0;
|
||||
|
@ -672,14 +678,14 @@ ProcRRGetProviderProperty(ClientPtr client)
|
|||
reply.propertyType = prop_value->type;
|
||||
|
||||
if (stuff->delete && (reply.bytesAfter == 0)) {
|
||||
xRRProviderPropertyNotifyEvent event;
|
||||
|
||||
event.type = RREventBase + RRNotify;
|
||||
event.subCode = RRNotify_ProviderProperty;
|
||||
event.provider = provider->id;
|
||||
event.state = PropertyDelete;
|
||||
event.atom = prop->propertyName;
|
||||
event.timestamp = currentTime.milliseconds;
|
||||
xRRProviderPropertyNotifyEvent event = {
|
||||
.type = RREventBase + RRNotify,
|
||||
.subCode = RRNotify_ProviderProperty,
|
||||
.provider = provider->id,
|
||||
.state = PropertyDelete,
|
||||
.atom = prop->propertyName,
|
||||
.timestamp = currentTime.milliseconds
|
||||
};
|
||||
RRDeliverPropertyEvent(provider->pScreen, (xEvent *) &event);
|
||||
}
|
||||
|
||||
|
|
|
@ -396,16 +396,17 @@ rrGetMultiScreenResources(ClientPtr client, Bool query, ScreenPtr pScreen)
|
|||
ErrorF("reporting %d %d %d %d\n", total_crtcs, total_outputs, total_modes, total_name_len);
|
||||
|
||||
pScrPriv = rrGetScrPriv(pScreen);
|
||||
rep.pad = 0;
|
||||
rep.type = X_Reply;
|
||||
rep.sequenceNumber = client->sequence;
|
||||
rep.length = 0;
|
||||
rep.timestamp = pScrPriv->lastSetTime.milliseconds;
|
||||
rep.configTimestamp = pScrPriv->lastConfigTime.milliseconds;
|
||||
rep.nCrtcs = total_crtcs;
|
||||
rep.nOutputs = total_outputs;
|
||||
rep.nModes = total_modes;
|
||||
rep.nbytesNames = total_name_len;
|
||||
rep = (xRRGetScreenResourcesReply) {
|
||||
.type = X_Reply,
|
||||
.sequenceNumber = client->sequence,
|
||||
.length = 0,
|
||||
.timestamp = pScrPriv->lastSetTime.milliseconds,
|
||||
.configTimestamp = pScrPriv->lastConfigTime.milliseconds,
|
||||
.nCrtcs = total_crtcs,
|
||||
.nOutputs = total_outputs,
|
||||
.nModes = total_modes,
|
||||
.nbytesNames = total_name_len
|
||||
};
|
||||
|
||||
rep.length = (total_crtcs + total_outputs + total_modes * bytes_to_int32(SIZEOF(xRRModeInfo)) +
|
||||
bytes_to_int32(rep.nbytesNames));
|
||||
|
|
Loading…
Reference in New Issue
Block a user