#include "common.h"
#ifdef BUILD_X11
#include <X11/Xlib.h>
#include "context.h"
#include "rgba.h"
#define IS_ALIGNED_128(val) (!((val) & 0x15))
#define IS_ALIGNED_64(val) (!((val) & 0x7))
#define IS_ALIGNED_32(val) (!((val) & 0x3))
#define IS_ALIGNED_16(val) (!((val) & 0x1))
#define IS_MULTIPLE_2(val) (!((val) & 0x1))
#define IS_MULTIPLE_4(val) (!((val) & 0x3))
/* for PPC / Motorola / SPARC, not x86, ALPHA */
/* dont uncomment this - i have this here for my own testing */
/*#define WORDS_BIGENDIAN*/
/* for data in ABGR memory model */
/* NOTES: */
/* x86: RGBA in byte order = ABGR when read as an int (in register/int) */
/* lookup table to see what color index to use */
static DATA8 *_dither_color_lut;
static DATA8 _pal_type;
/* using DATA32 - major speedup for aligned memory reads */
/* these data structs global rather than context-based for speed */
static DATA16 *_dither_r16;
static DATA16 *_dither_g16;
static DATA16 *_dither_b16;
static DATA8 *_dither_r8;
static DATA8 *_dither_g8;
static DATA8 *_dither_b8;
static DATA8 *_dither_666r;
static DATA8 *_dither_666g;
static DATA8 *_dither_666b;
static int dither_a_init = 0;
static DATA8 _dither_a1[8 * 8 * 256];
/* the famous dither matrix */
const DATA8 _dither_44[4][4] = {
{0, 4, 1, 5},
{6, 2, 7, 3},
{1, 5, 0, 4},
{7, 3, 6, 2}
};
const DATA8 _dither_88[8][8] = {
{0, 32, 8, 40, 2, 34, 10, 42},
{48, 16, 56, 24, 50, 18, 58, 26},
{12, 44, 4, 36, 14, 46, 6, 38},
{60, 28, 52, 20, 62, 30, 54, 22},
{3, 35, 11, 43, 1, 33, 9, 41},
{51, 19, 59, 27, 49, 17, 57, 25},
{15, 47, 7, 39, 13, 45, 5, 37},
{63, 31, 55, 23, 61, 29, 53, 21}
};
/* This dither table was generated by Raph Levien using patented
* technology (US Patent 5,276,535). The dither table itself is in the
* public domain. */
const DATA8 _dither_128128[128][128] = {
{0, 41, 23, 5, 17, 39, 7, 15, 62, 23, 40, 51, 31, 47, 9, 32, 52, 27, 57, 25,
6, 61, 27, 52, 37, 7, 40, 63, 18, 36, 10, 42, 25, 62, 45, 34, 20, 42, 37,
14, 35, 29, 50, 10, 61, 2, 40, 8, 37, 12, 58, 22, 5, 41, 10, 39, 0, 60, 11,
46, 2, 55, 38, 17, 36, 59, 13, 54, 37, 56, 8, 29, 16, 13, 63, 22, 41, 55, 7,
20, 49, 14, 23, 55, 37, 23, 19, 36, 15, 49, 23, 63, 30, 14, 38, 27, 53, 13,
22, 41, 19, 31, 7, 19, 50, 30, 49, 16, 3, 32, 56, 40, 29, 34, 8, 48, 19, 45,
4, 51, 12, 46, 35, 49, 16, 42, 12, 62},
{30, 57, 36, 54, 47, 34, 52, 27, 43, 4, 28, 7, 17, 36, 62, 13, 44, 7, 18, 48,
33, 21, 44, 14, 30, 47, 12, 33, 5, 55, 31, 58, 13, 30, 4, 17, 52, 10, 60,
26, 46, 0, 39, 27, 42, 22, 47, 25, 60, 32, 9, 38, 48, 17, 59, 30, 49, 18,
34, 25, 51, 19, 5, 48, 21, 8, 28, 46, 1, 32, 41, 19, 54, 47, 37, 18, 28, 11,
44, 30, 39, 56, 2, 33, 8, 42, 61, 28, 58, 8, 46, 9, 41, 4, 58, 7, 21, 48,
59, 10, 52, 14, 42, 57, 12, 25, 7, 53, 42, 24, 11, 50, 17, 59, 42, 2, 36,
60, 32, 17, 63, 29, 21, 7, 59, 32, 24, 39},
{22, 8, 16, 32, 3, 25, 13, 57, 18, 45, 58, 39, 55, 20, 5, 42, 23, 34, 63, 1,
51, 10, 58, 4, 60, 23, 53, 27, 44, 21, 3, 48, 8, 50, 43, 54, 27, 32, 5, 55,
21, 58, 12, 53, 6, 36, 14, 50, 17, 29, 53, 15, 24, 52, 7, 36, 13, 42, 4, 53,
9, 35, 61, 26, 56, 32, 49, 15, 62, 23, 6, 60, 2, 31, 4, 48, 58, 38, 15, 61,
5, 25, 47, 28, 50, 15, 7, 40, 3, 32, 33, 52, 25, 50, 35, 42, 61, 3, 28, 36,
23, 63, 4, 33, 46, 62, 36, 23, 60, 6, 54, 28, 4, 37, 23, 55, 25, 8, 42, 54,
14, 6, 56, 38, 19, 52, 4, 46},
{48, 53, 43, 12, 45, 63, 30, 37, 9, 34, 21, 1, 25, 47, 29, 58, 3, 54, 15, 39,
29, 17, 38, 35, 20, 43, 1, 49, 15, 59, 29, 39, 22, 35, 16, 23, 1, 47, 39,
18, 8, 44, 25, 31, 57, 19, 63, 4, 45, 3, 42, 61, 1, 31, 45, 20, 57, 29, 62,
21, 32, 41, 14, 44, 3, 39, 5, 34, 10, 43, 51, 35, 23, 52, 40, 10, 21, 1, 53,
18, 51, 43, 12, 62, 18, 54, 26, 51, 20, 57, 14, 1, 62, 16, 11, 18, 32, 39,
17, 44, 1, 48, 26, 37, 18, 2, 51, 14, 28, 45, 35, 18, 57, 13, 47, 11, 51,
20, 2, 39, 31, 47, 25, 1, 50, 11, 60, 7},
{18, 28, 1, 56, 21, 10, 51, 2, 46, 54, 14, 61, 11, 50, 13, 38, 19, 31, 45, 9,
55, 24, 47, 5, 54, 9, 62, 11, 35, 8, 51, 14, 57, 6, 63, 40, 58, 14, 51, 28,
62, 34, 15, 48, 1, 41, 30, 35, 55, 21, 34, 11, 49, 37, 8, 52, 4, 23, 15, 43,
1, 58, 11, 23, 53, 16, 55, 26, 58, 18, 27, 12, 45, 14, 25, 63, 42, 33, 27,
35, 9, 31, 21, 38, 1, 44, 34, 12, 48, 38, 21, 44, 29, 47, 26, 53, 1, 46, 54,
8, 59, 29, 11, 55, 22, 41, 33, 20, 39, 1, 48, 9, 44, 32, 5, 62, 29, 44, 57,
23, 10, 58, 34, 43, 15, 37, 26, 33},
{51, 38, 59, 24, 35, 42, 19, 60, 5, 32, 41, 26, 43, 33, 7, 53, 48, 11, 59,
23, 42, 2, 61, 30, 16, 40, 32, 24, 56, 41, 19, 33, 37, 26, 47, 9, 31, 22, 2,
45, 9, 54, 4, 37, 21, 52, 11, 23, 7, 57, 16, 25, 55, 18, 63, 27, 46, 39, 56,
10, 50, 37, 29, 47, 19, 63, 24, 9, 46, 2, 39, 60, 9, 57, 30, 7, 49, 11, 59,
3, 45, 57, 5, 60, 29, 22, 5, 60, 30, 9, 59, 18, 40, 6, 57, 36, 30, 12, 24,
34, 15, 40, 52, 6, 49, 9, 58, 4, 63, 12, 26, 61, 22, 53, 38, 16, 35, 14, 28,
50, 42, 17, 5, 28, 62, 20, 54, 12},
{26, 6, 31, 15, 49, 6, 38, 27, 22, 49, 16, 56, 2, 62, 30, 21, 0, 36, 28, 6,
49, 32, 13, 52, 26, 50, 19, 46, 3, 26, 62, 0, 53, 12, 29, 3, 53, 41, 60, 24,
38, 13, 58, 16, 43, 9, 59, 39, 46, 28, 44, 40, 2, 33, 13, 41, 16, 6, 47, 31,
26, 17, 57, 6, 38, 0, 42, 36, 29, 52, 20, 31, 48, 0, 34, 56, 20, 36, 23, 54,
14, 41, 24, 37, 10, 55, 46, 25, 16, 45, 36, 4, 55, 23, 15, 8, 50, 62, 5, 56,
44, 20, 13, 28, 59, 31, 24, 47, 31, 52, 37, 17, 40, 0, 26, 49, 3, 60, 7, 33,
0, 61, 53, 40, 8, 45, 2, 41},
{16, 63, 43, 4, 61, 24, 56, 13, 53, 8, 36, 12, 24, 41, 16, 46, 60, 26, 52,
39, 14, 57, 21, 37, 0, 45, 7, 59, 38, 17, 43, 10, 45, 20, 61, 43, 19, 11,
33, 17, 50, 32, 23, 61, 28, 49, 26, 0, 18, 51, 5, 60, 22, 58, 29, 0, 59, 34,
19, 62, 3, 52, 7, 44, 30, 59, 13, 50, 15, 62, 7, 17, 38, 22, 44, 15, 40, 4,
47, 28, 33, 17, 49, 16, 51, 40, 10, 56, 0, 53, 13, 49, 28, 38, 60, 21, 43,
19, 37, 27, 3, 51, 34, 39, 0, 45, 15, 43, 10, 21, 3, 55, 8, 33, 59, 10, 41,
18, 52, 24, 46, 20, 30, 13, 58, 22, 36, 57},
{50, 34, 11, 47, 29, 17, 44, 0, 33, 63, 28, 46, 52, 5, 57, 10, 42, 18, 4, 63,
20, 8, 44, 10, 56, 34, 14, 29, 5, 54, 23, 59, 32, 49, 7, 34, 49, 27, 56, 0,
42, 7, 46, 3, 40, 6, 54, 32, 62, 13, 36, 10, 47, 8, 35, 49, 24, 51, 12, 40,
22, 35, 60, 12, 22, 51, 33, 4, 40, 25, 43, 55, 5, 54, 12, 61, 26, 51, 8, 62,
0, 53, 7, 63, 2, 32, 19, 34, 42, 24, 31, 63, 2, 10, 45, 33, 0, 48, 9, 61,
22, 47, 8, 62, 18, 56, 7, 54, 27, 57, 46, 30, 50, 19, 45, 30, 56, 36, 22,
47, 11, 38, 3, 51, 32, 48, 18, 9},
{0, 21, 40, 19, 52, 9, 37, 48, 20, 40, 3, 18, 27, 38, 35, 22, 31, 56, 13, 35,
46, 28, 60, 40, 27, 18, 61, 50, 41, 30, 7, 36, 2, 25, 16, 57, 5, 15, 47, 29,
55, 19, 30, 52, 15, 34, 20, 12, 43, 30, 20, 54, 25, 44, 53, 12, 38, 5, 55,
27, 48, 15, 33, 27, 45, 8, 19, 28, 56, 11, 33, 49, 18, 36, 29, 2, 45, 16,
39, 19, 31, 43, 27, 35, 20, 52, 26, 6, 61, 11, 41, 17, 29, 51, 20, 56, 25,
32, 41, 17, 53, 31, 25, 14, 42, 23, 35, 16, 38, 6, 34, 12, 15, 62, 6, 21,
13, 1, 63, 9, 55, 27, 43, 25, 14, 4, 31, 55},
{44, 29, 61, 2, 35, 58, 26, 15, 60, 10, 51, 59, 14, 55, 8, 50, 2, 44, 25, 51,
1, 33, 16, 4, 48, 36, 2, 21, 12, 57, 48, 13, 51, 55, 40, 28, 37, 62, 8, 39,
12, 63, 36, 10, 59, 24, 56, 47, 9, 50, 41, 1, 32, 17, 6, 21, 61, 30, 9, 43,
1, 54, 41, 2, 54, 37, 48, 61, 1, 46, 21, 3, 58, 24, 50, 32, 60, 10, 57, 25,
46, 12, 59, 4, 45, 13, 57, 47, 27, 39, 5, 58, 47, 14, 35, 4, 52, 13, 60, 6,
36, 10, 45, 55, 4, 50, 29, 2, 61, 50, 25, 58, 44, 24, 36, 42, 54, 28, 40,
32, 16, 56, 6, 62, 46, 39, 60, 23},
{7, 48, 14, 54, 23, 40, 4, 45, 30, 22, 42, 32, 1, 44, 20, 29, 58, 8, 37, 19,
41, 54, 24, 58, 9, 53, 25, 46, 34, 16, 23, 38, 27, 11, 18, 1, 52, 21, 35,
22, 48, 5, 25, 45, 18, 38, 2, 27, 35, 4, 57, 15, 62, 39, 57, 28, 42, 16, 36,
60, 24, 18, 10, 63, 20, 5, 16, 23, 37, 14, 59, 27, 41, 8, 13, 42, 21,
没有合适的资源?快使用搜索试试~ 我知道了~
imlib2 open source code
需积分: 9 24 下载量 190 浏览量
2012-12-03
15:50:08
上传
评论
收藏 964KB GZ 举报
温馨提示
共165个文件
c:55个
h:29个
png:18个
imlib2 dev open source code for convenient download
资源推荐
资源详情
资源评论
收起资源包目录
imlib2 open source code (165个子文件)
configure.ac 13KB
Makefile.am 3KB
Makefile.am 2KB
Makefile.am 1KB
Makefile.am 994B
Makefile.am 490B
Makefile.am 324B
Makefile.am 180B
Makefile.am 104B
Makefile.am 61B
Makefile.am 61B
Makefile.am 58B
AUTHORS 1KB
rgba.c 233KB
api.c 163KB
blend.c 60KB
polygon.c 56KB
scale.c 55KB
imlib2_show.c 54KB
image.c 36KB
loader_bmp.c 32KB
span.c 29KB
loader_xpm.c 28KB
line.c 22KB
grab.c 22KB
loader_pnm.c 20KB
loader_lbm.c 19KB
color.c 18KB
loader_tiff.c 18KB
rend.c 18KB
ellipse.c 17KB
loader_tga.c 16KB
rgbadraw.c 16KB
rotate.c 16KB
grad.c 15KB
loader_id3.c 15KB
loader_png.c 14KB
font_draw.c 13KB
imlib2_view.c 12KB
font_load.c 12KB
imlib2_test.c 12KB
loader_jpeg.c 11KB
ximage.c 10KB
font_main.c 9KB
font_query.c 9KB
script.c 8KB
file.c 7KB
loader_gif.c 7KB
filter_bumpmap.c 7KB
filter_colormod.c 6KB
colormod.c 6KB
filter.c 6KB
context.c 5KB
updates.c 5KB
imlib2_colorspace.c 5KB
dynamic_filters.c 5KB
loader_argb.c 5KB
rectangle.c 5KB
color_helpers.c 4KB
imlib2_poly.c 4KB
imlib2_grab.c 4KB
imlib2_bumpmap.c 3KB
loader_bz2.c 3KB
filter_test.c 3KB
loader_zlib.c 3KB
draw.c 3KB
imlib2_conv.c 3KB
format.c 20B
ChangeLog 117KB
compile 3KB
configure 486KB
COPYING 2KB
COPYING-PLAIN 2KB
depcomp 18KB
Doxyfile 4KB
gendoc 390B
imlib2.gif 7KB
blank.gif 266B
config.guess 44KB
blend.h 26KB
Imlib2.h 25KB
image.h 7KB
font.h 5KB
rgbadraw.h 4KB
colormod.h 2KB
script.h 2KB
rend.h 2KB
color.h 1KB
rgba.h 1KB
context.h 1KB
rotate.h 1KB
common.h 1KB
ximage.h 1KB
dynamic_filters.h 1KB
filter.h 1012B
grad.h 1009B
file.h 952B
grab.h 872B
scale.h 837B
draw.h 720B
共 165 条
- 1
- 2
资源评论
fanbird2008
- 粉丝: 209
- 资源: 249
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功