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

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

?? gameswf_morph2.cpp

?? 一個開源的嵌入式flash播放器的源代碼
?? CPP
字號:
// gameswf_morph2.cpp// -- Thatcher Ulrich <tu@tulrich.com>, Mike Shaver <shaver@off.net> 2003, Vitalij Alexeev <tishka92@mail.ru> 2004.// This source code has been donated to the Public Domain.  Do// whatever you want with it.// Loading and rendering of morphing shapes using gameswf_shape.#include "gameswf_morph2.h"#include "gameswf_stream.h"namespace gameswf{	morph2_character_def::morph2_character_def():		m_last_ratio(-1.0f), m_mesh(0)	{		m_shape1 = new shape_character_def();		m_shape2 = new shape_character_def();	}	morph2_character_def::~morph2_character_def()	{		delete m_shape2;		delete m_shape1;	}	void	morph2_character_def::display(character* inst)	{		int i;		float ratio = inst->m_ratio;		// bounds		rect	new_bound;		new_bound.set_lerp(m_shape1->get_bound(), m_shape2->get_bound(), ratio);		set_bound(new_bound);		// fill styles		for (i=0; i < m_fill_styles.size(); i++)		{			fill_style& fs = m_fill_styles[i];			const fill_style& fs1 = m_shape1->get_fill_styles()[i];			const fill_style& fs2 = m_shape2->get_fill_styles()[i];			fs.set_lerp(fs1, fs2, ratio);		}		// line styles		for (i=0; i < m_line_styles.size(); i++)		{			line_style& ls = m_line_styles[i];			const line_style& ls1 = m_shape1->get_line_styles()[i];			const line_style& ls2 = m_shape2->get_line_styles()[i];			ls.m_width = (Uint16)frnd(flerp(ls1.get_width(), ls2.get_width(), ratio));			ls.m_color.set_lerp(ls1.get_color(), ls2.get_color(), ratio);		}		// shape		int k=0, n=0;		for (i=0; i < m_paths.size(); i++)		{			path& p = m_paths[i];			const path& p1 = m_shape1->get_paths()[i];			p.m_fill0 = p1.m_fill0;			p.m_fill1 = p1.m_fill1; 			// @@ hack.			if (p.m_fill0 == 0 && p.m_fill1 == 0)			{				if (m_shape1->get_fill_styles().size() > 0) p.m_fill0 = 1;			}      			p.m_line = p1.m_line;			p.m_ax = flerp(p1.m_ax, m_shape2->get_paths()[n].m_ax, ratio);			p.m_ay = flerp(p1.m_ay, m_shape2->get_paths()[n].m_ay, ratio);      			//  edges;			int len = p1.m_edges.size();			p.m_edges.resize(len);			for (int j=0; j < p.m_edges.size(); j++)			{				p.m_edges[j].m_cx = flerp(p1.m_edges[j].m_cx, m_shape2->get_paths()[n].m_edges[k].m_cx, ratio);				p.m_edges[j].m_cy = flerp(p1.m_edges[j].m_cy, m_shape2->get_paths()[n].m_edges[k].m_cy, ratio);				p.m_edges[j].m_ax = flerp(p1.m_edges[j].m_ax, m_shape2->get_paths()[n].m_edges[k].m_ax, ratio);				p.m_edges[j].m_ay = flerp(p1.m_edges[j].m_ay, m_shape2->get_paths()[n].m_edges[k].m_ay, ratio);				k++;				if (m_shape2->get_paths()[n].m_edges.size() <= k)				{					k=0; n++;				}			}		}    //  display		matrix mat = inst->get_world_matrix();		cxform cx = inst->get_world_cxform();		float max_error = 20.0f / mat.get_max_scale() /	inst->get_parent()->get_pixel_scale();		if (ratio != m_last_ratio)		{			delete m_mesh;			m_last_ratio = ratio;			m_mesh = new mesh_set(this, max_error * 0.75f);		}		m_mesh->display(mat, cx, m_fill_styles, m_line_styles);	}  	void	morph2_character_def::read(stream* in, int tag_type, bool with_style, movie_definition_sub* md)	{		UNUSED(tag_type);		UNUSED(with_style);		rect	bound1, bound2;		bound1.read(in);		bound2.read(in);		m_shape1->set_bound(bound1);		m_shape2->set_bound(bound2);		offset = in->read_u32();		fill_style_count = in->read_variable_count();		int i;		for (i = 0; i < fill_style_count; i++) {			fill_style fs1, fs2;			fs1.m_type = in->read_u8();			fs2.m_type = fs1.m_type;			IF_VERBOSE_PARSE(log_msg("morph fill style type = 0x%X\n", fs1.m_type));			if (fs1.m_type == 0x00)			{				fs1.m_color.read_rgba(in);				fs2.m_color.read_rgba(in);				IF_VERBOSE_PARSE(log_msg("morph fill style begin color: "); fs1.m_color.print());				IF_VERBOSE_PARSE(log_msg("morph fill style end color: "); fs2.m_color.print());			}			else if (fs1.m_type == 0x10 || fs1.m_type == 0x12)			{				matrix	input_matrix1, input_matrix2;				input_matrix1.read(in);				input_matrix2.read(in);				fs1.m_gradient_matrix.set_identity();				fs2.m_gradient_matrix.set_identity();				if (fs1.m_type == 0x10)				{					fs1.m_gradient_matrix.concatenate_translation(128.f, 0.f);					fs1.m_gradient_matrix.concatenate_scale(1.0f / 128.0f);					fs2.m_gradient_matrix.concatenate_translation(128.f, 0.f);					fs2.m_gradient_matrix.concatenate_scale(1.0f / 128.0f);				}				else				{					fs1.m_gradient_matrix.concatenate_translation(32.f, 32.f);					fs1.m_gradient_matrix.concatenate_scale(1.0f / 512.0f);					fs2.m_gradient_matrix.concatenate_translation(32.f, 32.f);					fs2.m_gradient_matrix.concatenate_scale(1.0f / 512.0f);				}				matrix	m1, m2;				m1.set_inverse(input_matrix1);				fs1.m_gradient_matrix.concatenate(m1);				m2.set_inverse(input_matrix2);				fs2.m_gradient_matrix.concatenate(m2);				// GRADIENT				int	num_gradients = in->read_u8();				assert(num_gradients >= 1 && num_gradients <= 8);				fs1.m_gradients.resize(num_gradients);				fs2.m_gradients.resize(num_gradients);				for (int j = 0; j < num_gradients; j++)				{					fs1.m_gradients[j].read(in, tag_type);					fs2.m_gradients[j].read(in, tag_type);				}				IF_VERBOSE_PARSE(log_msg("morph fsr: num_gradients = %d\n", num_gradients));				// @@ hack.				if (num_gradients > 0)				{					fs1.m_color = fs1.m_gradients[0].m_color;					fs2.m_color = fs2.m_gradients[0].m_color;				}			}			else if (fs1.m_type == 0x40 || fs1.m_type == 0x41)			{				int	bitmap_char_id = in->read_u16();				IF_VERBOSE_PARSE(log_msg("morph fsr bitmap_char = %d\n", bitmap_char_id));				// Look up the bitmap character.				fs1.m_bitmap_character = md->get_bitmap_character(bitmap_char_id);				fs2.m_bitmap_character = fs1.m_bitmap_character;				matrix	m1, m2;				m1.read(in);				m2.read(in);				// For some reason, it looks like they store the inverse of the				// TWIPS-to-texcoords matrix.				fs1.m_bitmap_matrix.set_inverse(m1);				fs2.m_bitmap_matrix.set_inverse(m2);			}			m_shape1->m_fill_styles.push_back(fs1);			m_shape2->m_fill_styles.push_back(fs2);		}		line_style_count = in->read_variable_count();		for (i = 0; i < line_style_count; i++) {			line_style ls1, ls2;			ls1.m_width = in->read_u16();			ls2.m_width = in->read_u16();			ls1.m_color.read(in, tag_type);			ls2.m_color.read(in, tag_type);			m_shape1->m_line_styles.push_back(ls1);			m_shape2->m_line_styles.push_back(ls2);		}		m_shape1->read(in, tag_type, false, md);		in->align();		m_shape2->read(in, tag_type, false, md);		assert(m_shape1->m_fill_styles.size() == m_shape2->m_fill_styles.size());		assert(m_shape1->m_line_styles.size() == m_shape2->m_line_styles.size());		// setup array size		m_fill_styles.resize(m_shape1->m_fill_styles.size());		for (i = 0; i < m_fill_styles.size(); i++)		{			fill_style& fs = m_fill_styles[i];			fill_style& fs1 = m_shape1->m_fill_styles[i];			fs.m_gradients.resize(fs1.m_gradients.size());		}		m_line_styles.resize(m_shape1->m_line_styles.size());		m_paths.resize(m_shape1->m_paths.size());		int edges_count1 = 0;		for (i = 0; i < m_paths.size(); i++)		{			path& p = m_paths[i];			path& p1 = m_shape1->m_paths[i];			int len = p1.m_edges.size();			edges_count1 += len;			p.m_edges.resize(len);		}		int edges_count2 = 0;		for (i = 0; i < m_shape2->m_paths.size(); i++)		{			path& p2 = m_shape2->m_paths[i];			int len = p2.m_edges.size();			edges_count2 += len;		}		assert(edges_count1 == edges_count2);	}}// Local Variables:// mode: C++// c-basic-offset: 8 // tab-width: 8// indent-tabs-mode: t// End:

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产专区综合网| 欧美电视剧在线看免费| 欧美一级国产精品| 国产精品精品国产色婷婷| 日韩主播视频在线| 91免费观看视频| 国产欧美日韩三级| 激情小说亚洲一区| 欧美一区中文字幕| 亚洲成av人片在www色猫咪| eeuss国产一区二区三区| 精品国产一二三区| 免费亚洲电影在线| 欧美日韩高清影院| 亚洲电影视频在线| 色老汉av一区二区三区| 国产精品国产精品国产专区不片| 国内精品伊人久久久久av一坑 | 久久九九国产精品| 午夜精品123| 欧美中文字幕一二三区视频| 亚洲视频免费在线| 色综合欧美在线视频区| 国产精品久久午夜| 97国产精品videossex| 中文字幕亚洲综合久久菠萝蜜| 黑人精品欧美一区二区蜜桃| 亚洲精品在线电影| 国产精品亚洲一区二区三区在线| 久久亚洲精品小早川怜子| 另类人妖一区二区av| 欧美va亚洲va| 国产真实乱子伦精品视频| 久久久精品欧美丰满| 国产成人午夜精品5599| 中文一区二区完整视频在线观看| 成人午夜电影久久影院| 国产精品人成在线观看免费 | 国产精品区一区二区三区| 激情久久五月天| 国产片一区二区三区| 成人综合婷婷国产精品久久 | 中文字幕国产一区二区| 播五月开心婷婷综合| 亚洲精品美腿丝袜| 欧美系列亚洲系列| 蜜桃av一区二区三区电影| 久久久久久久久久久久久女国产乱| 国产一区二区0| 亚洲婷婷综合色高清在线| 91久久一区二区| 日韩不卡在线观看日韩不卡视频| 精品国产乱码久久久久久影片| 国产精选一区二区三区| 亚洲国产色一区| 国产区在线观看成人精品 | 日韩欧美亚洲国产精品字幕久久久| 国产成人精品亚洲午夜麻豆| 欧美丝袜自拍制服另类| 91热门视频在线观看| 91丨九色丨蝌蚪丨老版| 久久久精品人体av艺术| 成人免费观看男女羞羞视频| 亚洲精品视频观看| 欧美精品亚洲二区| 国产白丝精品91爽爽久久| 一区二区免费在线播放| 9191成人精品久久| 国产v日产∨综合v精品视频| 亚洲一区二区三区爽爽爽爽爽| 精品日韩一区二区三区| 福利视频网站一区二区三区| 一区二区在线观看视频| 精品国产免费一区二区三区四区| a4yy欧美一区二区三区| 久久国产麻豆精品| 亚洲精品乱码久久久久久日本蜜臀| 日韩欧美高清一区| 在线观看www91| www.亚洲在线| 韩国一区二区在线观看| 亚洲国产精品久久久久婷婷884| 久久精品视频免费| 欧美一区二区三区免费在线看 | 亚洲天堂a在线| 777xxx欧美| 色婷婷激情久久| 国产不卡免费视频| 老汉av免费一区二区三区 | 国产一区999| 日本欧美在线观看| 洋洋av久久久久久久一区| 国产亚洲成aⅴ人片在线观看 | 亚洲天堂精品在线观看| 欧美精品一区二区三区蜜桃| 在线综合亚洲欧美在线视频| 91精品办公室少妇高潮对白| 高清shemale亚洲人妖| 久久99精品国产| 免费观看成人av| 亚洲综合色网站| 亚洲最大色网站| 亚洲欧美aⅴ...| 亚洲欧美综合网| 中文字幕日韩av资源站| 欧美精彩视频一区二区三区| 欧美mv日韩mv国产| 精品国产一区久久| 日韩精品专区在线影院观看| 欧美美女网站色| 欧美日韩大陆一区二区| 欧美军同video69gay| 欧美日韩成人综合| 欧美一区二区三区在线观看| 精品视频一区 二区 三区| 色天使色偷偷av一区二区| 91国产免费看| 欧美日免费三级在线| 欧美日韩国产电影| 欧美一卡在线观看| 日韩一级欧美一级| 久久众筹精品私拍模特| 国产日产欧美一区二区视频| 国产婷婷色一区二区三区四区| 久久久午夜电影| 中文字幕在线观看一区二区| 国产精品色哟哟网站| 亚洲色图都市小说| 亚洲电影激情视频网站| 日韩精品午夜视频| 国内精品伊人久久久久av一坑| 国产另类ts人妖一区二区| 成人黄色免费短视频| 91网页版在线| 欧美电影在哪看比较好| 精品国产伦一区二区三区观看方式 | 亚洲色图清纯唯美| 亚洲午夜久久久久中文字幕久| 性做久久久久久| 国产专区欧美精品| 一本到高清视频免费精品| 欧美一区二区三区在线| 久久亚洲精华国产精华液| 日韩美女视频一区二区| 午夜激情一区二区三区| 国产成人在线视频免费播放| 97国产一区二区| 精品乱人伦小说| 亚洲美女屁股眼交3| 日本不卡视频在线| 99热这里都是精品| 欧美一区二区精品| 成人免费一区二区三区在线观看| 天天综合天天做天天综合| 国产白丝精品91爽爽久久| 欧美性大战久久| 国产精品网站在线观看| 奇米影视一区二区三区| 99精品久久99久久久久| 精品少妇一区二区三区免费观看| 亚洲区小说区图片区qvod| 国内精品嫩模私拍在线| 欧美色图在线观看| 国产精品视频看| 狠狠久久亚洲欧美| 91精品在线免费| 亚洲综合免费观看高清完整版在线 | 1区2区3区欧美| 国产一区二区视频在线| 欧美日韩在线精品一区二区三区激情 | 不卡的av中国片| 日韩欧美精品三级| 亚洲成a天堂v人片| 色哟哟精品一区| 久久精品免费在线观看| 久久激情综合网| 538在线一区二区精品国产| 亚洲精品网站在线观看| 粉嫩av一区二区三区在线播放| 91精品国产欧美一区二区18| 亚洲国产成人高清精品| 91麻豆福利精品推荐| 中文在线免费一区三区高中清不卡| 久久99国产精品久久99 | 日本道精品一区二区三区| 国产精品久久一级| 懂色av中文一区二区三区| 久久综合久久99| 秋霞av亚洲一区二区三| 欧美一区三区二区| 日韩精品福利网| 717成人午夜免费福利电影| 亚洲大片免费看| 在线视频一区二区三| 亚洲一区二区视频在线观看| 91黄色小视频| 亚洲综合在线五月| 91精品福利在线| 丝袜诱惑制服诱惑色一区在线观看| 欧美在线视频不卡|