summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSøren Sandmann Pedersen <ssp@redhat.com>2011-04-08 16:40:01 -0400
committerSøren Sandmann Pedersen <ssp@redhat.com>2011-04-20 07:07:26 -0400
commit0a9a7718c55e1e96038a72502550afbbadf13c4c (patch)
treee36953e24ddcd168aa898c3a528fb01f65a38566
parentd40107a79b2722cecfa90908863631452af51ef8 (diff)
More filters
-rw-r--r--hw/xfree86/modes/xf86Crtc.c2
-rw-r--r--hw/xfree86/modes/xf86Crtc.h2
-rw-r--r--hw/xfree86/modes/xf86Rotate.c16
-rw-r--r--miext/cw/cw_render.c10
-rw-r--r--render/filter.c41
-rw-r--r--render/picture.c12
-rw-r--r--render/picturestr.h12
7 files changed, 11 insertions, 84 deletions
diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
index c2814d4cd..286911ee8 100644
--- a/hw/xfree86/modes/xf86Crtc.c
+++ b/hw/xfree86/modes/xf86Crtc.c
@@ -106,7 +106,7 @@ xf86CrtcCreate (ScrnInfoPtr scrn,
pixman_transform_init_identity (&crtc->crtc_to_framebuffer);
pixman_f_transform_init_identity (&crtc->f_crtc_to_framebuffer);
pixman_f_transform_init_identity (&crtc->f_framebuffer_to_crtc);
- crtc->filter = NULL;
+ crtc->filter = PictFilterNearest;
crtc->params = NULL;
crtc->nparams = 0;
crtc->filter_width = 0;
diff --git a/hw/xfree86/modes/xf86Crtc.h b/hw/xfree86/modes/xf86Crtc.h
index 68a968cc2..4157ca0e4 100644
--- a/hw/xfree86/modes/xf86Crtc.h
+++ b/hw/xfree86/modes/xf86Crtc.h
@@ -316,7 +316,7 @@ struct _xf86Crtc {
/* framebuffer_to_crtc was removed in ABI 2 */
struct pict_f_transform f_crtc_to_framebuffer; /* ABI 2 */
struct pict_f_transform f_framebuffer_to_crtc; /* ABI 2 */
- PictFilterPtr filter; /* ABI 2 */
+ PictFilterType filter; /* ABI 2 */
xFixed *params; /* ABI 2 */
int nparams; /* ABI 2 */
int filter_width; /* ABI 2 */
diff --git a/hw/xfree86/modes/xf86Rotate.c b/hw/xfree86/modes/xf86Rotate.c
index 57c3499ac..00d16f206 100644
--- a/hw/xfree86/modes/xf86Rotate.c
+++ b/hw/xfree86/modes/xf86Rotate.c
@@ -108,7 +108,7 @@ xf86RotateCrtcRedisplay (xf86CrtcPtr crtc, RegionPtr region)
error = SetPictureTransform (src, &crtc->crtc_to_framebuffer);
if (error)
return;
- if (crtc->transform_in_use && crtc->filter)
+ if (crtc->transform_in_use)
SetPicturePictFilter (src, crtc->filter,
crtc->params, crtc->nparams);
@@ -380,7 +380,7 @@ xf86CrtcRotate (xf86CrtcPtr crtc)
struct pict_f_transform f_crtc_to_fb, f_fb_to_crtc;
xFixed *new_params = NULL;
int new_nparams = 0;
- PictFilterPtr new_filter = NULL;
+ PictFilterType new_filter = PictFilterNearest;
int new_width = 0;
int new_height = 0;
RRTransformPtr transform = NULL;
@@ -408,7 +408,7 @@ xf86CrtcRotate (xf86CrtcPtr crtc)
free(new_params);
new_params = NULL;
new_nparams = 0;
- new_filter = NULL;
+ new_filter = PictFilterNearest;
new_width = 0;
new_height = 0;
}
@@ -471,15 +471,11 @@ xf86CrtcRotate (xf86CrtcPtr crtc)
memcpy (new_params, transform->params,
transform->nparams * sizeof (xFixed));
new_nparams = transform->nparams;
- new_filter = transform->filter;
}
- } else
- new_filter = transform->filter;
- if (new_filter)
- {
- new_width = new_filter->width;
- new_height = new_filter->height;
}
+ new_filter = transform->filter;
+ new_width = transform->width;
+ new_height = transform->height;
}
#endif
diff --git a/miext/cw/cw_render.c b/miext/cw/cw_render.c
index 1f990aefa..9f154cf70 100644
--- a/miext/cw/cw_render.c
+++ b/miext/cw/cw_render.c
@@ -216,16 +216,10 @@ cwValidatePicture (PicturePtr pPicture,
*/
SetPictureTransform(pBackingPicture, pPicture->transform);
- if (pBackingPicture->filter != pPicture->filter ||
- pPicture->filter_nparams > 0)
- {
- char *filter = PictureGetFilterName (pPicture->filter);
-
- SetPictureFilter(pBackingPicture,
- filter, strlen (filter),
+ SetPicturePictFilter(pBackingPicture,
+ pPicture->filter,
pPicture->filter_params,
pPicture->filter_nparams);
- }
pPicturePrivate->stateChanges |= mask;
diff --git a/render/filter.c b/render/filter.c
index 26095b4e6..ec15ab3c0 100644
--- a/render/filter.c
+++ b/render/filter.c
@@ -39,47 +39,6 @@
#include "servermd.h"
#include "picturestr.h"
-static char **filterNames;
-static int nfilterNames;
-
-/*
- * standard but not required filters don't have constant indices
- */
-
-int
-PictureGetFilterId (char *filter, int len, Bool makeit)
-{
- int i;
- char *name;
- char **names;
-
- if (len < 0)
- len = strlen (filter);
- for (i = 0; i < nfilterNames; i++)
- if (!CompareISOLatin1Lowered ((unsigned char *) filterNames[i], -1, (unsigned char *) filter, len))
- return i;
- if (!makeit)
- return -1;
- name = malloc(len + 1);
- if (!name)
- return -1;
- memcpy (name, filter, len);
- name[len] = '\0';
- if (filterNames)
- names = realloc(filterNames, (nfilterNames + 1) * sizeof (char *));
- else
- names = malloc(sizeof (char *));
- if (!names)
- {
- free(name);
- return -1;
- }
- filterNames = names;
- i = nfilterNames++;
- filterNames[i] = name;
- return i;
-}
-
typedef Bool (* ValidateParams) (PictFilterType type,
xFixed *params, int nParams, int *width, int *height);
diff --git a/render/picture.c b/render/picture.c
index e7e1f2b41..9e020b03f 100644
--- a/render/picture.c
+++ b/render/picture.c
@@ -81,7 +81,6 @@ PictureCloseScreen (int index, ScreenPtr pScreen)
pScreen->CloseScreen = ps->CloseScreen;
ret = (*pScreen->CloseScreen) (index, pScreen);
- PictureResetFilters (pScreen);
for (n = 0; n < ps->nformats; n++)
if (ps->formats[n].type == PictTypeIndexed)
(*ps->CloseIndexed) (pScreen, &ps->formats[n]);
@@ -699,15 +698,6 @@ PictureInit (ScreenPtr pScreen, PictFormatPtr formats, int nformats)
pScreen->CloseScreen = PictureCloseScreen;
pScreen->StoreColors = PictureStoreColors;
- if (!PictureSetDefaultFilters (pScreen))
- {
- PictureResetFilters (pScreen);
- SetPictureScreen(pScreen, 0);
- free(formats);
- free(ps);
- return FALSE;
- }
-
return TRUE;
}
@@ -735,7 +725,7 @@ SetPictureToDefaults (PicturePtr pPicture)
pPicture->transform = 0;
- pPicture->filter = PictureGetFilterId (FilterNearest, -1, TRUE);
+ pPicture->filter = PictFilterNearest;
pPicture->filter_params = 0;
pPicture->filter_nparams = 0;
diff --git a/render/picturestr.h b/render/picturestr.h
index 5ad11092c..4b9836369 100644
--- a/render/picturestr.h
+++ b/render/picturestr.h
@@ -448,18 +448,6 @@ PictureMatchFormat (ScreenPtr pScreen, int depth, CARD32 format);
extern _X_EXPORT Bool
PictureInit (ScreenPtr pScreen, PictFormatPtr formats, int nformats);
-extern _X_EXPORT int
-PictureGetFilterId (char *filter, int len, Bool makeit);
-
-extern _X_EXPORT Bool
-PictureSetFilterAlias (ScreenPtr pScreen, char *filter, char *alias);
-
-extern _X_EXPORT Bool
-PictureSetDefaultFilters (ScreenPtr pScreen);
-
-extern _X_EXPORT void
-PictureResetFilters (ScreenPtr pScreen);
-
const char *
PictureGetFilterName (PictFilterType type);