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

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

?? shape.c

?? Ming is a library for generating Macromedia Flash files (.swf), written in C, and includes useful ut
?? C
?? 第 1 頁 / 共 3 頁
字號:
			*lineTo = *record.record.lineTo;			lineTo->dx *= scale;			lineTo->dy *= scale;			shape->records[shape->nRecords].record.lineTo = lineTo;			*vx += lineTo->dx;			*vy += lineTo->dy;			SWFRect_includePoint(SWFCharacter_getBounds(CHARACTER(shape)),				 *vx, *vy, shape->lineWidth);			SWFRect_includePoint(shape->edgeBounds, *vx, *vy, 0);			break;		}		case SHAPERECORD_CURVETO:		{			CurveToRecord curveTo = (CurveToRecord) 				calloc(1,sizeof(struct curveToRecord));			*curveTo = *record.record.curveTo;			curveTo->controlx *= scale;			curveTo->controly *= scale;			curveTo->anchorx *= scale;			curveTo->anchory *= scale;			shape->records[shape->nRecords].record.curveTo = curveTo;						*vx += curveTo->controlx;			*vy += curveTo->controly;			SWFRect_includePoint(SWFCharacter_getBounds(CHARACTER(shape)),				 *vx, *vy, shape->lineWidth);			SWFRect_includePoint(shape->edgeBounds, *vx, *vy, 0);			*vx += curveTo->anchorx;			*vy += curveTo->anchory;			SWFRect_includePoint(SWFCharacter_getBounds(CHARACTER(shape)),				 *vx, *vy, shape->lineWidth);			SWFRect_includePoint(shape->edgeBounds, *vx, *vy, 0);			break;		}	}	shape->records[shape->nRecords].type = record.type;	shape->nRecords++;	return shape->records[shape->nRecords-1];}static ShapeRecordnewShapeRecord(SWFShape shape, shapeRecordType type){	if ( shape->nRecords % SHAPERECORD_INCREMENT == 0 )	{		shape->records = (ShapeRecord*) realloc(shape->records,					 sizeof(ShapeRecord) *					 (shape->nRecords + SHAPERECORD_INCREMENT));	}	switch ( type )	{		case SHAPERECORD_STATECHANGE:		{			StateChangeRecord change = (StateChangeRecord)calloc(1,sizeof(struct stateChangeRecord));			shape->records[shape->nRecords].record.stateChange = change;			break;		}		case SHAPERECORD_LINETO:		{			LineToRecord lineTo = (LineToRecord) calloc(1,sizeof(struct lineToRecord));			shape->records[shape->nRecords].record.lineTo = lineTo;			break;		}		case SHAPERECORD_CURVETO:		{			CurveToRecord curveTo = (CurveToRecord) calloc(1,sizeof(struct curveToRecord));			shape->records[shape->nRecords].record.curveTo = curveTo;			break;		}	}	shape->records[shape->nRecords].type = type;// this is intentional - at least one popular compiler cannot handle [shape->nRecords++]	shape->nRecords++;	return shape->records[shape->nRecords-1];}voidSWFShape_writeShapeRecord(SWFShape shape, ShapeRecord record, SWFOutput out){	switch(record.type)	{		case SHAPERECORD_STATECHANGE:		{			int flags = record.record.stateChange->flags;			if(flags == 0)				return;			SWFOutput_writeBits(out, flags, 6);			if(flags & SWF_SHAPE_MOVETOFLAG)			{				int x = record.record.stateChange->moveToX;				int y = record.record.stateChange->moveToY;				int nBits = max(SWFOutput_numSBits(x), SWFOutput_numSBits(y));				SWF_assert(nBits<32);				SWFOutput_writeBits(out, nBits, 5);				SWFOutput_writeSBits(out, x, nBits);				SWFOutput_writeSBits(out, y, nBits);			}			if(flags & SWF_SHAPE_FILLSTYLE0FLAG)			{				SWFOutput_writeBits(out, record.record.stateChange->leftFill,														SWFOutput_numBits(shape->nFills));			}			if(flags & SWF_SHAPE_FILLSTYLE1FLAG)			{				SWFOutput_writeBits(out, record.record.stateChange->rightFill,														SWFOutput_numBits(shape->nFills));			}			if(flags & SWF_SHAPE_LINESTYLEFLAG)			{				SWFOutput_writeBits(out, record.record.stateChange->line,														SWFOutput_numBits(shape->nLines));			}			/* newstyle's never used.	 But this is what it looks like:			if ( flags & SWF_SHAPE_NEWSTYLEFLAG )			{				SWFOutput_writeFillStyles(shape->out, shape->fills, shape->nFills,				BLOCK(shape)->type);				SWFOutput_writeLineStyles(shape->out, shape->lines, shape->nLines,					BLOCK(shape)->type);				SWFOutput_writeBits(shape->out, SWFOutput_numBits(shape->nFills), 4);				SWFOutput_writeBits(shape->out, SWFOutput_numBits(shape->nLines), 4);			}			*/			break;		}		case SHAPERECORD_LINETO:		{			int nBits;			int dx = record.record.lineTo->dx;			int dy = record.record.lineTo->dy;			SWFOutput_writeBits(out, 3, 2); /* straight edge */			if(dx==0)			{				nBits = SWFOutput_numSBits(dy);				SWF_assert(nBits<18);				SWFOutput_writeBits(out, nBits-2, 4);				SWFOutput_writeBits(out, 1, 2); /* vertical line */				SWFOutput_writeSBits(out, dy, nBits);			}			else if(dy==0)			{				nBits = SWFOutput_numSBits(dx);				SWF_assert(nBits<18);				SWFOutput_writeBits(out, nBits-2, 4);				SWFOutput_writeBits(out, 0, 2); /* horizontal line */				SWFOutput_writeSBits(out, dx, nBits);			}			else			{				nBits = max(SWFOutput_numSBits(dx), SWFOutput_numSBits(dy));				SWF_assert(nBits<18);				SWFOutput_writeBits(out, nBits-2, 4);				SWFOutput_writeBits(out, 1, 1); /* general line */				SWFOutput_writeSBits(out, dx, nBits);				SWFOutput_writeSBits(out, dy, nBits);			}			break;		}		case SHAPERECORD_CURVETO:		{			int controlx = record.record.curveTo->controlx;			int controly = record.record.curveTo->controly;			int anchorx = record.record.curveTo->anchorx;			int anchory = record.record.curveTo->anchory;			int nBits = max(max(SWFOutput_numSBits(controlx),													SWFOutput_numSBits(controly)),											max(SWFOutput_numSBits(anchorx),													SWFOutput_numSBits(anchory)));			if ( nBits < 2 )				nBits = 2;			SWF_assert(nBits < 18);			SWFOutput_writeBits(out, 2, 2); /* curved edge */			SWFOutput_writeBits(out, nBits-2, 4);			SWFOutput_writeSBits(out, controlx, nBits);			SWFOutput_writeSBits(out, controly, nBits);			SWFOutput_writeSBits(out, anchorx, nBits);			SWFOutput_writeSBits(out, anchory, nBits);			break;		}		default:			SWF_error("Unknown shapeRecordType");	}}/* x,y relative to shape origin */voidSWFShape_drawScaledLineTo(SWFShape shape, int x, int y){	SWFShape_drawScaledLine(shape, x-shape->xpos, y-shape->ypos);}voidSWFShape_drawScaledLine(SWFShape shape, int dx, int dy){	ShapeRecord record;	if ( shape->isEnded )		return;	if ( dx == 0 && dy == 0 )		return;	record = newShapeRecord(shape, SHAPERECORD_LINETO);	SWF_assert(SWFOutput_numSBits(dx) < 18);	SWF_assert(SWFOutput_numSBits(dy) < 18);	record.record.lineTo->dx = dx;	record.record.lineTo->dy = dy;	shape->xpos += dx;	shape->ypos += dy;	SWFRect_includePoint(SWFCharacter_getBounds(CHARACTER(shape)),											 shape->xpos, shape->ypos, shape->lineWidth);	SWFRect_includePoint(shape->edgeBounds, shape->xpos, shape->ypos, 0);}voidSWFShape_drawScaledCurveTo(SWFShape shape,													 int controlx, int controly,													 int anchorx, int anchory){	SWFShape_drawScaledCurve(shape, controlx-shape->xpos, controly-shape->ypos,													 anchorx-controlx, anchory-controly);}voidSWFShape_drawScaledCurve(SWFShape shape,												 int controldx, int controldy,												 int anchordx, int anchordy){	ShapeRecord record;	if ( shape->isEnded )		return;	if ( controldx == 0 && controldy == 0 && anchordx == 0 && anchordy == 0 )		return;		// printf("curve %i,%i, %i, %i\n", controldx, controldy, anchordx,  anchordy);	record = newShapeRecord(shape, SHAPERECORD_CURVETO);	record.record.curveTo->controlx = controldx;	record.record.curveTo->controly = controldy;	record.record.curveTo->anchorx = anchordx;	record.record.curveTo->anchory = anchordy;	if ( SWFOutput_numSBits(controldx) >= 18 ||			 SWFOutput_numSBits(controldy) >= 18 ||			 SWFOutput_numSBits(anchordx) >= 18 ||			 SWFOutput_numSBits(anchordy) >= 18 )		SWF_error("Curve parameters too large");	/* including the control point is sloppy, but safe.. */	shape->xpos += controldx;	shape->ypos += controldy;	SWFRect_includePoint(SWFCharacter_getBounds(CHARACTER(shape)),											 shape->xpos, shape->ypos, shape->lineWidth);	SWFRect_includePoint(shape->edgeBounds, shape->xpos, shape->ypos, 0);	shape->xpos += anchordx;	shape->ypos += anchordy;	SWFRect_includePoint(SWFCharacter_getBounds(CHARACTER(shape)),											 shape->xpos, shape->ypos, shape->lineWidth);	SWFRect_includePoint(shape->edgeBounds, shape->xpos, shape->ypos, 0);}#define STYLE_INCREMENT 4static inline void growLineArray(SWFShape shape){	int size;	if ( shape->nLines % STYLE_INCREMENT != 0 )		return;	size = (shape->nLines+STYLE_INCREMENT) * sizeof(SWFLineStyle);	shape->lines = (SWFLineStyle*)realloc(shape->lines, size);	}static int SWFShape_addLineStyle2filled(SWFShape shape, unsigned short width,                             SWFFillStyle fill,                             int flags, float miterLimit){	growLineArray(shape);	SWFShape_useVersion(shape, SWF_SHAPE4);	shape->lines[shape->nLines] = newSWFLineStyle2_filled(width, fill, flags, miterLimit);	return ++shape->nLines;}static intSWFShape_addLineStyle2(SWFShape shape, unsigned short width,                      byte r, byte g, byte b, byte a,                      int flags, float miterLimit){	growLineArray(shape);	SWFShape_useVersion(shape, SWF_SHAPE4);	shape->lines[shape->nLines] = newSWFLineStyle2(width, r, g, b, a, flags, miterLimit);	return ++shape->nLines;}static intSWFShape_addLineStyle(SWFShape shape, unsigned short width,                      byte r, byte g, byte b, byte a){	growLineArray(shape);	shape->lines[shape->nLines] = newSWFLineStyle(width, r, g, b, a);	return ++shape->nLines;}/* if the current shape record isn't a style change record, add one */static ShapeRecordaddStyleRecord(SWFShape shape){	if ( shape->nRecords > 0 &&			 shape->records[shape->nRecords-1].type == SHAPERECORD_STATECHANGE )	{		return shape->records[shape->nRecords-1];	}	else		return newShapeRecord(shape, SHAPERECORD_STATECHANGE);}voidSWFShape_hideLine(SWFShape shape){	ShapeRecord record;	if ( shape->isEnded )		return;	if ( shape->isMorph )		return;	record = addStyleRecord(shape);	record.record.stateChange->line = 0;	record.record.stateChange->flags |= SWF_SHAPE_LINESTYLEFLAG;}static void finishSetLine(SWFShape shape, int line, unsigned short width){	ShapeRecord record;		if ( width == 0 )		shape->lineWidth = 0;	else		shape->lineWidth = (SWFLineStyle_getWidth(shape->lines[line-1]) + 1) / 2;		if ( shape->isMorph )		return;	record = addStyleRecord(shape);	record.record.stateChange->line = line;	record.record.stateChange->flags |= SWF_SHAPE_LINESTYLEFLAG;}/* * set filled Linestyle2 introduce with SWF 8. *  * set line width in TWIPS * * WARNING: this is an internal interface * external use is deprecated! use setLine2 instead * * Instead of providing a fill color, a FillStyle can be applied * to a line. *  * Linestyle2 also extends Linestyle1 with some extra flags: * * Line cap style: select one of the following flags (default is round cap style) * SWF_LINESTYLE_CAP_ROUND  * SWF_LINESTYLE_CAP_NONE * SWF_LINESTYLE_CAP_SQUARE  * * Line join style: select one of the following flags (default is round join style) * SWF_LINESTYLE_JOIN_ROUND * SWF_LINESTYLE_JOIN_BEVEL  * SWF_LINESTYLE_JOIN_MITER   * * Scaling flags: disable horizontal / vertical scaling * SWF_LINESTYLE_FLAG_NOHSCALE * SWF_LINESTYLE_FLAG_NOVSCALE  * * Enable pixel hinting to correct blurry vertical / horizontal lines * -> all anchors will be aligned to full pixels * SWF_LINESTYLE_FLAG_HINTING   * * Disable stroke closure: if no-close flag is set caps will be applied  * instead of joins * SWF_LINESTYLE_FLAG_NOCLOSE * * End-cap style: default round * SWF_LINESTYLE_FLAG_ENDCAP_ROUND * SWF_LINESTYLE_FLAG_ENDCAP_NONE * SWF_LINESTYLE_FLAG_ENDCAP_SQUARE * * If join style is SWF_LINESTYLE_JOIN_MITER a miter limit factor  * must be set. Miter max length is then calculated as: * max miter len = miter limit * width. * If join style is not miter, this value will be ignored. */void SWFShape_setLineStyle2filled_internal(SWFShape shape, unsigned short width,                       SWFFillStyle fill,                       int flags, float miterLimit){	int line;	if ( shape->isEnded )		return;	for ( line=0; line<shape->nLines; ++line )	{		if ( SWFLineStyle_equals2filled(shape->lines[line], width, fill, flags) )			break;	}	if ( line == shape->nLines )		line = SWFShape_addLineStyle2filled(shape, width, fill, flags, miterLimit);	else

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线影院国内精品| 欧美午夜视频网站| 亚洲第一狼人社区| 久久免费视频色| 欧美丰满少妇xxxbbb| 99热精品国产| 国产精品18久久久久久久久| 午夜在线成人av| 亚洲丝袜精品丝袜在线| 久久久久99精品国产片| 7777精品伊人久久久大香线蕉超级流畅| 国产成人亚洲综合a∨婷婷| 午夜亚洲国产au精品一区二区| 国产精品嫩草影院com| 精品粉嫩aⅴ一区二区三区四区| 欧美三片在线视频观看| 99久久精品免费| 国产成人丝袜美腿| 精品一区二区三区的国产在线播放| 一个色妞综合视频在线观看| 国产精品久久久久aaaa樱花| 久久久久国产精品人| 精品国内二区三区| 91精品国产色综合久久不卡电影 | 丁香桃色午夜亚洲一区二区三区| 天天av天天翘天天综合网| 亚洲人成小说网站色在线| 国产精品久久久久久亚洲毛片 | 精品国产91洋老外米糕| 欧美福利视频导航| 欧美三级电影网站| 欧美在线免费观看视频| 一本久久a久久精品亚洲| 91在线观看下载| 成人午夜看片网址| 大陆成人av片| 成人高清伦理免费影院在线观看| 国产精品夜夜爽| 国产iv一区二区三区| 丰满放荡岳乱妇91ww| 国产.精品.日韩.另类.中文.在线.播放| 国产在线精品一区二区夜色| 韩国成人精品a∨在线观看| 韩国av一区二区三区四区| 国产一区不卡在线| 丁香一区二区三区| 99r精品视频| 在线区一区二视频| 欧美精品一二三| 日韩一二三四区| 精品国产乱码久久久久久1区2区 | 91色综合久久久久婷婷| 91香蕉视频污| 欧美亚男人的天堂| 欧美精选一区二区| 欧美电影免费观看高清完整版在线观看 | 中文字幕不卡一区| 亚洲欧美自拍偷拍色图| 一区二区三区毛片| 免费三级欧美电影| 国产高清视频一区| 欧日韩精品视频| 欧美成人三级在线| 中文字幕免费在线观看视频一区| 亚洲女同ⅹxx女同tv| 午夜伊人狠狠久久| 国产在线视频不卡二| 成人97人人超碰人人99| 欧美亚洲高清一区二区三区不卡| 4438x亚洲最大成人网| 久久蜜桃香蕉精品一区二区三区| 中文字幕日韩欧美一区二区三区| 亚洲在线免费播放| 国产一区二区美女诱惑| 91女厕偷拍女厕偷拍高清| 欧美区视频在线观看| 欧美国产一区视频在线观看| 一区二区免费在线播放| 精品一区二区三区免费播放| av毛片久久久久**hd| 日韩一区二区免费高清| 国产精品护士白丝一区av| 亚洲国产精品一区二区久久恐怖片| 久久国产精品一区二区| 91麻豆产精品久久久久久| 日韩视频一区二区在线观看| 国产精品日日摸夜夜摸av| 日韩黄色小视频| 99久久精品久久久久久清纯| 日韩一区二区精品葵司在线| 亚洲免费伊人电影| 国产精品资源在线看| 欧美卡1卡2卡| 日韩一区在线看| 激情文学综合插| 91成人免费在线| 久久精品无码一区二区三区| 午夜精品久久久久久久99水蜜桃 | 久久久噜噜噜久噜久久综合| 亚洲一区在线观看免费观看电影高清| 极品销魂美女一区二区三区| 日本韩国一区二区三区| 国产欧美日韩中文久久| 麻豆国产精品一区二区三区 | 欧美日韩dvd在线观看| 国产精品久久午夜| 韩国v欧美v日本v亚洲v| 7777精品伊人久久久大香线蕉超级流畅 | 丁香网亚洲国际| 日韩欧美国产一区二区三区| 亚洲无人区一区| 色综合av在线| 国产精品热久久久久夜色精品三区| 精久久久久久久久久久| 欧美视频在线播放| 一区二区日韩av| 99久久国产综合色|国产精品| 久久久噜噜噜久噜久久综合| 看电影不卡的网站| 日韩精品一区在线观看| 奇米精品一区二区三区在线观看| 色美美综合视频| 中文字幕中文乱码欧美一区二区 | 国产麻豆91精品| 精品国产乱码久久久久久影片| 日本视频免费一区| 欧美一区二区三区视频在线| 同产精品九九九| 欧美另类一区二区三区| 亚洲一二三四在线观看| 日本丶国产丶欧美色综合| 亚洲日本丝袜连裤袜办公室| 99re成人精品视频| 亚洲色图20p| 91免费观看国产| 亚洲激情图片一区| 欧美少妇xxx| 天堂va蜜桃一区二区三区漫画版| 欧美日韩国产综合一区二区三区 | 成人免费高清在线| 欧美国产欧美亚州国产日韩mv天天看完整| 精品无人区卡一卡二卡三乱码免费卡| 日韩欧美成人一区| 狠狠色丁香九九婷婷综合五月| 久久综合网色—综合色88| 国产成人免费网站| 国产亚洲欧美激情| 99久久国产综合精品色伊| 亚洲卡通欧美制服中文| 在线观看日韩一区| 午夜电影久久久| 欧美哺乳videos| 国产精品一卡二| 亚洲色图19p| 欧美群妇大交群中文字幕| 免费观看成人鲁鲁鲁鲁鲁视频| xnxx国产精品| 99久久婷婷国产精品综合| 一区二区三区91| 欧美一级高清片| 岛国精品一区二区| 亚洲一区二区三区美女| 91精品国产入口在线| 国产综合久久久久久久久久久久| 中文字幕欧美激情| 欧美日韩高清影院| 国产一区二区在线观看免费| 国产精品久久久久7777按摩| 在线观看国产日韩| 久久电影网电视剧免费观看| 欧美激情艳妇裸体舞| 日本乱人伦aⅴ精品| 久久99久久99精品免视看婷婷| 国产日产欧产精品推荐色| 色琪琪一区二区三区亚洲区| 美日韩一级片在线观看| 国产精品久久久久影院| 欧美日韩一区 二区 三区 久久精品| 精品伊人久久久久7777人| 亚洲欧美在线视频| 日韩一二三四区| 一本色道a无线码一区v| 狠狠色综合播放一区二区| 亚洲精品国产成人久久av盗摄| 日韩欧美中文字幕制服| gogogo免费视频观看亚洲一| 日日噜噜夜夜狠狠视频欧美人 | 亚洲动漫第一页| 久久久精品蜜桃| 欧美浪妇xxxx高跟鞋交| 成人a级免费电影| 久久精品国产在热久久| 亚洲无线码一区二区三区| 国产亚洲欧美中文| 欧美一区二区三区电影| 色偷偷久久一区二区三区| 国产乱码精品一区二区三区五月婷| 亚洲精品视频免费观看| 久久久一区二区三区捆绑**| 91麻豆精品国产|