summaryrefslogtreecommitdiff
path: root/render/matrix.c
AgeCommit message (Collapse)AuthorFilesLines
2008-12-03Rework symbol visibility for easier maintenancePaulo Cesar Pereira de Andrade1-4/+4
Save in a few special cases, _X_EXPORT should not be used in C source files. Instead, it should be used in headers, and the proper C source include that header. Some special cases are symbols that need to be shared between modules, but not expected to be used by external drivers, and symbols that are accessible via LoaderSymbol/dlopen. This patch also adds conditionally some new sdk header files, depending on extensions enabled. These files were added to match pattern for other extensions/modules, that is, have the headers "deciding" symbol visibility in the sdk. These headers are: o Xext/panoramiXsrv.h, Xext/panoramiX.h o fbpict.h (unconditionally) o vidmodeproc.h o mioverlay.h (unconditionally, used only by xaa) o xfixes.h (unconditionally, symbols required by dri2) LoaderSymbol and similar functions now don't have different prototypes, in loaderProcs.h and xf86Module.h, so that both headers can be included, without the need of defining IN_LOADER. xf86NewInputDevice() device prototype readded to xf86Xinput.h, but not exported (and with a comment about it).
2008-11-25Move matrix operations from X server to pixman 0.13.2Keith Packard1-550/+7
pixman 0.13.2 now holds all of the matrix operations. This leaves the protocol conversion routines and some ABI stubs in place Signed-off-by: Keith Packard <keithp@keithp.com>
2008-11-24Handle transform failure when computing shadow damage area.Keith Packard1-3/+4
PictureTransformBounds can fail, when this happens, damage the entire screen so that the shadow gets repainted correctly.
2008-11-24Avoid overflow in PictureTransformPoint. Fix PictureTransformIsIdentity.Keith Packard1-37/+21
PictureTransformPoint computes homogeneous coordinates internally, but fails to handle intermediate values larger than 16.16. Use 64 bit intermediate values while computing the final result at 16.16 and only complain if that result is too large. PictureTransformIsIdentity was completely wrong -- it was not checking for identity transforms at all.
2008-11-24Handle RandR transform matrices in floating point.Keith Packard1-72/+252
RandR matrix computations lose too much precision in fixed point; computations using the inverted matrix can be as much as 10 pixels off. Convert them to double precision values and pass those around. These API changes are fairly heavyweight; the official Render interface remains fixed point, so the fixed point matrix comes along for the ride everywhere.
2008-11-24When converting from double to fixed, round carefully.Keith Packard1-3/+4
This reduces the matrix representation error after inverting a transformation matrix (although it doesn't eliminate it entirely). Perhaps we should extend Render to include 64-bit floating point transforms...
2008-11-24Add matrix inversion function (uses doubles)Keith Packard1-0/+80
The obvious matrix inversion function, coded using doubles to avoid fiddling with fixed point precision adventures.
2008-11-24Add funcs to convert between protocol and pixman matricesKeith Packard1-1/+35
2008-11-24Export a bunch of matrix operations from render.Keith Packard1-0/+351
The render extension uses many matrix operations internally, this change exposes those functions to other parts of the server, drivers and extensions. The change is motivated by the 'transform' additions to the RandR extension but will likely be useful elsewhere.