diff options
Diffstat (limited to 'pixman')
-rw-r--r-- | pixman/pixman/config.h | 229 | ||||
-rw-r--r-- | pixman/pixman/makefile | 46 | ||||
-rw-r--r-- | pixman/pixman/pixman-compiler.h | 3 | ||||
-rw-r--r-- | pixman/pixman/pixman-glyph.c | 2 | ||||
-rw-r--r-- | pixman/pixman/pixman-implementation.c | 2 | ||||
-rw-r--r-- | pixman/pixman/pixman-mmx.c | 17 | ||||
-rw-r--r-- | pixman/pixman/pixman-sse2.c | 52 | ||||
-rw-r--r-- | pixman/pixman/pixman-trap.c | 2 | ||||
-rw-r--r-- | pixman/pixman/pixman-version.h | 50 |
9 files changed, 366 insertions, 37 deletions
diff --git a/pixman/pixman/config.h b/pixman/pixman/config.h new file mode 100644 index 000000000..ee9aef828 --- /dev/null +++ b/pixman/pixman/config.h @@ -0,0 +1,229 @@ +/* config.h. Generated from config.h.in by configure. */ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Define if building universal (internal helper macro) */ +#undef AC_APPLE_UNIVERSAL_BUILD + +/* Include compose table cache support */ +#define COMPOSECACHE 1 + + +/* Define to 1 if you have the <dlfcn.h> header file. */ +#define HAVE_DLFCN_H 1 + +/* Define to 1 if you have the <endian.h> header file. */ +#define HAVE_ENDIAN_H 1 + +/* Use dlopen to load shared libraries */ +#define HAVE_DLOPEN 1 + + +/* Define to 1 if you have the `getpagesize' function. */ +#define HAVE_GETPAGESIZE 1 + +/* Define to 1 if you have the <inttypes.h> header file. */ +#define HAVE_INTTYPES_H 1 + +/* launchd support available */ +/* #undef HAVE_LAUNCHD */ + +/* Define to 1 if you have the <memory.h> header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if you have the `poll' function. */ +#define HAVE_POLL 1 + +/* Define to 1 if you have a working `mmap' system call. */ +#define HAVE_MMAP 1 + +/* Use shl_load to load shared libraries */ +/* #undef HAVE_SHL_LOAD */ + +/* Define to 1 if the system has the type `socklen_t'. */ +#define HAVE_SOCKLEN_T 0 + +/* Define to 1 if you have the <stdint.h> header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the <stdlib.h> header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the <strings.h> header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the <string.h> header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the <sys/poll.h> header file. */ +#define HAVE_SYS_POLL_H 1 + +/* Define to 1 if you have the `strtol' function. */ +#define HAVE_STRTOL 1 + +/* Define to 1 if you have the <sys/stat.h> header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the <sys/types.h> header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the <unistd.h> header file. */ +#define HAVE_UNISTD_H 1 + +/* Support IPv6 for TCP connections */ +/* #undef IPv6 */ + +/* Support dynamically loaded font modules */ +#define LOADABLEFONTS 1 + +/* Support os-specific local connections */ +/* #undef LOCALCONN */ + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#define LT_OBJDIR ".libs/" + +/* Disable XLOCALEDIR environment variable */ +#define NO_XLOCALEDIR 1 + +/* Name of package */ +#define PACKAGE "pixman" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT ""sandmann@daimi.au.dk"" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "pixman" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "pixman 0.19.1" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "pixman" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "0.19.1" + +/* Major version of this package */ +#define PACKAGE_VERSION_MAJOR 0 + +/* Minor version of this package */ +#define PACKAGE_VERSION_MINOR 19 + +/* Patch version of this package */ +#define PACKAGE_VERSION_PATCHLEVEL 1 + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Support TCP socket connections */ +#define TCPCONN 1 + +/* launchd support available */ +/* #undef TRANS_REOPEN */ + +/* use MMX compiler intrinsics */ +/*#define USE_X86_MMX 1*/ + +/* Support UNIX socket connections */ +#define UNIXCONN 1 + +/* Split some i18n functions into loadable modules */ +/* #undef USE_DYNAMIC_LC */ + +/* Use the X cursor library to load cursors */ +#define USE_DYNAMIC_XCURSOR 1 + +/* use SSE2 compiler intrinsics */ +/*#define USE_SSE2 1*/ + +/* use VMX compiler intrinsics */ +#undef USE_VMX + +/* poll() function is available */ +#define USE_POLL 1 + +/* Use XCB for low-level protocol implementation */ +#define USE_XCB 1 + +/* Version number of package */ +#define VERSION "0.15.18" + +/* Support bdf format bitmap font files */ +#define XFONT_BDFFORMAT 1 + +/* Location of libX11 data */ +#define X11_DATADIR "/usr/share/X11" + +/* Location of libX11 library data */ +#define X11_LIBDIR "/usr/lib/X11" + +/* Include support for XCMS */ +#define XCMS 1 + +/* Location of error message database */ +#define XERRORDB "XErrorDB" + +/* Enable XF86BIGFONT extension */ +/* #undef XF86BIGFONT */ + +/* Use XKB */ +#define XKB 1 + +/* Location of keysym database */ +#define XKEYSYMDB "XKeysymDB" + +/* support for X Locales */ +#define XLOCALE 1 + +/* Location of libX11 locale data */ +#define XLOCALEDATADIR "locale" + +/* Location of libX11 locale data */ +#define XLOCALEDIR "locale" + +/* Location of libX11 locale libraries */ +#define XLOCALELIBDIR "locale" + +/* Whether libX11 is compiled with thread support */ +#define XTHREADS /**/ + +/* Whether libX11 needs to use MT safe API's */ +#define XUSE_MTSAFE_API /**/ + +/* Enable GNU and other extensions to the C environment for glibc */ +/* #undef _GNU_SOURCE */ + +/* Support bitmap font files */ +#define XFONT_BITMAP 1 + +/* Support built-in fonts */ +#define XFONT_BUILTINS 1 + +/* Support the X Font Services Protocol */ +#define XFONT_FC 1 + +/* Support fonts in files */ +#define XFONT_FONTFILE 1 + +/* Support FreeType rasterizer for nearly all font file formats */ +#define XFONT_FREETYPE 1 + +/* Support pcf format bitmap font files */ +#define XFONT_PCFFORMAT 1 + +/* Support snf format bitmap font files */ +#define XFONT_SNFFORMAT 1 + +/* Support Speedo font files */ +#define XFONT_SPEEDO 1 + +/* Support IBM Type 1 rasterizer for Type1 font files */ +#define XFONT_TYPE1 1 + +/* Support bzip2 for bitmap fonts */ +/* #undef X_BZIP2_FONT_COMPRESSION */ + +/* Support gzip for bitmap fonts */ +#define X_GZIP_FONT_COMPRESSION 1 + +#define __inline__ __inline diff --git a/pixman/pixman/makefile b/pixman/pixman/makefile new file mode 100644 index 000000000..f971e5167 --- /dev/null +++ b/pixman/pixman/makefile @@ -0,0 +1,46 @@ +LIBRARY = libpixman-1 + +INCLUDES += $(OBJDIR) + +CSRCS = \ + pixman.c \ + pixman-access.c \ + pixman-access-accessors.c \ + pixman-bits-image.c \ + pixman-combine32.c \ + pixman-combine-float.c \ + pixman-conical-gradient.c \ + pixman-x86.c \ + pixman-mips.c \ + pixman-arm.c \ + pixman-ppc.c \ + pixman-edge.c \ + pixman-edge-accessors.c \ + pixman-fast-path.c \ + pixman-glyph.c \ + pixman-general.c \ + pixman-gradient-walker.c \ + pixman-image.c \ + pixman-implementation.c \ + pixman-linear-gradient.c \ + pixman-matrix.c \ + pixman-noop.c \ + pixman-radial-gradient.c \ + pixman-region16.c \ + pixman-region32.c \ + pixman-solid-fill.c \ + pixman-timer.c \ + pixman-trap.c \ + pixman-utils.c \ + $(NULL) + +## mmx code +ifndef IS64 +CSRCS += pixman-mmx.c +DEFINES+=USE_X86_MMX +endif + +# sse2 code +CSRCS += pixman-sse2.c +DEFINES+=USE_SSE2 + diff --git a/pixman/pixman/pixman-compiler.h b/pixman/pixman/pixman-compiler.h index 2489adc38..938ebc21a 100644 --- a/pixman/pixman/pixman-compiler.h +++ b/pixman/pixman/pixman-compiler.h @@ -122,6 +122,9 @@ # define _NO_W32_PSEUDO_MODIFIERS # include <windows.h> +#ifdef IN +#undef IN +#endif # define PIXMAN_DEFINE_THREAD_LOCAL(type, name) \ static volatile int tls_ ## name ## _initialized = 0; \ diff --git a/pixman/pixman/pixman-glyph.c b/pixman/pixman/pixman-glyph.c index 96a349ab4..60eb10914 100644 --- a/pixman/pixman/pixman-glyph.c +++ b/pixman/pixman/pixman-glyph.c @@ -88,7 +88,7 @@ hash (const void *font_key, const void *glyph_key) key = key + (key << 3) + (key << 11); key = key ^ (key >> 16); - return key; + return key&0xffffffff; } static glyph_t * diff --git a/pixman/pixman/pixman-implementation.c b/pixman/pixman/pixman-implementation.c index 588405451..f82c915dc 100644 --- a/pixman/pixman/pixman-implementation.c +++ b/pixman/pixman/pixman-implementation.c @@ -33,7 +33,7 @@ _pixman_implementation_create (pixman_implementation_t *fallback, { pixman_implementation_t *imp; - assert (fast_paths); + assert (fast_paths!=NULL); if ((imp = malloc (sizeof (pixman_implementation_t)))) { diff --git a/pixman/pixman/pixman-mmx.c b/pixman/pixman/pixman-mmx.c index 05c48a4fe..b663ff7a5 100644 --- a/pixman/pixman/pixman-mmx.c +++ b/pixman/pixman/pixman-mmx.c @@ -1911,7 +1911,7 @@ mmx_composite_over_8888_0565 (pixman_implementation_t *imp, vdest = pack_565 ( over (vsrc, expand_alpha (vsrc), vdest), vdest, 0); - *dst = to_uint64 (vdest); + *dst = to_uint64 (vdest)&0xffff; w--; dst++; @@ -1955,7 +1955,7 @@ mmx_composite_over_8888_0565 (pixman_implementation_t *imp, vdest = pack_565 (over (vsrc, expand_alpha (vsrc), vdest), vdest, 0); - *dst = to_uint64 (vdest); + *dst = to_uint64 (vdest) & 0xffff; w--; dst++; @@ -2157,7 +2157,7 @@ mmx_fill (pixman_implementation_t *imp, if (w >= 2 && ((uintptr_t)d & 3)) { - *(uint16_t *)d = filler; + *(uint16_t *)d = (filler & 0xffff); w -= 2; d += 2; } @@ -2210,7 +2210,7 @@ mmx_fill (pixman_implementation_t *imp, } if (w >= 2) { - *(uint16_t *)d = filler; + *(uint16_t *)d = (filler & 0xffff); w -= 2; d += 2; } @@ -2494,7 +2494,7 @@ mmx_composite_over_n_8_0565 (pixman_implementation_t *imp, vm3 = to_m64 (m3); v3 = in_over (vsrc, vsrca, expand_alpha_rev (vm3), v3); - *(__m64 *)dst = pack_4x565 (v0, v1, v2, v3);; + *(__m64 *)dst = pack_4x565 (v0, v1, v2, v3); } w -= 4; @@ -3678,13 +3678,14 @@ do { \ __m64 b_lo = _mm_mullo_pi16 (_mm_unpacklo_pi8 (b, mm_zero), mm_wb); \ __m64 hi = _mm_add_pi16 (t_hi, b_hi); \ __m64 lo = _mm_add_pi16 (t_lo, b_lo); \ + __m64 mm_wh,p,q;\ /* calculate horizontal weights */ \ - __m64 mm_wh = _mm_add_pi16 (mm_addc7, _mm_xor_si64 (mm_xorc7, \ + mm_wh = _mm_add_pi16 (mm_addc7, _mm_xor_si64 (mm_xorc7, \ _mm_srli_pi16 (mm_x, \ 16 - BILINEAR_INTERPOLATION_BITS))); \ /* horizontal interpolation */ \ - __m64 p = _mm_unpacklo_pi16 (lo, hi); \ - __m64 q = _mm_unpackhi_pi16 (lo, hi); \ + p = _mm_unpacklo_pi16 (lo, hi); \ + q = _mm_unpackhi_pi16 (lo, hi); \ vx += unit_x; \ lo = _mm_madd_pi16 (p, mm_wh); \ hi = _mm_madd_pi16 (q, mm_wh); \ diff --git a/pixman/pixman/pixman-sse2.c b/pixman/pixman/pixman-sse2.c index 895510372..f3128c398 100644 --- a/pixman/pixman/pixman-sse2.c +++ b/pixman/pixman/pixman-sse2.c @@ -3377,14 +3377,14 @@ sse2_fill (pixman_implementation_t *imp, if (w >= 1 && ((uintptr_t)d & 1)) { - *(uint8_t *)d = filler; + *(uint8_t *)d = filler&0xff; w -= 1; d += 1; } while (w >= 2 && ((uintptr_t)d & 3)) { - *(uint16_t *)d = filler; + *(uint16_t *)d = filler&0xffff; w -= 2; d += 2; } @@ -3450,14 +3450,14 @@ sse2_fill (pixman_implementation_t *imp, if (w >= 2) { - *(uint16_t *)d = filler; + *(uint16_t *)d = filler&0xffff; w -= 2; d += 2; } if (w >= 1) { - *(uint8_t *)d = filler; + *(uint8_t *)d = filler&0xff; w -= 1; d += 1; } @@ -5562,20 +5562,20 @@ FAST_NEAREST_MAINLOOP_COMMON (sse2_8888_n_8888_normal_OVER, /***********************************************************************************/ # define BILINEAR_DECLARE_VARIABLES \ - const __m128i xmm_wt = _mm_set_epi16 (wt, wt, wt, wt, wt, wt, wt, wt); \ - const __m128i xmm_wb = _mm_set_epi16 (wb, wb, wb, wb, wb, wb, wb, wb); \ + const __m128i xmm_wt = _mm_set_epi16(wt & 0xffff, wt & 0xffff, wt & 0xffff, wt & 0xffff, wt & 0xffff, wt & 0xffff, wt & 0xffff, wt & 0xffff); \ + const __m128i xmm_wb = _mm_set_epi16(wb & 0xffff, wb & 0xffff, wb & 0xffff, wb & 0xffff, wb & 0xffff, wb & 0xffff, wb & 0xffff, wb & 0xffff); \ const __m128i xmm_addc = _mm_set_epi16 (0, 1, 0, 1, 0, 1, 0, 1); \ - const __m128i xmm_ux1 = _mm_set_epi16 (unit_x, -unit_x, unit_x, -unit_x, \ - unit_x, -unit_x, unit_x, -unit_x); \ - const __m128i xmm_ux4 = _mm_set_epi16 (unit_x * 4, -unit_x * 4, \ - unit_x * 4, -unit_x * 4, \ - unit_x * 4, -unit_x * 4, \ - unit_x * 4, -unit_x * 4); \ + const __m128i xmm_ux1 = _mm_set_epi16 ((unit_x)&0xffff, (-unit_x)&0xffff, (unit_x)&0xffff, (-unit_x)&0xffff, \ + (unit_x)&0xffff, (-unit_x)&0xffff, (unit_x)&0xffff, (-unit_x)&0xffff); \ + const __m128i xmm_ux4 = _mm_set_epi16 ((unit_x * 4)&0xffff, (-unit_x * 4)&0xffff, \ + (unit_x * 4)&0xffff, (-unit_x * 4)&0xffff, \ + (unit_x * 4)&0xffff, (-unit_x * 4)&0xffff, \ + (unit_x * 4)&0xffff, (-unit_x * 4)&0xffff); \ const __m128i xmm_zero = _mm_setzero_si128 (); \ - __m128i xmm_x = _mm_set_epi16 (vx + unit_x * 3, -(vx + 1) - unit_x * 3, \ - vx + unit_x * 2, -(vx + 1) - unit_x * 2, \ - vx + unit_x * 1, -(vx + 1) - unit_x * 1, \ - vx + unit_x * 0, -(vx + 1) - unit_x * 0); \ + __m128i xmm_x = _mm_set_epi16((vx + unit_x * 3) & 0xffff, (-(vx + 1) - unit_x * 3) & 0xffff, \ + (vx + unit_x * 2) & 0xffff, (-(vx + 1) - unit_x * 2) & 0xffff, \ + (vx + unit_x * 1) & 0xffff, (-(vx + 1) - unit_x * 1) & 0xffff, \ + (vx + unit_x * 0) & 0xffff, (-(vx + 1) - unit_x * 0) & 0xffff); \ __m128i xmm_wh_state; #define BILINEAR_INTERPOLATE_ONE_PIXEL_HELPER(pix, phase_) \ @@ -5610,18 +5610,18 @@ do { \ #else /************************************************************************/ # define BILINEAR_DECLARE_VARIABLES \ - const __m128i xmm_wt = _mm_set_epi16 (wt, wt, wt, wt, wt, wt, wt, wt); \ - const __m128i xmm_wb = _mm_set_epi16 (wb, wb, wb, wb, wb, wb, wb, wb); \ + const __m128i xmm_wt = _mm_set_epi16(wt & 0xffff, wt & 0xffff, wt & 0xffff, wt & 0xffff, wt & 0xffff, wt & 0xffff, wt & 0xffff, wt & 0xffff); \ + const __m128i xmm_wb = _mm_set_epi16(wb & 0xffff, wb & 0xffff, wb & 0xffff, wb & 0xffff, wb & 0xffff, wb & 0xffff, wb & 0xffff, wb & 0xffff); \ const __m128i xmm_addc = _mm_set_epi16 (0, 1, 0, 1, 0, 1, 0, 1); \ - const __m128i xmm_ux1 = _mm_set_epi16 (unit_x, -unit_x, unit_x, -unit_x, \ - unit_x, -unit_x, unit_x, -unit_x); \ - const __m128i xmm_ux4 = _mm_set_epi16 (unit_x * 4, -unit_x * 4, \ - unit_x * 4, -unit_x * 4, \ - unit_x * 4, -unit_x * 4, \ - unit_x * 4, -unit_x * 4); \ + const __m128i xmm_ux1 = _mm_set_epi16((unit_x) & 0xffff, (-unit_x) & 0xffff, (unit_x) & 0xffff, (-unit_x) & 0xffff, \ + (unit_x) & 0xffff, (-unit_x) & 0xffff, (unit_x) & 0xffff, (-unit_x) & 0xffff); \ + const __m128i xmm_ux4 = _mm_set_epi16((unit_x * 4) & 0xffff, (-unit_x * 4) & 0xffff, \ + (unit_x * 4) & 0xffff, (-unit_x * 4) & 0xffff, \ + (unit_x * 4) & 0xffff, (-unit_x * 4) & 0xffff, \ + (unit_x * 4) & 0xffff, (-unit_x * 4) & 0xffff); \ const __m128i xmm_zero = _mm_setzero_si128 (); \ - __m128i xmm_x = _mm_set_epi16 (vx, -(vx + 1), vx, -(vx + 1), \ - vx, -(vx + 1), vx, -(vx + 1)) + __m128i xmm_x = _mm_set_epi16 (vx&0xffff, (-(vx + 1))&0xffff, vx&0xffff, (-(vx + 1))&0xffff, \ + vx&0xffff, (-(vx + 1))&0xffff, vx&0xffff, (-(vx + 1))&0xffff) #define BILINEAR_INTERPOLATE_ONE_PIXEL_HELPER(pix, phase) \ do { \ diff --git a/pixman/pixman/pixman-trap.c b/pixman/pixman/pixman-trap.c index 91766fdbf..7ccf91be3 100644 --- a/pixman/pixman/pixman-trap.c +++ b/pixman/pixman/pixman-trap.c @@ -138,7 +138,7 @@ _pixman_edge_multi_init (pixman_edge_t * e, if (ne > 0) { - int nx = ne / e->dy; + pixman_fixed_48_16_t nx = ne / e->dy; ne -= nx * (pixman_fixed_48_16_t)e->dy; stepx += nx * e->signdx; } diff --git a/pixman/pixman/pixman-version.h b/pixman/pixman/pixman-version.h new file mode 100644 index 000000000..70642e961 --- /dev/null +++ b/pixman/pixman/pixman-version.h @@ -0,0 +1,50 @@ +/* + * Copyright © 2008 Red Hat, Inc. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, copy, + * modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + * Author: Carl D. Worth <cworth@cworth.org> + */ + +#ifndef PIXMAN_VERSION_H__ +#define PIXMAN_VERSION_H__ + +#ifndef PIXMAN_H__ +# error pixman-version.h should only be included by pixman.h +#endif + +#define PIXMAN_VERSION_MAJOR 0 +#define PIXMAN_VERSION_MINOR 19 +#define PIXMAN_VERSION_MICRO 1 + +#define PIXMAN_VERSION_STRING "0.19.1" + +#define PIXMAN_VERSION_ENCODE(major, minor, micro) ( \ + ((major) * 10000) \ + + ((minor) * 100) \ + + ((micro) * 1)) + +#define PIXMAN_VERSION PIXMAN_VERSION_ENCODE( \ + PIXMAN_VERSION_MAJOR, \ + PIXMAN_VERSION_MINOR, \ + PIXMAN_VERSION_MICRO) + +#endif /* PIXMAN_VERSION_H__ */ |