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

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

?? 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:

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩1区2区日韩1区2区| 国产精品不卡一区二区三区| 亚洲综合色区另类av| 在线视频亚洲一区| 亚洲免费色视频| 在线一区二区三区四区五区| 一级日本不卡的影视| 欧美日本免费一区二区三区| 天堂在线一区二区| 日韩欧美国产综合| 国产高清不卡一区二区| 国产日韩精品一区二区三区| 99视频有精品| 图片区日韩欧美亚洲| 日韩欧美一区电影| 国产在线精品免费av| 中文字幕制服丝袜一区二区三区 | 久久这里只有精品首页| 国产成人夜色高潮福利影视| 国产精品久久毛片a| 91麻豆精品在线观看| 亚洲成人免费观看| 精品欧美黑人一区二区三区| 成人一道本在线| 亚洲一区二区欧美日韩 | 欧美大尺度电影在线| 成人丝袜高跟foot| 亚洲一区二区三区四区五区黄| 日韩欧美国产一区二区在线播放 | 热久久久久久久| 久久久一区二区| 色欧美片视频在线观看| 日本怡春院一区二区| 国产精品入口麻豆原神| 91福利国产成人精品照片| 日韩国产在线一| 国产精品久久久久久久午夜片| 欧美性三三影院| 国产精品一区二区在线看| 亚洲免费视频中文字幕| 精品国产免费视频| 在线观看欧美日本| 国产一区二区三区四区五区入口 | 国产91精品一区二区麻豆网站| 亚洲另类中文字| 久久夜色精品一区| 欧美在线视频日韩| 高清国产一区二区| 午夜精品福利一区二区蜜股av| 国产女主播视频一区二区| 欧美日韩一区二区电影| av中文字幕不卡| 精品一二三四在线| 亚洲va中文字幕| 亚洲女与黑人做爰| 久久久噜噜噜久久中文字幕色伊伊| 欧美性猛交xxxxxx富婆| 成人综合婷婷国产精品久久免费| 日韩和的一区二区| 亚洲欧美日韩一区二区三区在线观看| 久久综合九色综合欧美亚洲| 欧美丝袜丝交足nylons图片| jlzzjlzz欧美大全| 国产乱国产乱300精品| 蜜桃av一区二区| 亚洲午夜久久久久久久久久久| 国产精品美女视频| 国产午夜精品久久| 精品国精品国产尤物美女| 欧美日本一区二区| 欧美嫩在线观看| 欧美揉bbbbb揉bbbbb| 91激情在线视频| 色拍拍在线精品视频8848| 91亚洲精品乱码久久久久久蜜桃| 国产不卡视频一区二区三区| 国内精品伊人久久久久av影院| 日韩二区三区四区| 亚洲福中文字幕伊人影院| 一区二区三区国产| 一区二区三区 在线观看视频| 国产精品网站导航| 国产精品久久久久久久裸模| 国产精品人成在线观看免费| 欧美国产综合一区二区| 中文字幕欧美日韩一区| 国产亚洲一区二区在线观看| 国产亚洲成年网址在线观看| 久久久精品一品道一区| 久久久亚洲欧洲日产国码αv| 久久久精品免费观看| 国产日韩三级在线| 国产精品久久三| 一级精品视频在线观看宜春院| 一区二区三区四区不卡在线| 亚洲一区二区视频在线观看| 婷婷六月综合网| 日本aⅴ免费视频一区二区三区| 裸体一区二区三区| 国产另类ts人妖一区二区| 国产精品一二二区| 91亚洲国产成人精品一区二三 | 亚洲成av人综合在线观看| 亚洲日本青草视频在线怡红院| 中文字幕一区二区在线观看| 亚洲欧美一区二区三区极速播放| 一区精品在线播放| 玉米视频成人免费看| 午夜精品视频在线观看| 热久久久久久久| 丰满亚洲少妇av| 欧美在线不卡视频| 欧美日韩精品一区二区三区四区| 日韩一级片在线播放| 久久蜜桃av一区精品变态类天堂| 国产精品美日韩| 亚洲综合激情另类小说区| 五月天中文字幕一区二区| 国产在线不卡一区| 99久久99久久精品国产片果冻| 欧美日韩久久久久久| 欧美精品一区二| 亚洲免费在线播放| 久久电影网站中文字幕| 99精品视频中文字幕| 欧美一级生活片| 久久久另类综合| 亚洲精品高清视频在线观看| 日本大胆欧美人术艺术动态| 国产iv一区二区三区| 欧美精品乱码久久久久久按摩| 国产亚洲短视频| 婷婷国产v国产偷v亚洲高清| 成人av片在线观看| 日韩一卡二卡三卡| 亚洲免费观看视频| 午夜精品免费在线观看| 国产精品一区久久久久| 欧美日韩美女一区二区| 国产精品福利一区| 黄页视频在线91| 欧美视频中文字幕| 国产精品久久久久久福利一牛影视| 天天综合色天天综合色h| 97精品视频在线观看自产线路二| 精品少妇一区二区三区日产乱码| 一区二区三区欧美激情| 成人一区二区三区视频在线观看| 日韩一区二区三区在线观看| 亚洲免费三区一区二区| 国产在线播放一区三区四| 91精品啪在线观看国产60岁| 亚洲欧美电影一区二区| 成人一区二区三区| 国产亚洲综合性久久久影院| 精品亚洲porn| 欧美一区二区观看视频| 亚洲成人av一区二区三区| 色狠狠一区二区| 亚洲天堂a在线| 国产91精品一区二区麻豆网站| 精品国产a毛片| 奇米精品一区二区三区四区| 精品视频免费在线| 一区二区在线看| 91美女片黄在线观看| 日本一区二区免费在线观看视频| 美腿丝袜亚洲综合| 91精品国产全国免费观看| 亚洲一区二三区| 91国在线观看| 一区二区三区在线视频观看| 91蝌蚪porny| 国产精品美女久久久久久久久久久 | 91麻豆精东视频| 国产精品国产三级国产aⅴ原创 | 日韩欧美亚洲国产精品字幕久久久 | 国产乱码字幕精品高清av| 精品国产免费人成在线观看| 蜜臀91精品一区二区三区| 91麻豆精品91久久久久同性| 日本欧美久久久久免费播放网| 欧美精品乱码久久久久久按摩| 日本欧美肥老太交大片| 日韩欧美一级在线播放| 激情综合网av| 久久久蜜桃精品| 91在线国内视频| 亚洲高清免费视频| 6080国产精品一区二区| 久久精品免费看| 国产午夜久久久久| 91麻豆福利精品推荐| 亚洲一区二区偷拍精品| 91精品在线免费| 国产一区二区三区在线观看免费| 国产拍揄自揄精品视频麻豆| 99国产精品一区| 日韩综合小视频| 久久久美女艺术照精彩视频福利播放|