⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qt_transition.cpp

📁 彩信浏览器
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	QRegion clip_region;	paint.begin(qpm);	paint.drawImage(L,T,img1,L,T,W,H);	std::vector< rect >::iterator newrect;	for(newrect=m_newrectlist.begin(); newrect != m_newrectlist.end(); newrect++) {		rect corner_rect = *newrect;		corner_rect.translate(m_dst->get_global_topleft());		corner_rect &= m_dst->get_clipped_screen_rect();		int L = corner_rect.left(), T = corner_rect.top(),        		W = corner_rect.width(), H = corner_rect.height();		AM_DBG logger::get_logger()->debug("qt_transition_blitclass_rectlist: (L,T,W,H)=(%d,%d,%d,%d)",L,T,W,H);		QRegion newcorner(L,T,W,H);		clip_region += newcorner;	}	paint.setClipRegion(clip_region);	paint.drawImage(L,T,img2,L,T,W,H);	paint.flush();	paint.end();	finalize_transition(m_outtrans, aqw, m_dst);}voidqt_transition_blitclass_poly::update(){	AM_DBG logger::get_logger()->debug("qt_transition_blitclass_poly::update(%f)", m_progress);	ambulant_qt_window *aqw = (ambulant_qt_window *)m_dst->get_gui_window();	QPixmap *npm, *qpm;	const lib::point& dst_global_topleft = m_dst->get_global_topleft();	setup_transition(m_outtrans, aqw, &qpm, &npm);//	QImage img1 = qpm->convertToImage();	QImage img2 = npm->convertToImage();	QPointArray qpa;	int idx = 0;	std::vector<point>::iterator newpoint;	for( newpoint=m_newpolygon.begin();	     newpoint != m_newpolygon.end(); newpoint++) {	    	point p = *newpoint + dst_global_topleft;		qpa.putPoints(idx++, 1, p.x, p.y);	}	QRegion qreg(qpa, true);	const rect& newrect_whole =  m_dst->get_clipped_screen_rect();	int L = newrect_whole.left(), T = newrect_whole.top(),        	W = newrect_whole.width(), H = newrect_whole.height();	QPainter paint;	paint.begin(qpm);	AM_DBG logger::get_logger()->debug("qt_transition_blitclass_poly::update(): ltwh=(%d,%d,%d,%d)",L,T,W,H);//	paint.drawImage(L,T,img1,L,T,W,H);	paint.setClipRegion(qreg);	paint.drawImage(L,T,img2,L,T,W,H);	paint.flush();	paint.end();	finalize_transition(m_outtrans, aqw, m_dst);}voidqt_transition_blitclass_polylist::update(){	AM_DBG logger::get_logger()->debug("qt_transition_blitclass_polylist::update(%f)", m_progress);	ambulant_qt_window *aqw = (ambulant_qt_window *)m_dst->get_gui_window();	QPixmap *npm, *qpm;	const lib::point& dst_global_topleft = m_dst->get_global_topleft();	setup_transition(m_outtrans, aqw, &qpm, &npm);//	QImage img1 = qpm->convertToImage();	QImage img2 = npm->convertToImage();	QRegion clip_region;	AM_DBG logger::get_logger()->debug("qt_transition_blitclass_polylist: m_newpolygonlist.size()=%d", m_newpolygonlist.size());	std::vector< std::vector<point> >::iterator partpolygon;	for (partpolygon=m_newpolygonlist.begin(); 	     partpolygon!=m_newpolygonlist.end(); partpolygon++) {		std::vector<point>::iterator newpoint;		AM_DBG logger::get_logger()->debug("qt_transition_blitclass_polylist: partpolygon.size()=%d", partpolygon->size());		QPointArray qpa;		int idx = 0;		for( newpoint=partpolygon->begin();		     newpoint != partpolygon->end(); newpoint++) {			point p = *newpoint + dst_global_topleft;			qpa.putPoints(idx++, 1, p.x, p.y);			AM_DBG logger::get_logger()->debug("qt_transition_blitclass_polylist: idx=%d, p=(%d,%d)", idx, p.x, p.y);		}		QRegion qreg(qpa, true);		clip_region += qreg;	}	const rect& newrect_whole =  m_dst->get_clipped_screen_rect();	int L = newrect_whole.left(), T = newrect_whole.top(),	 W = newrect_whole.width(), H = newrect_whole.height();	AM_DBG logger::get_logger()->debug("qt_transition_blitclass_polylist::update() drawImage npm=0x%x ltwh=(%d,%d,%d,%d)",npm,L,T,W,H);	QPainter paint;	paint.begin(qpm);//	paint.drawImage(L,T,img1,L,T,W,H);	paint.setClipRegion(clip_region);	paint.drawImage(L,T,img2,L,T,W,H);	paint.flush();	paint.end();	finalize_transition(m_outtrans, aqw, m_dst);}smil2::transition_engine *qt_transition_engine(common::surface *dst, bool is_outtrans, const transition_info *info){	smil2::transition_engine *rv;	AM_DBG logger::get_logger()->debug("qt_transition_engine: info=0x%x info->m_type=%d", info, info->m_type);		switch(info->m_type) {	// Series 1: edge wipes	case barWipe:		rv = new qt_transition_engine_barwipe();		break;	case boxWipe:		rv = new qt_transition_engine_boxwipe();		break;	case fourBoxWipe:		rv = new qt_transition_engine_fourboxwipe();		break;	case barnDoorWipe:		rv = new qt_transition_engine_barndoorwipe();		break;	case diagonalWipe:		rv = new qt_transition_engine_diagonalwipe();		break;	case miscDiagonalWipe:		rv = new qt_transition_engine_miscdiagonalwipe();		break;	case veeWipe:		rv = new qt_transition_engine_veewipe();		break;	case barnVeeWipe:		rv = new qt_transition_engine_barnveewipe();		break;	case zigZagWipe:		rv = new qt_transition_engine_zigzagwipe();		break;	case barnZigZagWipe:		rv = new qt_transition_engine_barnzigzagwipe();		break;	case bowTieWipe:		rv = new qt_transition_engine_bowtiewipe();		break;	// series 2: iris wipes	case irisWipe:		rv = new qt_transition_engine_iriswipe();		break;	case pentagonWipe:		rv = new qt_transition_engine_pentagonwipe();		break;	case arrowHeadWipe:		rv = new qt_transition_engine_arrowheadwipe();		break;	case triangleWipe:		rv = new qt_transition_engine_trianglewipe();		break;	case hexagonWipe:		rv = new qt_transition_engine_hexagonwipe();		break;	case eyeWipe:		rv = new qt_transition_engine_eyewipe();		break;	case roundRectWipe:		rv = new qt_transition_engine_roundrectwipe();		break;	case ellipseWipe:		rv = new qt_transition_engine_ellipsewipe();		break;	case starWipe:		rv = new qt_transition_engine_starwipe();		break;	case miscShapeWipe:		rv = new qt_transition_engine_miscshapewipe();		break;	// series 3: clock-type wipes	case clockWipe:		rv = new qt_transition_engine_clockwipe();		break;	case singleSweepWipe:		rv = new qt_transition_engine_singlesweepwipe();		break;	case doubleSweepWipe:		rv = new qt_transition_engine_doublesweepwipe();		break;	case saloonDoorWipe:		rv = new qt_transition_engine_saloondoorwipe();		break;	case windshieldWipe:		rv = new qt_transition_engine_windshieldwipe();		break;	case fanWipe:		rv = new qt_transition_engine_fanwipe();		break;	case doubleFanWipe:		rv = new qt_transition_engine_doublefanwipe();		break;	case pinWheelWipe:		rv = new qt_transition_engine_pinwheelwipe();		break;	// series 4: matrix wipe types	case snakeWipe:		rv = new qt_transition_engine_snakewipe();		break;	case waterfallWipe:		rv = new qt_transition_engine_waterfallwipe();		break;	case spiralWipe:		rv = new qt_transition_engine_spiralwipe();		break;	case parallelSnakesWipe:		rv = new qt_transition_engine_parallelsnakeswipe();		break;	case boxSnakesWipe:		rv = new qt_transition_engine_boxsnakeswipe();		break;	// series 5: SMIL-specific types	case pushWipe:		rv = new qt_transition_engine_pushwipe();		break;	case slideWipe:		rv = new qt_transition_engine_slidewipe();		break;	case fade:		rv = new qt_transition_engine_fade();		break;	default:		logger::get_logger()->warn("qt_transition_engine: transition type %s not yet implemented",			repr(info->m_type).c_str());		rv = NULL;	}	if (rv)		rv->init(dst, is_outtrans, info);	return rv;}} // namespace qt} // namespace gui} //namespace ambulant

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -