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

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

?? spinfo.c

?? 遠程桌面連接工具
?? C
字號:
/* $TOG: spinfo.c /main/17 1997/06/09 14:19:24 barstow $ *//* * Copyright 1990, 1991 Network Computing Devices; * Portions Copyright 1987 by Digital Equipment Corporation * * Permission to use, copy, modify, distribute, and sell this software and * its documentation for any purpose is hereby granted without fee, provided * that the above copyright notice appear in all copies and that both that * copyright notice and this permission notice appear in supporting * documentation, and that the names of Network Computing Devices or Digital * not be used in advertising or publicity pertaining to distribution of * the software without specific, written prior permission. * * NETWORK COMPUTING DEVICES AND DIGITAL DISCLAIM ALL WARRANTIES WITH * REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS, IN NO EVENT SHALL NETWORK COMPUTING DEVICES OR DIGITAL BE * LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * Author: Dave Lemke, Network Computing Devices, Inc *//*Copyright (c) 1987  X ConsortiumPermission is hereby granted, free of charge, to any person obtaininga copy of this software and associated documentation files (the"Software"), to deal in the Software without restriction, includingwithout limitation the rights to use, copy, modify, merge, publish,distribute, sublicense, and/or sell copies of the Software, and topermit persons to whom the Software is furnished to do so, subject tothe following conditions:The above copyright notice and this permission notice shall be includedin all copies or substantial portions of the Software.THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESSOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OFMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OROTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OROTHER DEALINGS IN THE SOFTWARE.Except as contained in this notice, the name of the X Consortium shallnot be used in advertising or otherwise to promote the sale, use orother dealings in this Software without prior written authorizationfrom the X Consortium.*/#include "fntfilst.h"#include "spint.h"#include <math.h>/* percentage of pointsize used to specify ascent & descent */#define	STRETCH_FACTOR	120enum scaleType {    atom, truncate_atom, pixel_size, point_size, resolution_x,    resolution_y, average_width};typedef struct _fontProp {    char       *name;    long        atom;    enum scaleType type;}           fontProp;static fontProp fontNamePropTable[] = {    "FOUNDRY", 0, atom,    "FAMILY_NAME", 0, atom,    "WEIGHT_NAME", 0, atom,    "SLANT", 0, atom,    "SETWIDTH_NAME", 0, atom,    "ADD_STYLE_NAME", 0, atom,    "PIXEL_SIZE", 0, pixel_size,    "POINT_SIZE", 0, point_size,    "RESOLUTION_X", 0, resolution_x,    "RESOLUTION_Y", 0, resolution_y,    "SPACING", 0, atom,    "AVERAGE_WIDTH", 0, average_width,    "CHARSET_REGISTRY", 0, atom,    "CHARSET_ENCODING", 0, truncate_atom,};/* Warning: following array is closely related to the sequence of   defines after it. */static fontProp extraProps[] = {    "FONT", 0, 0,    "COPYRIGHT", 0, 0,    "RAW_PIXEL_SIZE", 0, 0,    "RAW_POINT_SIZE", 0, 0,    "RAW_ASCENT", 0, 0,    "RAW_DESCENT", 0, 0,    "RAW_AVERAGE_WIDTH", 0, 0,};/* this is a bit kludgy */#define	FONTPROP	0#define	COPYRIGHTPROP	1#define RAWPIXELPROP	2#define RAWPOINTPROP	3#define RAWASCENTPROP	4#define RAWDESCENTPROP	5#define RAWWIDTHPROP	6#define NNAMEPROPS (sizeof(fontNamePropTable) / sizeof(fontProp))#define NEXTRAPROPS (sizeof(extraProps) / sizeof(fontProp))#define	NPROPS	(NNAMEPROPS + NEXTRAPROPS)voidsp_make_standard_props(){    int         i;    fontProp   *t;    i = sizeof(fontNamePropTable) / sizeof(fontProp);    for (t = fontNamePropTable; i; i--, t++)	t->atom = MakeAtom(t->name, (unsigned) strlen(t->name), TRUE);    i = sizeof(extraProps) / sizeof(fontProp);    for (t = extraProps; i; i--, t++)	t->atom = MakeAtom(t->name, (unsigned) strlen(t->name), TRUE);}voidsp_make_header(spf, pinfo)    SpeedoFontPtr spf;    FontInfoPtr pinfo;{    int         pixel_size;    SpeedoMasterFontPtr spmf = spf->master;    pinfo->firstCol = spmf->first_char_id & 0xff;    pinfo->firstRow = spmf->first_char_id >> 8;    pinfo->lastCol = spmf->max_id & 0xff;    pinfo->lastRow = spmf->max_id >> 8;    /* XXX -- hackery here */    pinfo->defaultCh = 0;/* computed by FontComputeInfoAccelerators: *  noOverlap *  constantMetrics *  terminalFont *  constantWidth *  inkInside */    pinfo->inkMetrics = 0;    pinfo->allExist = 0;    pinfo->drawDirection = LeftToRight;    pinfo->cachable = 1;    if (spf->specs.xxmult != spf->specs.yymult)	pinfo->anamorphic = TRUE;    else	pinfo->anamorphic = FALSE;/* computed by sp_compute_bounds: *  maxOverlap *  maxbounds *  minbounds *  ink_maxbounds *  ink_minbounds */    pixel_size = spf->vals.pixel_matrix[3] * STRETCH_FACTOR / 100;    pinfo->fontAscent = pixel_size * 764 / 1000;	/* 764 == EM_TOP */    pinfo->fontDescent = pixel_size - pinfo->fontAscent;}static voidadjust_min_max(minc, maxc, tmp)    xCharInfo  *minc,               *maxc,               *tmp;{#define MINMAX(field,ci) \	if (minc->field > (ci)->field) \	     minc->field = (ci)->field; \	if (maxc->field < (ci)->field) \	    maxc->field = (ci)->field;    MINMAX(ascent, tmp);    MINMAX(descent, tmp);    MINMAX(leftSideBearing, tmp);    MINMAX(rightSideBearing, tmp);    MINMAX(characterWidth, tmp);    if ((INT16)minc->attributes > (INT16)tmp->attributes)	minc->attributes = tmp->attributes;    if ((INT16)maxc->attributes < (INT16)tmp->attributes)	maxc->attributes = tmp->attributes;#undef	MINMAX}voidsp_compute_bounds(spf, pinfo, flags, sWidth)    SpeedoFontPtr spf;    FontInfoPtr pinfo;    unsigned long flags;    long *sWidth;{    int         i,                id,                index,		maxOverlap,		overlap,		total_width = 0;    xCharInfo   minchar,                maxchar,                tmpchar;    bbox_t      bbox;    fix31       width;    double      pix_width;    SpeedoMasterFontPtr spmf = spf->master;    int	firstChar;    int num_chars = 0;    firstChar = spmf->first_char_id;    minchar.ascent = minchar.descent =	minchar.leftSideBearing = minchar.rightSideBearing =	minchar.characterWidth = minchar.attributes = 32767;    maxchar.ascent = maxchar.descent =	maxchar.leftSideBearing = maxchar.rightSideBearing =	maxchar.characterWidth = maxchar.attributes = -32767;    maxOverlap = -32767;    *sWidth = 0;    for (i = 0; i < spmf->num_chars; i++) {	int j;	int char_id;	index = spmf->enc[i * 2 + 1];	char_id = spmf->enc[i * 2];      /*       * See if this character is in the list of ranges specified in the       * XLFD name       */	for (j = 0; j < spf->vals.nranges; j++)	    if (char_id >= mincharno(spf->vals.ranges[j]) &&		    char_id <= maxcharno(spf->vals.ranges[j]))		break;	if (spf->vals.nranges && j == spf->vals.nranges)	    continue;	num_chars++;	if (!(flags & ComputeBoundsOnly)) {	    width = sp_get_char_width(index);	    /* convert to pixel coords */	    pix_width = (int)width * (spf->specs.xxmult / 65536L) +		((int) width * (spf->specs.xxmult % 65536L))		/ 65536L;	    pix_width /= 65536L;	    (void) sp_get_char_bbox(index, &bbox);	    bbox.ymax = (bbox.ymax + 32768L) >> 16;	    bbox.ymin = (bbox.ymin + 32768L) >> 16;	    bbox.xmin = (bbox.xmin + 32768L) >> 16;	    bbox.xmax = (bbox.xmax + 32768L) >> 16;	    tmpchar.ascent = bbox.ymax;	    tmpchar.descent = -bbox.ymin;	    tmpchar.characterWidth = (int)(pix_width +		/* round */					   (pix_width > 0 ? 0.5 : -0.5));	    tmpchar.rightSideBearing = bbox.xmax;	    tmpchar.leftSideBearing = bbox.xmin;	    if (!tmpchar.characterWidth &&		tmpchar.ascent == -tmpchar.descent &&		tmpchar.rightSideBearing == tmpchar.leftSideBearing)	    {		/* Character appears non-existent, probably as a result		   of the transformation.  Let's give it one pixel in		   the universe so it's not mistaken for non-existent. */		tmpchar.leftSideBearing = tmpchar.descent = 0;		tmpchar.rightSideBearing = tmpchar.ascent = 1;	    }	    tmpchar.attributes = (int)((double)(int)width / 65.536 + .5);	}	else	    tmpchar = spf->encoding[char_id - firstChar].metrics;	adjust_min_max(&minchar, &maxchar, &tmpchar);	overlap = tmpchar.rightSideBearing - tmpchar.characterWidth;	if (maxOverlap < overlap)	    maxOverlap = overlap;	total_width += ((int)(INT16)tmpchar.attributes);	*sWidth += abs((int)(INT16)tmpchar.attributes);	if (flags & SaveMetrics) {	    id = spmf->enc[i * 2] - firstChar;	    assert(id <= spmf->max_id - firstChar);	    spf->encoding[id].metrics = tmpchar;	}    }    if (num_chars > 0)    {	*sWidth = (int)(((double)*sWidth * 10.0 + (double)num_chars / 2.0) /			  num_chars);	if (total_width < 0)	{	    /* Predominant direction is R->L */	    *sWidth = -*sWidth;	}	spf->vals.width = (int)((double)*sWidth * spf->vals.pixel_matrix[0] /				1000.0 +				(spf->vals.pixel_matrix[0] > 0 ? .5 : -.5));    }    else    {	spf->vals.width = 0;    }    pinfo->maxbounds = maxchar;    pinfo->minbounds = minchar;    pinfo->ink_maxbounds = maxchar;    pinfo->ink_minbounds = minchar;    pinfo->maxOverlap = maxOverlap;}voidsp_compute_props(spf, fontname, pinfo, sWidth)    SpeedoFontPtr spf;    char       *fontname;    FontInfoPtr pinfo;    long	sWidth;{    FontPropPtr pp;    int         i,                nprops;    fontProp   *fpt;    char       *is_str;    char       *ptr1,               *ptr2;    char       *ptr3;    char	tmpname[1024];    FontScalableRec tmpvals;    nprops = pinfo->nprops = NPROPS;    pinfo->isStringProp = (char *) xalloc(sizeof(char) * nprops);    pinfo->props = (FontPropPtr) xalloc(sizeof(FontPropRec) * nprops);    if (!pinfo->isStringProp || !pinfo->props) {	xfree(pinfo->isStringProp);	pinfo->isStringProp = (char *) 0;	xfree(pinfo->props);	pinfo->props = (FontPropPtr) 0;	return;    }    bzero(pinfo->isStringProp, (sizeof(char) * nprops));    ptr2 = fontname;    for (i = NNAMEPROPS, pp = pinfo->props, fpt = fontNamePropTable,	    is_str = pinfo->isStringProp;	    i;	    i--, pp++, fpt++, is_str++) {        if (*ptr2)        {            ptr1 = ptr2 + 1;            if (!(ptr2 = strchr(ptr1, '-'))) ptr2 = strchr(ptr1, '\0');        }	pp->name = fpt->atom;	switch (fpt->type) {	case atom:	    *is_str = TRUE;	    pp->value = MakeAtom(ptr1, ptr2 - ptr1, TRUE);	    break;	case truncate_atom:	    *is_str = TRUE;	    for (ptr3 = ptr1; *ptr3; ptr3++)		if (*ptr3 == '[')		    break;	    pp->value = MakeAtom(ptr1, ptr3 - ptr1, TRUE);	    break;	case pixel_size:	    pp->value = (int)(spf->vals.pixel_matrix[3] +			      (spf->vals.pixel_matrix[3] > 0 ? .5 : -.5));	    break;	case point_size:	    pp->value = (int)(spf->vals.point_matrix[3] * 10.0 +			      (spf->vals.point_matrix[3] > 0 ? .5 : -.5));	    break;	case resolution_x:	    pp->value = spf->vals.x;	    break;	case resolution_y:	    pp->value = spf->vals.y;	    break;	case average_width:	    pp->value = spf->vals.width;	    break;	}    }    for (i = 0, fpt = extraProps; i < NEXTRAPROPS; i++, is_str++, pp++, fpt++) {	pp->name = fpt->atom;	switch (i) {	case FONTPROP:	    *is_str = TRUE;	    strcpy(tmpname, fontname);	    FontParseXLFDName(tmpname, &tmpvals, FONT_XLFD_REPLACE_ZERO);	    FontParseXLFDName(tmpname, &spf->vals, FONT_XLFD_REPLACE_VALUE);	    pp->value = MakeAtom(tmpname, strlen(tmpname), TRUE);	    break;	case COPYRIGHTPROP:	    *is_str = TRUE;	    pp->value = MakeAtom(spf->master->copyright,				 strlen(spf->master->copyright), TRUE);	    break;         case RAWPIXELPROP:            *is_str = FALSE;            pp->value = 1000;	    break;         case RAWPOINTPROP:            *is_str = FALSE;            pp->value = (long)(72270.0 / (double)spf->vals.y + .5);	    break;         case RAWASCENTPROP:            *is_str = FALSE;            pp->value = STRETCH_FACTOR * 764 / 100;	    break;         case RAWDESCENTPROP:            *is_str = FALSE;            pp->value = STRETCH_FACTOR * 236 / 100;	    break;         case RAWWIDTHPROP:            *is_str = FALSE;            pp->value = sWidth;	    break;	}    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av在线播放不卡| 色域天天综合网| 成人丝袜18视频在线观看| 欧美mv日韩mv国产网站app| 亚洲国产精品传媒在线观看| 亚洲综合视频在线| 成人高清免费在线播放| 精品久久国产老人久久综合| 一区二区国产视频| bt7086福利一区国产| 日韩欧美一二三区| 天天综合网 天天综合色| 99国产精品久久久久久久久久 | 国产精品人成在线观看免费| 奇米色777欧美一区二区| 欧美自拍丝袜亚洲| 亚洲欧美日韩小说| 大美女一区二区三区| 久久蜜桃一区二区| 九九九精品视频| 日韩欧美电影一区| 麻豆精品久久精品色综合| 欧美美女视频在线观看| 亚洲在线视频一区| 色94色欧美sute亚洲线路二| 国产精品区一区二区三区| 国产在线播精品第三| 有码一区二区三区| 91一区二区在线观看| 亚洲欧洲日产国码二区| 成人免费高清视频在线观看| 中文字幕不卡在线观看| www.av精品| 亚洲人成网站在线| 欧美性高清videossexo| 午夜免费久久看| 91精品欧美一区二区三区综合在 | 555www色欧美视频| 日韩国产一区二| 欧美白人最猛性xxxxx69交| 久久国产尿小便嘘嘘| 久久久久久麻豆| 处破女av一区二区| 亚洲激情校园春色| 欧美日韩亚洲高清一区二区| 青青草成人在线观看| 精品国产一区二区在线观看| 韩国欧美国产1区| 国产精品日韩精品欧美在线| 日本韩国一区二区三区视频| 亚洲国产成人va在线观看天堂| 555夜色666亚洲国产免| 国产精品一区在线观看乱码| 中文字幕一区二区三区不卡在线 | 久久综合av免费| 成人在线综合网站| 一区二区免费在线| 欧美xxxxxxxx| 99精品国产99久久久久久白柏| 亚洲高清免费在线| 久久久亚洲精品一区二区三区 | 亚洲一区二区美女| 欧美tk—视频vk| 99视频在线精品| 日韩国产精品久久久久久亚洲| 国产婷婷色一区二区三区在线| 91老师片黄在线观看| 日本亚洲视频在线| 中文字幕亚洲电影| 日韩欧美国产系列| 日本高清成人免费播放| 久久99久久精品| 亚洲男人的天堂在线aⅴ视频| 日韩一区二区三区四区 | 视频一区视频二区在线观看| 久久精品亚洲麻豆av一区二区| 欧美日韩中文一区| 国产精品99久久久久久久女警| 亚洲国产一区在线观看| 国产目拍亚洲精品99久久精品| 欧美日韩一区二区三区在线看| 国产成人综合在线| 首页国产丝袜综合| 自拍偷拍欧美激情| 欧美国产在线观看| 欧美一区二区精美| 欧美在线视频日韩| 91欧美激情一区二区三区成人| 国精品**一区二区三区在线蜜桃| 亚洲va欧美va人人爽| 亚洲人精品一区| 国产精品乱人伦一区二区| 精品奇米国产一区二区三区| 欧美日精品一区视频| 91免费在线播放| a在线播放不卡| 成人精品一区二区三区中文字幕| 开心九九激情九九欧美日韩精美视频电影| 亚洲三级理论片| 国产精品高清亚洲| 国产精品无人区| 国产人伦精品一区二区| 日韩女优制服丝袜电影| 51精品秘密在线观看| 欧美片在线播放| 欧美色国产精品| 欧美午夜在线一二页| 91视频精品在这里| 91在线视频在线| 97国产精品videossex| 91伊人久久大香线蕉| 91天堂素人约啪| 欧美在线免费观看亚洲| 欧美精品一区二| 亚洲精品在线电影| 久久亚洲精品国产精品紫薇| 亚洲精品在线网站| 国产拍欧美日韩视频二区| 久久久久国产精品免费免费搜索| 久久精品欧美日韩精品| 国产亚洲综合av| 国产精品水嫩水嫩| 亚洲精品写真福利| 亚洲观看高清完整版在线观看| 亚洲va韩国va欧美va| 日韩和欧美的一区| 国内精品在线播放| 91小视频在线观看| 欧美三级电影网站| 欧美成人精品福利| 国产精品久久久久久福利一牛影视| 国产精品久久久一区麻豆最新章节| 亚洲欧美激情视频在线观看一区二区三区| 亚洲蜜臀av乱码久久精品蜜桃| 亚洲va欧美va天堂v国产综合| 久久99精品久久久| 成人激情黄色小说| 欧美日韩一区视频| 2023国产一二三区日本精品2022| 久久久久久久久久久久久夜| 国产精品初高中害羞小美女文| 亚洲精品菠萝久久久久久久| 日韩和的一区二区| 岛国av在线一区| 在线不卡中文字幕| 国产精品久久久久一区 | 国产区在线观看成人精品| 亚洲天堂免费看| 老司机午夜精品| 972aa.com艺术欧美| 日韩欧美综合一区| 国产精品成人一区二区三区夜夜夜| 亚洲成av人片观看| 国产69精品久久777的优势| 在线观看日韩电影| 久久久久久久久久久黄色| 亚洲综合区在线| 成人综合婷婷国产精品久久| 欧美裸体一区二区三区| 国产精品欧美经典| 蜜桃视频一区二区| 日本黄色一区二区| 久久你懂得1024| 日本欧美在线看| 欧美主播一区二区三区美女| 国产视频一区在线播放| 日本三级韩国三级欧美三级| 91啪九色porn原创视频在线观看| 精品福利在线导航| 亚洲国产精品久久人人爱蜜臀| 不卡视频在线观看| 精品三级在线观看| 日本一道高清亚洲日美韩| 一本一道久久a久久精品 | 成人aaaa免费全部观看| 精品国产免费一区二区三区四区| 亚洲精品伦理在线| 成人av电影在线网| 亚洲国产精品高清| 国产毛片精品一区| 日韩欧美一级特黄在线播放| 一区二区三区日韩精品视频| 成人午夜私人影院| 久久你懂得1024| 国产麻豆成人精品| 久久夜色精品一区| 国产在线不卡一区| 精品免费日韩av| 免费成人美女在线观看.| 91精品国产乱| 亚洲国产成人91porn| 欧美日韩在线一区二区| 亚洲一区二区三区美女| 在线免费亚洲电影| 亚洲午夜久久久久久久久久久| 一本大道久久a久久精品综合| 亚洲视频一区二区在线观看| 成人黄色国产精品网站大全在线免费观看| 欧美xxxxx裸体时装秀| 国产一区在线观看视频|