Pass filter kernel size through transforms
This commit is contained in:
parent
1df02d7ddd
commit
16c093afd4
|
@ -111,6 +111,8 @@ struct _rrTransform {
|
||||||
PictFilterPtr filter;
|
PictFilterPtr filter;
|
||||||
xFixed *params;
|
xFixed *params;
|
||||||
int nparams;
|
int nparams;
|
||||||
|
int width;
|
||||||
|
int height;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _rrCrtc {
|
struct _rrCrtc {
|
||||||
|
|
|
@ -62,7 +62,9 @@ static Bool
|
||||||
RRTransformSetFilter (RRTransformPtr dst,
|
RRTransformSetFilter (RRTransformPtr dst,
|
||||||
PictFilterPtr filter,
|
PictFilterPtr filter,
|
||||||
xFixed *params,
|
xFixed *params,
|
||||||
int nparams)
|
int nparams,
|
||||||
|
int width,
|
||||||
|
int height)
|
||||||
{
|
{
|
||||||
xFixed *new_params;
|
xFixed *new_params;
|
||||||
|
|
||||||
|
@ -80,6 +82,8 @@ RRTransformSetFilter (RRTransformPtr dst,
|
||||||
dst->filter = filter;
|
dst->filter = filter;
|
||||||
dst->params = new_params;
|
dst->params = new_params;
|
||||||
dst->nparams = nparams;
|
dst->nparams = nparams;
|
||||||
|
dst->width = width;
|
||||||
|
dst->height = height;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,7 +91,7 @@ static Bool
|
||||||
RRTransformCopy (RRTransformPtr dst, RRTransformPtr src)
|
RRTransformCopy (RRTransformPtr dst, RRTransformPtr src)
|
||||||
{
|
{
|
||||||
if (!RRTransformSetFilter (dst, src->filter,
|
if (!RRTransformSetFilter (dst, src->filter,
|
||||||
src->params, src->nparams))
|
src->params, src->nparams, src->width, src->height))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
dst->transform = src->transform;
|
dst->transform = src->transform;
|
||||||
dst->inverse = src->inverse;
|
dst->inverse = src->inverse;
|
||||||
|
@ -602,6 +606,7 @@ RRCrtcTransformSet (RRCrtcPtr crtc,
|
||||||
int nparams)
|
int nparams)
|
||||||
{
|
{
|
||||||
PictFilterPtr filter = NULL;
|
PictFilterPtr filter = NULL;
|
||||||
|
int width = 0, height = 0;
|
||||||
|
|
||||||
if (!PictureTransformIsInverse (transform, inverse))
|
if (!PictureTransformIsInverse (transform, inverse))
|
||||||
return BadMatch;
|
return BadMatch;
|
||||||
|
@ -615,9 +620,13 @@ RRCrtcTransformSet (RRCrtcPtr crtc,
|
||||||
if (filter->ValidateParams)
|
if (filter->ValidateParams)
|
||||||
{
|
{
|
||||||
if (!filter->ValidateParams (crtc->pScreen, filter->id,
|
if (!filter->ValidateParams (crtc->pScreen, filter->id,
|
||||||
params, nparams))
|
params, nparams, &width, &height))
|
||||||
return BadMatch;
|
return BadMatch;
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
width = filter->width;
|
||||||
|
height = filter->height;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -625,7 +634,7 @@ RRCrtcTransformSet (RRCrtcPtr crtc,
|
||||||
return BadMatch;
|
return BadMatch;
|
||||||
}
|
}
|
||||||
if (!RRTransformSetFilter (&crtc->client_pending_transform,
|
if (!RRTransformSetFilter (&crtc->client_pending_transform,
|
||||||
filter, params, nparams))
|
filter, params, nparams, width, height))
|
||||||
return BadAlloc;
|
return BadAlloc;
|
||||||
|
|
||||||
crtc->client_pending_transform.transform = *transform;
|
crtc->client_pending_transform.transform = *transform;
|
||||||
|
@ -1037,12 +1046,11 @@ ProcRRSetCrtcConfig (ClientPtr client)
|
||||||
int source_height;
|
int source_height;
|
||||||
PictTransform transform, inverse;
|
PictTransform transform, inverse;
|
||||||
|
|
||||||
if (!RRComputeTransform (mode, stuff->rotation,
|
RRComputeTransform (mode, stuff->rotation,
|
||||||
stuff->x, stuff->y,
|
stuff->x, stuff->y,
|
||||||
&crtc->client_pending_transform.transform,
|
&crtc->client_pending_transform.transform,
|
||||||
&crtc->client_pending_transform.inverse,
|
&crtc->client_pending_transform.inverse,
|
||||||
&transform, &inverse))
|
&transform, &inverse);
|
||||||
return BadMatch;
|
|
||||||
|
|
||||||
RRModeGetScanoutSize (mode, &transform, &source_width, &source_height);
|
RRModeGetScanoutSize (mode, &transform, &source_width, &source_height);
|
||||||
if (stuff->x + source_width > pScreen->width)
|
if (stuff->x + source_width > pScreen->width)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user