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

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

?? display.cc

?? 功能較全面的反匯編器:反匯編器ht-2.0.15.tar.gz
?? CC
字號:
/*  *	HT Editor *	display.cc * *	Copyright (C) 1999-2004 Stefan Weyergraf (stefan@weyergraf.de) * *	This program is free software; you can redistribute it and/or modify *	it under the terms of the GNU General Public License version 2 as *	published by the Free Software Foundation. * *	This program 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 General Public License for more details. * *	You should have received a copy of the GNU General Public License *	along with this program; if not, write to the Free Software *	Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */#include <new>#include <cstdarg>#include <cstdlib>#include "display.h"#include "snprintf.h"#if 0static vc gInverseColors[8] = {        VC_WHITE, VC_YELLOW, VC_MAGENTA, VC_RED,	VC_CYAN, VC_GREEN, VC_BLUE, VC_BLACK};#define VC_GET_INVERSE(vc) gInverseColor[(vc)&7]#else#define VC_GET_INVERSE(vc) (7-((vc)&7))#endifinline vc mixSingleColor(vc base, vc layer){	if (VC_GET_BASECOLOR(base) > 7) return layer;		switch (VC_GET_BASECOLOR(layer)) {	case VC_TRANSPARENT_EXCLUSIVE_DOM:	case VC_TRANSPARENT_EXCLUSIVE:	case VC_TRANSPARENT:	return base;	case VC_DARKEN:		return VC_GET_BASECOLOR(base);	case VC_LIGHTEN:	return VC_LIGHT(base);	case VC_MONOCHROME: {		switch (base) {		case VC_CYAN:		case VC_MAGENTA:		case VC_YELLOW:		case VC_WHITE:			return VC_WHITE;		case VC_RED:		case VC_BLACK:		case VC_BLUE:		case VC_GREEN:		default:			return VC_BLACK;		}	}	case VC_INVERSE:	return VC_GET_INVERSE(VC_GET_BASECOLOR(base));	}		return layer;}vcp mixColors(vcp base, vcp layer){	vc fg = mixSingleColor(VCP_FOREGROUND(base), VCP_FOREGROUND(layer));	vc bg = mixSingleColor(VCP_BACKGROUND(base), VCP_BACKGROUND(layer));	if (fg == bg) {		if (VC_GET_BASECOLOR(VCP_FOREGROUND(layer)) == VC_TRANSPARENT_EXCLUSIVE		 || VC_GET_BASECOLOR(VCP_BACKGROUND(layer)) == VC_TRANSPARENT_EXCLUSIVE_DOM) {			int fglight = VC_GET_LIGHT(fg);			fg = VC_GET_INVERSE(VC_GET_BASECOLOR(bg)) | fglight;			fg = VC_BLACK;		} else if (VC_GET_BASECOLOR(VCP_BACKGROUND(layer)) == VC_TRANSPARENT_EXCLUSIVE		 || VC_GET_BASECOLOR(VCP_FOREGROUND(layer)) == VC_TRANSPARENT_EXCLUSIVE_DOM) {			int bglight = VC_GET_LIGHT(bg);			bg = VC_GET_INVERSE(VC_GET_BASECOLOR(fg)) | bglight;		}	}	return VCP(fg, bg);}/* *	Display */void Display::assign(int x, int y, int w, int h){	Bounds b(x, y, w, h);	setBounds(b);}void Display::fillAll(vcp color, char chr, Codepage cp){	fill(0, 0, w, h, color, chr, cp);}void Display::move(int deltax, int deltay){	Bounds b(*this);	b.move(deltax, deltay);	setBounds(b);}void Display::resize(int deltaw, int deltah){	Bounds b(*this);	b.resize(deltaw, deltah);	setBounds(b);}int Display::nprintf(int x, int y, vcp color, int maxstrlen, Codepage cp, const char *format, ...){	char buf[512];	va_list ap;	va_start(ap, format);	ht_vsnprintf(buf, MIN((int)sizeof buf, maxstrlen), format, ap);	va_end(ap);	return print(x, y, color, buf, cp);}int Display::print(int x, int y, vc color, const char *str, Codepage cp){	return nprint(x, y, color, str, 0x7fffffff, cp);}int Display::printW(int x, int y, vcp color, const AbstractChar *widestr){	const AbstractChar *owidestr = widestr;	// FIXME: speed ?	while (widestr->codepage != CP_INVALID) {		if (!printChar(x++, y, color, widestr->chr, widestr->codepage)) break;		widestr++;	}	return widestr-owidestr;}int Display::nprintW(int x, int y, vcp color, const AbstractChar *widestr, int maxstrlen){	const AbstractChar *owidestr = widestr;	// FIXME: speed ?	while (widestr->codepage != CP_INVALID && maxstrlen--) {		if (!printChar(x++, y, color, widestr->chr, widestr->codepage)) break;		widestr++;	}	return widestr-owidestr;}int Display::printChar(int x, int y, vcp color, char chr, Codepage cp){	// FIXME: speed ?	fill(x, y, 1, 1, color, chr, cp);	return 1;}int Display::printf(int x, int y, vcp color, Codepage cp, const char *format, ...){	char buf[512];	va_list ap;	va_start(ap, format);	ht_vsnprintf(buf, sizeof buf, format, ap);	va_end(ap);	return print(x, y, color, buf, cp);}void Display::setBounds(const Bounds &b){	Bounds::assign(b.x, b.y, b.w, b.h);}/* graphical extension */#if 0void Display::line(int px1, int py1, int px2, int py2, uint color){}void Display::putPixel(int px, int py, uint color){}void Display::textToPixelCoord(int tx, int ty, int &px, int &py) const{	px = tx;	py = ty;}void Display::pixelToTextCoord(int px, int py, int &tx, int &ty) const{	tx = px;	ty = py;}#endif/* *	NullDisplay */NullRDisplay::NullRDisplay(const Bounds &b): RDisplay(b){     setCursor(0, 0, CURSOR_OFF);}void NullRDisplay::fill(int x, int y, int w, int h, vcp color, char chr, Codepage cp){}void NullRDisplay::getCursor(int &x, int &y) const{	x = cursorx;	y = cursory;}CursorMode NullRDisplay::getCursorMode() const{	return cursorMode;}int NullRDisplay::nprint(int ix, int iy, vcp color, const char *str, int maxstrlen, Codepage cp){	int i = 0;	// FIXME: more efficient impl	if (y < h) {		while ((ix+i < w) && (*str) && (i<maxstrlen)) {			i++;		}	}	return i;}bool NullRDisplay::read(uint &rawchar, vcp &color, int x, int y) const{	if ((x >= w) || (y >= h)) return false;	return true;}void NullRDisplay::setCursor(int x, int y, CursorMode mode){	cursorx = x;	cursory = y;	setCursorMode(mode);}void NullRDisplay::setCursorMode(CursorMode mode){	cursorMode = mode;}/* *	BufferedRDisplay */BufferedRDisplay::BufferedRDisplay(const Bounds &b): RDisplay(b){	buf = NULL;	setBounds(b);	setCursor(0, 0, CURSOR_OFF);}BufferedRDisplay::~BufferedRDisplay(){	free(buf);}void BufferedRDisplay::fill(int x, int y, int w, int h, vcp color, char chr, Codepage cp){	uint rawchar = mapCharToSystemCP(chr, cp);	bool transparent = (cp == CP_GRAPHICAL && chr == GC_TRANSPARENT);	if (y < 0) {		h += y;		y = 0;	}	if (x < 0) {		w += x;		x = 0;	}	if (x+w > this->w) {		w = this->w - x;	}	if (y+h > this->h) {		h = this->h - y;	}	for (int iy = y; iy < y+h; iy++) {		ColoredChar *b = buf+x+ iy * this->w;		for (int ix = x; ix < x+w; ix++) {			if (!transparent) b->rawchar = rawchar;			b->color = mixColors(b->color, color);			b++;		}	}}void BufferedRDisplay::getCursor(int &x, int &y) const{	x = cursorx;	y = cursory;}CursorMode BufferedRDisplay::getCursorMode() const{	return cursorMode;}int BufferedRDisplay::nprint(int ix, int iy, vcp color, const char *str, int maxstrlen, Codepage cp){	int i = 0;	ColoredChar *b = buf+ix+ iy * w;	if (iy < h) {		while (ix+i < w && str[i] && i < maxstrlen) {			bool transparent = (cp == CP_GRAPHICAL && str[i] == GC_TRANSPARENT);			if (!transparent) b->rawchar = mapCharToSystemCP(str[i], cp);			b->color = mixColors(b->color, color);			i++;			b++;		}	}	return i;}bool BufferedRDisplay::read(uint &rawchar, vcp &color, int x, int y) const{	if (!buf) return false;	if ((x >= w) || (y >= h)) return false;	ColoredChar *b = buf + x + y*w;	rawchar = b->rawchar;	color = b->color;	return true;}void BufferedRDisplay::setBounds(const Bounds &b){	Bounds oldb = *(Bounds*)this;	RDisplay::setBounds(b);	ColoredChar *bufnew;	if (w * h) {		bufnew = ht_malloc(sizeof *buf * w * h);		if (!bufnew) throw std::bad_alloc();		ColoredChar *bb = bufnew;		for (int iy = 0; iy < h; iy++) {			for (int ix = 0; ix < w; ix++) {				if ((ix < oldb.w) && (iy < oldb.h) && buf) {					*bb = buf[ix+iy*oldb.w];				} else {					bb->rawchar = ' ';					bb->color = VCP(VC_TRANSPARENT, VC_TRANSPARENT);				}				bb++;			}		}	} else bufnew = NULL;	free(buf);	buf = bufnew;}void BufferedRDisplay::setCursor(int x, int y, CursorMode mode){	cursorx = x;	cursory = y;	setCursorMode(mode);}void BufferedRDisplay::setCursorMode(CursorMode mode){	cursorMode = mode;}/* *	SystemDisplay */SystemDisplay::SystemDisplay(){}/* *	SystemRDisplay */SystemRDisplay::SystemRDisplay(SystemDisplay *System_display, const Bounds &b): RDisplay(b){	system_display = System_display;}SystemRDisplay::~SystemRDisplay(){}void SystemRDisplay::fill(int x, int y, int w, int h, vcp color, char chr, Codepage cp){	x += this->x;	y += this->y;	system_display->fill(x, y, w, h, color, chr, cp);}void SystemRDisplay::getCursor(int &x, int &y) const{	system_display->getCursor(x, y);	x -= this->x;	y -= this->y;}CursorMode SystemRDisplay::getCursorMode() const{	return system_display->getCursorMode();}int SystemRDisplay::nprint(int x, int y, vcp color, const char *str, int maxstrlen, Codepage cp){	x += this->x;	y += this->y;	return system_display->nprint(x, y, color, str, maxstrlen, cp);}bool SystemRDisplay::read(uint &rawchar, vcp &color, int x, int y) const{	x += this->x;	y += this->y;	return system_display->read(rawchar, color, x, y);}void SystemRDisplay::setBounds(const Bounds &b){	RDisplay::setBounds(b);}void SystemRDisplay::setCursor(int x, int y, CursorMode mode){	x += this->x;	y += this->y;	system_display->setCursor(x, y, mode);}void SystemRDisplay::setCursorMode(CursorMode mode){	system_display->setCursorMode(mode);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美挠脚心视频网站| 欧美国产日韩亚洲一区| 色婷婷久久久综合中文字幕| 成人国产一区二区三区精品| 成人18视频日本| youjizz久久| 播五月开心婷婷综合| 成人av综合在线| 色呦呦网站一区| 欧美日韩你懂的| 日韩一区二区在线观看视频播放| 欧美一区二区黄| 精品成人一区二区三区四区| 国产三区在线成人av| 欧美极品美女视频| 亚洲私人影院在线观看| 亚洲国产视频一区| 午夜免费欧美电影| 美女免费视频一区二区| 国产很黄免费观看久久| va亚洲va日韩不卡在线观看| 欧美午夜精品免费| 欧美一区二区三区四区视频| 26uuu精品一区二区在线观看| 国产色一区二区| 亚洲精品视频自拍| 日韩国产欧美三级| 国产一区欧美一区| av网站一区二区三区| 91精品办公室少妇高潮对白| 正在播放一区二区| 久久网站最新地址| 亚洲另类在线制服丝袜| 丝袜美腿亚洲色图| 国产成人免费在线观看不卡| 99v久久综合狠狠综合久久| 欧美日韩一级视频| 久久久噜噜噜久久人人看| 亚洲图片另类小说| 久久成人久久爱| 95精品视频在线| 日韩三级高清在线| 中文字幕日韩精品一区| 日韩av中文在线观看| 成人综合在线网站| 欧美高清视频不卡网| 亚洲国产成人私人影院tom| 亚洲超碰97人人做人人爱| 国产一区二区三区在线观看精品| 91电影在线观看| 精品av久久707| 亚洲国产精品久久一线不卡| 国产一区二区三区免费在线观看| 欧美专区日韩专区| 久久久久国产精品免费免费搜索| 亚洲国产精品久久久久婷婷884 | 国产精品欧美久久久久无广告| 亚洲精品国产一区二区精华液| 久久99精品一区二区三区| 色狠狠色狠狠综合| 中文字幕欧美日韩一区| 看片网站欧美日韩| 在线看国产一区二区| 欧美极品少妇xxxxⅹ高跟鞋| 免费在线看成人av| 91福利视频久久久久| 国产女人18水真多18精品一级做| 亚洲电影一级片| 成人天堂资源www在线| 日韩欧美国产一区在线观看| 亚洲乱码精品一二三四区日韩在线 | 亚洲国产aⅴ天堂久久| 国产成人av在线影院| 欧美一级二级三级蜜桃| 自拍偷拍亚洲欧美日韩| 国产一区二区三区免费看| 欧美高清激情brazzers| 一二三区精品福利视频| 成年人国产精品| 欧美国产欧美综合| 精品一区二区影视| 91精品国产日韩91久久久久久| 亚洲女同一区二区| 972aa.com艺术欧美| 国产精品天天看| 国产成人亚洲精品青草天美| 欧美大片一区二区三区| 舔着乳尖日韩一区| 欧美日韩在线三级| 亚洲成人av在线电影| 色欧美片视频在线观看 | 国产麻豆视频精品| 精品国产乱码久久久久久牛牛| 天堂精品中文字幕在线| 欧美色手机在线观看| 亚洲综合色网站| 色婷婷综合久久久久中文一区二区 | 3d动漫精品啪啪| 亚洲成av人**亚洲成av**| 欧美日韩免费高清一区色橹橹| 亚洲精品国产第一综合99久久| 99精品国产一区二区三区不卡| 国产精品不卡在线观看| 99在线精品视频| 亚洲欧美激情插| 91高清在线观看| 亚洲国产中文字幕| 欧美疯狂做受xxxx富婆| 日本不卡一二三| 日韩精品专区在线影院重磅| 精品在线播放午夜| 久久美女艺术照精彩视频福利播放| 国产一区二区在线影院| 中文字幕乱码久久午夜不卡| 不卡一区二区三区四区| 亚洲精品欧美二区三区中文字幕| 在线日韩av片| 肉肉av福利一精品导航| 日韩精品资源二区在线| 风间由美一区二区av101| 亚洲少妇屁股交4| 在线观看视频一区二区| 日韩精品一二区| 久久尤物电影视频在线观看| 99久久免费精品高清特色大片| 亚洲精品第一国产综合野| 制服丝袜av成人在线看| 国产一区二区三区免费看| 中文字幕永久在线不卡| 欧美日韩亚洲另类| 久久国产福利国产秒拍| 国产精品免费看片| 欧美午夜片在线看| 久久99国产精品麻豆| 亚洲同性同志一二三专区| 欧美美女一区二区三区| 国产一区二区在线看| 亚洲精品国产精华液| 欧美tickling网站挠脚心| 97久久久精品综合88久久| 日本美女一区二区三区视频| 中文字幕乱码久久午夜不卡| 欧美日韩国产高清一区二区| 国产一区二区在线影院| 亚洲最新在线观看| 精品国产第一区二区三区观看体验| 成人18精品视频| 蜜臀91精品一区二区三区| 中文字幕日本乱码精品影院| 91精品国产日韩91久久久久久| 成人午夜在线播放| 全国精品久久少妇| 亚洲日本丝袜连裤袜办公室| 欧美一区二区美女| 92国产精品观看| 国产一区在线观看麻豆| 亚洲一二三四在线观看| 国产欧美一区二区精品婷婷| 欧美日韩另类一区| av中文字幕亚洲| 久久精工是国产品牌吗| 一区二区三区不卡视频在线观看 | 国产精品伦理一区二区| 91精品国产综合久久精品性色| 成人三级伦理片| 青娱乐精品视频在线| 悠悠色在线精品| 国产日韩精品一区二区浪潮av| 91麻豆精品国产91久久久 | 欧美日韩国产另类一区| 丰满白嫩尤物一区二区| 日本sm残虐另类| 一区二区在线看| 国产精品无码永久免费888| 制服丝袜亚洲网站| 在线视频国内一区二区| 成人免费va视频| 国产美女精品在线| 日韩国产欧美在线视频| 亚洲伊人色欲综合网| 自拍偷拍亚洲欧美日韩| 国产亚洲欧美激情| 精品国产一区二区三区不卡| 欧美精品vⅰdeose4hd| 欧美亚洲动漫制服丝袜| 99在线精品免费| 成人性生交大片免费看中文网站| 韩国毛片一区二区三区| 蜜桃在线一区二区三区| 日产国产欧美视频一区精品| 亚洲高清中文字幕| 一区二区三区在线高清| 亚洲色图欧美激情| 136国产福利精品导航| 中文字幕va一区二区三区| 国产校园另类小说区| 国产网红主播福利一区二区| 久久精品综合网| 亚洲国产精华液网站w| 国产亚洲欧洲997久久综合|