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