亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gdk-pixbuf-xlib-drawable.c

?? linux下電話本所依賴的一些圖形庫
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- *//* GdkPixbuf library - convert X drawable information to RGB * * Copyright (C) 1999 Michael Zucchi * * Authors: Michael Zucchi <zucchi@zedzone.mmc.com.au> *          Cody Russell <bratsche@dfw.net> * 	    Federico Mena-Quintero <federico@gimp.org> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the * Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. *//* Ported to Xlib by John Harper <john@dcs.warwick.ac.uk> */#include <config.h>#include <stdio.h>#include <string.h>#include <gdk-pixbuf/gdk-pixbuf-private.h>#include "gdk-pixbuf-xlib-private.h"#include <X11/Xlib.h>#include <X11/Xutil.h>#if (G_BYTE_ORDER == G_LITTLE_ENDIAN)#define LITTLE#endif#define d(x)static guint32 mask_table[] = {	0x00000000, 0x00000001, 0x00000003, 0x00000007,	0x0000000f, 0x0000001f, 0x0000003f, 0x0000007f,	0x000000ff, 0x000001ff, 0x000003ff, 0x000007ff,	0x00000fff, 0x00001fff, 0x00003fff, 0x00007fff,	0x0000ffff, 0x0001ffff, 0x0003ffff, 0x0007ffff,	0x000fffff, 0x001fffff, 0x003fffff, 0x007fffff,	0x00ffffff, 0x01ffffff, 0x03ffffff, 0x07ffffff,	0x0fffffff, 0x1fffffff, 0x3fffffff, 0x7fffffff,	0xffffffff};/* color handling */typedef struct xlib_colormap_struct xlib_colormap;struct xlib_colormap_struct {	int size;	XColor *colors;	Visual *visual;	Colormap colormap;};static xlib_colormap *xlib_get_colormap (Colormap id, Visual *visual){	int i;	xlib_colormap *xc = g_new (xlib_colormap, 1);	xc->size = visual->map_entries;	xc->colors = g_new (XColor, xc->size);	xc->visual = visual;	xc->colormap = id;	for (i = 0; i < xc->size; i++) {		xc->colors[i].pixel = i;		xc->colors[i].flags = DoRed | DoGreen | DoBlue;	}	XQueryColors (gdk_pixbuf_dpy, xc->colormap, xc->colors, xc->size);	return xc;}static voidxlib_colormap_free (xlib_colormap *xc){	g_free (xc->colors);	g_free (xc);}/* from gdkvisual.c */static voidvisual_decompose_mask (gulong  mask,		       gint   *shift,		       gint   *prec){	*shift = 0;	*prec = 0;	while (!(mask & 0x1)) {		(*shift)++;		mask >>= 1;	}	while (mask & 0x1) {		(*prec)++;		mask >>= 1;	}}static gboolean x_error;static inthandle_x_error (Display *dpy, XErrorEvent *ev){	x_error = TRUE;	return 0;}static gbooleandrawable_is_pixmap (Drawable d){	/* copied from Imlib */	XErrorHandler errh;	XWindowAttributes wa;	gboolean is_pixmap;	errh = XSetErrorHandler (handle_x_error);	x_error = FALSE;	XGetWindowAttributes (gdk_pixbuf_dpy, d, &wa);	XSync (gdk_pixbuf_dpy, False);	is_pixmap = x_error;	XSetErrorHandler (errh);	return is_pixmap;}/*  convert 1 bits-pixel data  no alpha*/static voidrgb1 (XImage *image, guchar *pixels, int rowstride, xlib_colormap *colormap){	int xx, yy;	int width, height;	int bpl;	guint8 *s;	register guint8 data;	guint8 *o;	guint8 *srow = image->data, *orow = pixels;	d (printf ("1 bits/pixel\n"));	/* convert upto 8 pixels/time */	/* its probably not worth trying to make this run very fast, who uses	   1 bit displays anymore? */	width = image->width;	height = image->height;	bpl = image->bytes_per_line;	for (yy = 0; yy < height; yy++) {		s = srow;		o = orow;		for (xx = 0; xx < width; xx ++) {			data = srow[xx >> 3] >> (7 - (xx & 7)) & 1;			*o++ = colormap->colors[data].red;			*o++ = colormap->colors[data].green;			*o++ = colormap->colors[data].blue;		}		srow += bpl;		orow += rowstride;	}}/*  convert 1 bits/pixel data  with alpha*/static voidrgb1a (XImage *image, guchar *pixels, int rowstride, xlib_colormap *colormap){	int xx, yy;	int width, height;	int bpl;	guint8 *s;	register guint8 data;	guint8 *o;	guint8 *srow = image->data, *orow = pixels;	guint32 remap[2];	d (printf ("1 bits/pixel\n"));	/* convert upto 8 pixels/time */	/* its probably not worth trying to make this run very fast, who uses	   1 bit displays anymore? */	width = image->width;	height = image->height;	bpl = image->bytes_per_line;	for (xx = 0; xx < 2; xx++) {#ifdef LITTLE		remap[xx] = 0xff000000			| colormap->colors[xx].blue << 16			| colormap->colors[xx].green << 8			| colormap->colors[xx].red;#else		remap[xx] = 0xff			| colormap->colors[xx].red << 24			| colormap->colors[xx].green << 16			| colormap->colors[xx].blue << 8;#endif	}	for (yy = 0; yy < height; yy++) {		s = srow;		o = orow;		for (xx = 0; xx < width; xx ++) {			data = srow[xx >> 3] >> (7 - (xx & 7)) & 1;			*o++ = remap[data];		}		srow += bpl;		orow += rowstride;	}}/*  convert 8 bits/pixel data  no alpha*/static voidrgb8 (XImage *image, guchar *pixels, int rowstride, xlib_colormap *colormap){	int xx, yy;	int width, height;	int bpl;	guint32 mask;	register guint32 data;	guint8 *srow = image->data, *orow = pixels;	register guint8 *s;	register guint8 *o;	width = image->width;	height = image->height;	bpl = image->bytes_per_line;	d (printf ("8 bit, no alpha output\n"));	mask = mask_table[image->depth];	for (yy = 0; yy < height; yy++) {		s = srow;		o = orow;		for (xx = 0; xx < width; xx++) {			data = *s++ & mask;			*o++ = colormap->colors[data].red;			*o++ = colormap->colors[data].green;			*o++ = colormap->colors[data].blue;		}		srow += bpl;		orow += rowstride;	}}/*  convert 8 bits/pixel data  with alpha*/static voidrgb8a (XImage *image, guchar *pixels, int rowstride, xlib_colormap *colormap){	int xx, yy;	int width, height;	int bpl;	guint32 mask;	register guint32 data;	guint32 remap[256];	register guint8 *s;	/* read 2 pixels at once */	register guint32 *o;	guint8 *srow = image->data, *orow = pixels;	width = image->width;	height = image->height;	bpl = image->bytes_per_line;	d (printf ("8 bit, with alpha output\n"));	mask = mask_table[image->depth];	for (xx = 0; xx < colormap->size; xx++) {#ifdef LITTLE		remap[xx] = 0xff000000			| colormap->colors[xx].blue << 16			| colormap->colors[xx].green << 8			| colormap->colors[xx].red;#else		remap[xx] = 0xff			| colormap->colors[xx].red << 24			| colormap->colors[xx].green << 16			| colormap->colors[xx].blue << 8;#endif	}	for (yy = 0; yy < height; yy++) {		s = srow;		o = (guint32 *) orow;		for (xx = 0; xx < width; xx ++) {			data = *s++ & mask;			*o++ = remap[data];		}		srow += bpl;		orow += rowstride;	}}/*  convert 16 bits/pixel data  no alpha  data in lsb format*/static voidrgb565lsb (XImage *image, guchar *pixels, int rowstride, xlib_colormap *colormap){	int xx, yy;	int width, height;	int bpl;#ifdef LITTLE	register guint32 *s;	/* read 2 pixels at once */#else	register guint8 *s;	/* read 2 pixels at once */#endif	register guint16 *o;	guint8 *srow = image->data, *orow = pixels;	width = image->width;	height = image->height;	bpl = image->bytes_per_line;	for (yy = 0; yy < height; yy++) {#ifdef LITTLE		s = (guint32 *) srow;#else		s = srow;#endif		o = (guint16 *) orow;		for (xx = 1; xx < width; xx += 2) {			register guint32 data;#ifdef LITTLE			data = *s++;			*o++ = (data & 0xf800) >> 8 | (data & 0xe000) >> 13				| (data & 0x7e0) << 5 | (data & 0x600) >> 1;			*o++ = (data & 0x1f) << 3 | (data & 0x1c) >> 2				| (data & 0xf8000000) >> 16 | (data & 0xe0000000) >> 21;			*o++ = (data & 0x7e00000) >> 19 | (data & 0x6000000) >> 25				| (data & 0x1f0000) >> 5 | (data & 0x1c0000) >> 10;#else			/* swap endianness first */			data = s[1] | s[0] << 8 | s[3] << 16 | s[2] << 24;			s += 4;			*o++ = (data & 0xf800) | (data & 0xe000) >> 5				| (data & 0x7e0) >> 3 | (data & 0x600) >> 9;			*o++ = (data & 0x1f) << 11 | (data & 0x1c) << 6				| (data & 0xf8000000) >> 24 | (data & 0xe0000000) >> 29;			*o++ = (data & 0x7e00000) >> 11 | (data & 0x6000000) >> 17				| (data & 0x1f0000) >> 13 | (data & 0x1c0000) >> 18;#endif		}		/* check for last remaining pixel */		if (width & 1) {			register guint16 data;#ifdef LITTLE			data = *((short *) s);#else			data = *((short *) s);			data = ((data >> 8) & 0xff) | ((data & 0xff) << 8);#endif			((char *) o)[0] = ((data >> 8) & 0xf8) | ((data >> 13) & 0x7);			((char *) o)[1] = ((data >> 3) & 0xfc) | ((data >> 9) & 0x3);			((char *) o)[2] = ((data << 3) & 0xf8) | ((data >> 2) & 0x7);		}		srow += bpl;		orow += rowstride;	}}/*  convert 16 bits/pixel data  no alpha  data in msb format*/static voidrgb565msb (XImage *image, guchar *pixels, int rowstride, xlib_colormap *colormap){	int xx, yy;	int width, height;	int bpl;#ifdef LITTLE	register guint8 *s;	/* need to swap data order */#else	register guint32 *s;	/* read 2 pixels at once */#endif	register guint16 *o;	guint8 *srow = image->data, *orow = pixels;	width = image->width;	height = image->height;	bpl = image->bytes_per_line;	for (yy = 0; yy < height; yy++) {#ifdef LITTLE		s = srow;#else		s = (guint32 *) srow;#endif		o = (guint16 *) orow;		for (xx = 1; xx < width; xx += 2) {			register guint32 data;#ifdef LITTLE			/* swap endianness first */			data = s[1] | s[0] << 8 | s[3] << 16 | s[2] << 24;			s += 4;			*o++ = (data & 0xf800) >> 8 | (data & 0xe000) >> 13				| (data & 0x7e0) << 5 | (data & 0x600) >> 1;			*o++ = (data & 0x1f) << 3 | (data & 0x1c) >> 2				| (data & 0xf8000000) >> 16 | (data & 0xe0000000) >> 21;			*o++ = (data & 0x7e00000) >> 19 | (data & 0x6000000) >> 25				| (data & 0x1f0000) >> 5 | (data & 0x1c0000) >> 10;#else			data = *s++;			*o++ = (data & 0xf800) | (data & 0xe000) >> 5				| (data & 0x7e0) >> 3 | (data & 0x600) >> 9;			*o++ = (data & 0x1f) << 11 | (data & 0x1c) << 6				| (data & 0xf8000000) >> 24 | (data & 0xe0000000) >> 29;			*o++ = (data & 0x7e00000) >> 11 | (data & 0x6000000) >> 17				| (data & 0x1f0000) >> 13 | (data & 0x1c0000) >> 18;#endif		}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩大陆一区二区| 在线观看国产一区二区| 视频一区视频二区中文| 亚洲人成在线播放网站岛国| 国产精品免费人成网站| 中文字幕欧美国产| 国产欧美日韩视频在线观看| 国产欧美在线观看一区| 国产精品五月天| 中文字幕亚洲一区二区va在线| 久久久99久久| 亚洲国产精品精华液2区45| 国产精品天干天干在线综合| 亚洲色图制服丝袜| 亚洲电影一级片| 美国三级日本三级久久99| 黑人巨大精品欧美黑白配亚洲| 激情成人午夜视频| 成人免费av资源| 欧美亚洲图片小说| 精品女同一区二区| 国产精品麻豆久久久| 亚洲图片一区二区| 久久66热偷产精品| 91欧美一区二区| 欧美制服丝袜第一页| 欧美一区二区视频免费观看| 国产亚洲精品aa| 国产精品久线观看视频| 午夜免费久久看| 韩国成人精品a∨在线观看| 波多野结衣欧美| 欧美三级日本三级少妇99| 日韩你懂的在线播放| 国产精品视频免费| 日韩精品欧美成人高清一区二区| 韩国女主播成人在线| 在线一区二区三区做爰视频网站| 日韩欧美一区中文| 亚洲精品成a人| 日韩成人av影视| 91同城在线观看| 欧美r级电影在线观看| 亚洲三级在线播放| 国内偷窥港台综合视频在线播放| 色一情一伦一子一伦一区| 精品国产乱子伦一区| 一区二区三国产精华液| 国产精品夜夜爽| 日韩情涩欧美日韩视频| 一区二区三区.www| 波多野结衣亚洲一区| wwww国产精品欧美| 免费在线观看不卡| 欧美日韩国产小视频| 中文字幕在线不卡| 国产高清不卡一区| 日韩欧美一区二区在线视频| 亚洲一线二线三线视频| 91浏览器入口在线观看| 国产清纯美女被跳蛋高潮一区二区久久w | 欧美一区二区成人| 亚洲欧美乱综合| 国产成都精品91一区二区三| 欧美精品一区二区高清在线观看| 亚洲国产成人tv| 欧美午夜电影在线播放| 亚洲免费观看高清完整版在线观看 | 亚洲欧洲99久久| 国产**成人网毛片九色| 久久精品在这里| 国产精品1区2区| 欧美激情一区二区三区在线| 久久99热99| 337p日本欧洲亚洲大胆色噜噜| 奇米影视一区二区三区| 国产精品网站导航| 国产福利91精品一区二区三区| 日韩免费看的电影| 久久国产欧美日韩精品| 亚洲精品一线二线三线无人区| 精东粉嫩av免费一区二区三区| 精品国产三级电影在线观看| 久久爱www久久做| 久久综合av免费| 粉嫩av亚洲一区二区图片| 亚洲欧洲日韩在线| 欧美三电影在线| 午夜视频一区在线观看| 欧美成人免费网站| 国产99精品在线观看| 亚洲精品亚洲人成人网| 欧美日韩精品一区二区在线播放| 日韩二区在线观看| 久久精品一区二区三区av| 丁香五精品蜜臀久久久久99网站| 中文字幕一区二区三区乱码在线| 色94色欧美sute亚洲线路一久 | 日本韩国欧美一区| 亚洲一区二区偷拍精品| 欧美日韩一区不卡| 精品综合久久久久久8888| 亚洲国产精品成人久久综合一区| 91丨porny丨国产| 婷婷开心激情综合| 国产日韩欧美一区二区三区乱码 | 337p亚洲精品色噜噜| 久久 天天综合| 亚洲乱码国产乱码精品精小说| 欧美丝袜自拍制服另类| 国产精品综合二区| 亚洲卡通欧美制服中文| 日韩欧美区一区二| 一本大道久久a久久精二百| 日韩av中文字幕一区二区| 亚洲欧洲日韩女同| 2023国产精品| 欧美一区二区三区免费大片 | 欧美久久久影院| 国产高清在线精品| 亚洲成人777| 亚洲色图清纯唯美| 国产亚洲短视频| 欧美一级爆毛片| 色婷婷av一区| av综合在线播放| 国产成人自拍网| 免费在线观看视频一区| 一区二区高清在线| 国产精品嫩草99a| 久久新电视剧免费观看| 日韩精品一区二区三区视频播放| 日本电影欧美片| a级高清视频欧美日韩| 99久久99久久久精品齐齐| 国产在线播精品第三| 免费在线一区观看| 亚洲国产一区二区三区青草影视| 国产精品久久综合| 中文乱码免费一区二区| 国产夜色精品一区二区av| 欧美xxxxx牲另类人与| 宅男在线国产精品| 欧美精品一二三| 欧美日韩国产bt| 精品视频资源站| 欧美日韩三级在线| 欧美视频在线一区二区三区| 色婷婷久久99综合精品jk白丝| eeuss影院一区二区三区| 国产91露脸合集magnet| 国产成人免费xxxxxxxx| 国产精品亚洲第一| 顶级嫩模精品视频在线看| 高清在线不卡av| 亚洲图片有声小说| 日本中文字幕不卡| 2020国产精品自拍| 久久女同性恋中文字幕| 久久一区二区三区四区| 久久久精品2019中文字幕之3| 欧美zozo另类异族| 国产视频一区二区三区在线观看| 国产亚洲精品7777| 中文字幕一区二区三区在线播放| 亚洲视频中文字幕| 亚洲一区视频在线| 蓝色福利精品导航| 国产一区二区调教| 丁香婷婷综合网| 91欧美一区二区| 91精品婷婷国产综合久久性色 | 欧美精品日日鲁夜夜添| 91精品国产综合久久福利| 日韩精品最新网址| 欧美国产一区二区在线观看| 国产精品免费观看视频| 亚洲综合视频在线观看| 久久er99热精品一区二区| 国产99久久久精品| 欧美日韩一级视频| 久久亚洲捆绑美女| 一区二区三区四区中文字幕| 蜜桃av一区二区三区| av不卡免费在线观看| 日韩欧美www| 亚洲天堂福利av| 久久99精品网久久| 色婷婷av久久久久久久| 26uuu国产电影一区二区| 亚洲女人****多毛耸耸8| 老司机午夜精品99久久| 91视视频在线观看入口直接观看www | 国产毛片精品视频| 在线日韩一区二区| 久久久无码精品亚洲日韩按摩| 夜夜精品视频一区二区| 国产a视频精品免费观看| 欧美年轻男男videosbes| 中文字幕五月欧美|