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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? devfont.c

?? 該文件為一個(gè)嵌入式GUI圖形庫(kù)源碼
?? C
字號(hào):
/*
 *  Font Device Driver
 *
 *
 *  COPYRIGHT (c) 2001 - 2010.
 *  emTech System Corporation.
 *
 *  The license and distribution terms for this file may be
 *  found in found in the file LICENSE.
 */

/*	Huangf emcore@263.net
 */

/*	Stolen from Microwindows & optimize for Chinese
 */
 
/*
 * Copyright (c) 2000 Greg Haerr <greg@censoft.com>
 * T1lib Adobe type1 routines contributed by Vidar Hokstad
 * Freetype TrueType routines contributed by Martin Jolicoeur
 * Han Zi Ku routines contributed by Tanghao and Jauming
 *
 * Device-independent font and text drawing routines
 *
 * These routines do the necessary range checking, clipping, and cursor
 * overwriting checks, and then call the lower level device dependent
 * routines to actually do the drawing.  The lower level routines are
 * only called when it is known that all the pixels to be drawn are
 * within the device area and are visible.
 */
/*#define NDEBUG*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <string.h>

#include "emGUI.h"

#if (UNIX | DOS_DJGPP)
#define strcmpi	strcasecmp
#endif

/*
 * Set the font for future calls.
 */
PMWFONT GrGCSetFont(
	GID		gc,
	PMWFONT pfont
)
{
	PMWFONT	oldfont;

	oldfont 		= gc->gr_font;
	gc->gr_font		= pfont;
	
	return oldfont;
}

/*
 * Select a font, based on various parameters.
 * If plogfont is specified, name and height parms are ignored
 * and instead used from MWLOGFONT.
 * 
 * If height is 0, return builtin font from passed name.
 * Otherwise find builtin font best match based on height.
 */
PMWFONT
GrCreateFont(
	const char *name
)
{
	if (strcasecmp(name, MWFONT_SYSTEM_VAR) == 0){
		return (PMWFONT)&gen_fonts[0];
	}
	if (strcasecmp(name, MWFONT_GUI_VAR) == 0){
		return (PMWFONT)&gen_fonts[1];
	}
	if (strcasecmp(name, MWFONT_OEM_FIXED) == 0){
		return (PMWFONT)&gen_fonts[2];
	}
	if (strcasecmp(name, MWFONT_SYSTEM_FIXED) == 0){
		return (PMWFONT)&gen_fonts[3];
	}
	return NULL;
}

/* Set the font size for the passed font*/
int
GrSetFontSize(
	PMWFONT pfont, 
	int fontsize
)
{
	int	oldfontsize = pfont->fontsize;

	pfont->fontsize = fontsize;

	if (pfont->fontprocs->SetFontSize)
	    pfont->fontprocs->SetFontSize(pfont, fontsize);

	return oldfontsize;
}

/* Set the font rotation angle in tenths of degrees for the passed font*/
int
GrSetFontRotation(
	PMWFONT pfont, 
	int 	tenthdegrees
)
{
	int	oldrotation = pfont->fontrotation;

	pfont->fontrotation = tenthdegrees;

	if (pfont->fontprocs->SetFontRotation)
	    pfont->fontprocs->SetFontRotation(pfont, tenthdegrees);
	
	return oldrotation;
}

/*
 * Set/reset font attributes (MWTF_KERNING, MWTF_ANTIALIAS)
 * for the passed font.
 */
int
GrSetFontAttr(
	PMWFONT pfont, 
	int 	setflags, 
	int 	clrflags
)
{
	int	oldattr = pfont->fontattr;

	pfont->fontattr &= ~clrflags;
	pfont->fontattr |= setflags;

	if (pfont->fontprocs->SetFontAttr)
	    pfont->fontprocs->SetFontAttr(pfont, setflags, clrflags);
	
	return oldattr;
}

/* Unload and deallocate font*/
void
GrDestroyFont(
	PMWFONT pfont
)
{
	if (pfont->fontprocs->DestroyFont)
		pfont->fontprocs->DestroyFont(pfont);
}

/* Return information about a specified font*/
boolean
GrGetFontInfo(
	PMWFONT 	pfont, 
	PMWFONTINFO pfontinfo
)
{
	if(!pfont || !pfont->fontprocs->GetFontInfo)
		return FALSE;

	return pfont->fontprocs->GetFontInfo(pfont, pfontinfo);
}

/* Get the width and height of passed text string in the passed font*/
void
GrGetTextSize(
	PMWFONT 	pfont, 
	const void 	*str, 
	int 		cc, 
	int 		*pwidth,
	int 		*pheight, 
	int 		*pbase, 
	int 		flags
)
{
	const void *text;

	text = str;

	if(cc <= 0 || !pfont->fontprocs->GetTextSize) {
		*pwidth = *pheight = *pbase = 0;
		return;
	}

	/* calc height and width of string*/
	pfont->fontprocs->GetTextSize(pfont, text, cc, pwidth, pheight, pbase);
}

/* Draw a text string at a specifed coordinates in the foreground color
 * (and possibly the background color), applying clipping if necessary.
 * The background color is only drawn if the gr_usebg flag is set.
 * Use the current font.
 */
void
GrText(
	WndID		win, 
	GID			gc,
	int 		x, 
	int 		y, 
	const void 	*str, 
	int 		cc, 
	int 		flags
)
{
	const void *text;
	text = str;

	if(cc <= 0 || !gc->gr_font->fontprocs->DrawText)
		return;

	x += win->left;
	y += win->top;
	
	/* draw text string*/
	gc->gr_font->fontprocs->DrawText(win, gc, x, y, text, cc, flags);
}

/*
 * Draw ascii text using COREFONT type font.
 */
void
corefont_drawtext(
	WndID		win,
	GID			gc,
	int 		x, 
	int 		y,
	const void *text, 
	int 		cc, 
	int 		flags
)
{
	const unsigned short *str = text;
	int		width;			/* width of text area */
	int 	height;			/* height of text area */
	int		base;			/* baseline of text*/
	int		startx, starty;
	
	MWIMAGEBITS bitmap[24 * 24 / MWIMAGE_BITSPERIMAGE];
	PMWFONT pfont = gc->gr_font;
	
	pfont->fontprocs->GetTextSize(pfont, str, cc, &width, &height, &base);
	
	if(flags & MWTF_BASELINE)
		y -= base;
	else if(flags & MWTF_BOTTOM)
		y -= (height - 1);

	startx = x;
	starty = y + base;

	/* Get the bitmap for each character individually, and then display
	 * them using clipping for each one.
	 */
	while (--cc >= 0) {
		unsigned int ch = *str++;

		pfont->fontprocs->GetTextBits(
			pfont, 
			ch, 
			bitmap, 
			&width,
			&height, 
			&base
		);

		/* note: change to bitmap*/
		GrBitmap(win, gc, x, y, width, height, bitmap);
		x += width;
	}

	if (pfont->fontattr & MWTF_UNDERLINE){
		GrLine(win, gc, startx, starty, x, starty, FALSE);
	}
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区欧美在线观看| 日韩在线一区二区| 91精品国产欧美一区二区| 大白屁股一区二区视频| 男男成人高潮片免费网站| 亚洲欧美一区二区不卡| 久久中文字幕电影| 制服视频三区第一页精品| 91免费观看视频在线| 国产乱色国产精品免费视频| 蜜臀av性久久久久蜜臀aⅴ流畅 | 欧美性xxxxxx少妇| 高清视频一区二区| 九九视频精品免费| 视频一区国产视频| 亚洲最色的网站| 亚洲欧洲日本在线| 欧美国产乱子伦| 久久久久久久电影| 精品女同一区二区| 日韩视频永久免费| 欧美年轻男男videosbes| 91国产免费看| 97国产精品videossex| 国产69精品久久久久777| 国产精品正在播放| 国产一区二区在线电影| 久久成人麻豆午夜电影| 蜜臀av性久久久久蜜臀av麻豆 | 亚洲在线视频免费观看| 国产精品国产精品国产专区不片| 久久综合九色欧美综合狠狠| 精品国产a毛片| 日韩精品一区二区三区视频播放| 在线成人午夜影院| 欧美日韩精品欧美日韩精品一| 91理论电影在线观看| 91年精品国产| 色综合天天综合狠狠| 色呦呦网站一区| 在线一区二区三区| 欧美三级中文字幕| 欧美三级日韩在线| 欧美日韩成人综合| 日韩一本二本av| 26uuu亚洲| 国产农村妇女精品| 国产精品国产自产拍在线| 国产精品国产三级国产三级人妇| ...xxx性欧美| 亚洲综合精品久久| 日韩成人dvd| 激情国产一区二区| 国产成人免费视频一区| 99久久久久久99| 欧美日韩视频在线第一区 | 制服丝袜日韩国产| 日韩西西人体444www| 久久亚洲捆绑美女| 中文字幕视频一区二区三区久| 一区二区三区在线播| 青青草国产成人av片免费| 国产一区 二区 三区一级| 高清不卡一二三区| 在线观看国产91| 精品国产青草久久久久福利| 国产精品麻豆视频| 无码av免费一区二区三区试看 | 色88888久久久久久影院野外| 91久久一区二区| 欧美一区二区免费| 中文字幕av免费专区久久| 亚洲精品五月天| 久久精品国产一区二区三区免费看| 国产精品一区三区| 在线亚洲+欧美+日本专区| 欧美mv日韩mv亚洲| 亚洲男人的天堂网| 久久99国产乱子伦精品免费| 91蜜桃网址入口| 日韩丝袜美女视频| 亚洲乱码日产精品bd| 久久国产免费看| 色偷偷久久一区二区三区| 日韩欧美激情在线| 亚洲天天做日日做天天谢日日欢| 麻豆国产一区二区| 91美女片黄在线| 久久亚洲一区二区三区明星换脸| 亚洲一区在线观看免费观看电影高清| 国产综合成人久久大片91| 欧美专区亚洲专区| 国产欧美一区二区三区在线看蜜臀| 亚洲va国产va欧美va观看| 国产很黄免费观看久久| 欧美一区日本一区韩国一区| 136国产福利精品导航| 国产在线播放一区二区三区| 欧美日韩在线综合| 国产精品卡一卡二| 激情小说亚洲一区| 制服.丝袜.亚洲.中文.综合| 最近中文字幕一区二区三区| 国产精品18久久久久久久久| 欧美一区二区三区白人| 亚洲一区二区综合| 91在线视频播放| 日本一区二区三区在线不卡| 日本aⅴ精品一区二区三区| 欧美自拍偷拍一区| 中文字幕一区二区不卡| 国产a区久久久| 久久老女人爱爱| 久久国产精品99久久人人澡| 欧美日韩国产a| 亚洲综合视频网| 色哟哟日韩精品| 亚洲免费av高清| 99re视频精品| 中文字幕在线观看不卡| 成人妖精视频yjsp地址| 久久久综合视频| 国产乱人伦偷精品视频不卡 | 日韩精品一区二区三区在线观看| 亚洲一区视频在线| 97精品久久久午夜一区二区三区| 国产日韩欧美a| 国产精品一区在线观看你懂的| 精品99一区二区| 精品在线免费视频| 精品国产91洋老外米糕| 激情图片小说一区| 久久精品视频一区| 国产精品91一区二区| 久久精品视频免费| 波多野结衣中文字幕一区二区三区 | 欧美成人a在线| 免费观看在线综合色| 欧美成人午夜电影| 国产一区二区主播在线| 欧美国产一区在线| 99r国产精品| 亚洲一二三四在线观看| 欧美日韩精品高清| 日本欧美一区二区在线观看| 精品国产一区二区三区久久影院 | 久草这里只有精品视频| 久久新电视剧免费观看| 国产成人av电影在线| 国产精品久久网站| 欧洲一区二区三区免费视频| 性久久久久久久| 日韩精品中文字幕一区二区三区 | 欧美亚洲国产怡红院影院| 午夜精品久久久久久久久久久| 欧美美女喷水视频| 狠狠色狠狠色合久久伊人| 国产精品久久久久久妇女6080| 欧美优质美女网站| 日产国产高清一区二区三区| 久久综合一区二区| 99久久er热在这里只有精品15| 夜夜夜精品看看| 精品国产乱码久久久久久夜甘婷婷| 国产成人综合亚洲91猫咪| 亚洲欧美一区二区久久 | 日韩伦理免费电影| 欧美欧美欧美欧美首页| 国产资源在线一区| 亚洲精品中文在线影院| 日韩欧美另类在线| 99国产精品久久久久久久久久| 丝瓜av网站精品一区二区| 欧美国产一区视频在线观看| 欧美色倩网站大全免费| 国产乱子轮精品视频| 怡红院av一区二区三区| 欧美精品一区视频| 欧美性色综合网| 国产高清久久久久| 亚州成人在线电影| 欧美国产1区2区| 91精品婷婷国产综合久久性色 | 日产欧产美韩系列久久99| 国产精品污网站| 日韩一区二区三区视频在线| av一区二区三区| 久久99久久99精品免视看婷婷| 亚洲女人****多毛耸耸8| 久久夜色精品国产噜噜av| 欧美日韩三级一区二区| 9l国产精品久久久久麻豆| 久久国产综合精品| 亚洲永久精品国产| 国产精品网站在线播放| 日韩亚洲电影在线| 欧美午夜精品一区| av亚洲精华国产精华精| 国产成人精品一区二区三区四区| 人人精品人人爱|