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

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

?? displaylist.cc

?? linux下的flash的播放源代碼
?? CC
?? 第 1 頁 / 共 2 頁
字號:
////////////////////////////////////////////////////////////// Flash Plugin and Player// Copyright (C) 1998,1999 Olivier Debon// // This program is free software; you can redistribute it and/or// modify it under the terms of the GNU General Public License// as published by the Free Software Foundation; either version 2// of the License, or (at your option) any later version.// // 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., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.// /////////////////////////////////////////////////////////////////  Author : Olivier Debon  <odebon@club-internet.fr>//  #include "swf.h"#ifdef RCSIDstatic char *rcsid = "$Id: displaylist.cc,v 1.4 1999/09/03 15:17:40 ode Exp $";#endif#define PRINT 0void deleteButton(FlashMovie *movie, DisplayListEntry *e){    /* save the focus */    if (movie->mouse_active == 0 && e->renderState == stateOver) {        movie->lost_over = (Button *)e->character;        movie->cur_focus = NULL;    }    if (e == movie->cur_focus) {        movie->cur_focus = NULL;    }}void addButton(FlashMovie *movie, DisplayListEntry *e){    if (movie->mouse_active == 0 &&         movie->cur_focus == NULL &&        movie->lost_over == (Button *)e->character) {        /* restore the lost focus */        e->renderState = stateOver;        e->oldState = stateOver;	((Button *)e->character)->updateButtonState(e);        movie->lost_over = NULL;        movie->cur_focus = e;    }}DisplayList::DisplayList(FlashMovie *movie){	list = NULL;        this->movie = movie;	bbox.reset();	isSprite = 0;}DisplayList::~DisplayList(){	clearList();}voidDisplayList::clearList(){	DisplayListEntry *del, *e;	for(e = list; e;)	{		updateBoundingBox(e);                if (e->character->isButton()) {                    deleteButton(movie,e);                }		del = e;		e = e->next;		delete del;	}	list = 0;}DisplayListEntry *DisplayList::getList(){	return list;}static void bbox(Rect *rect, Matrix *m, long x1, long y1){    long x,y;    x = m->getX(x1,y1);    y = m->getY(x1,y1);    if (x < rect->xmin) rect->xmin = x;    if (x > rect->xmax) rect->xmax = x;    if (y < rect->ymin) rect->ymin = y;    if (y > rect->ymax) rect->ymax = y;}// Update bb to include boundary, optional reset of bbvoid transformBoundingBox(Rect *bb, Matrix *matrix, Rect *boundary, int reset){    if (reset) {        bb->reset();    }        if (boundary->xmin != LONG_MAX) {        bbox(bb, matrix, boundary->xmin, boundary->ymin);        bbox(bb, matrix, boundary->xmax, boundary->ymin);        bbox(bb, matrix, boundary->xmin, boundary->ymax);        bbox(bb, matrix, boundary->xmax, boundary->ymax);    }}voidDisplayList::placeObject(GraphicDevice *gd,Character *character, long depth, Matrix *matrix, Cxform *cxform, char *name){	DisplayListEntry *n,*e,*prev;	n = new DisplayListEntry;	if (n == NULL) return;	n->depth = depth;	n->matrix = matrix;	n->cxform = cxform;	n->character = character;	n->instanceName = name;	n->owner = this;#if 0        printf("Dl %lx: placeObject: depth=%d character=%d cxform=%p\n",               this, n->depth,n->character ? n->character->getTagId() : 0, cxform);#endif	if (character == 0 || matrix == 0 || cxform == 0) {		for (e = list; e; prev = e, e = e->next) {			if (e->depth == n->depth) {				if (character == 0) {					n->character = e->character;				}				if (matrix == 0) {					n->matrix = e->matrix;				}				if (cxform == 0) {					n->cxform = e->cxform;				}				break;			}		}	}	if (n->character == 0) {		// Not found !!!    Should not happen            //		printf("PlaceObject cannot find character at depth %ld\n", n->depth);		delete n;		return;	}	prev = 0;	for (e = list; e; prev = e, e = e->next)	{		if (e->depth == n->depth) {                        if (e->character->isButton()) {                            deleteButton(movie, e);                        }			// Do update, object has moved or been resized		        updateBoundingBox(e);			// Replace object                        e->depth = n->depth;                        e->matrix = n->matrix;                        e->cxform = n->cxform;                        e->character = n->character;                        /* if it is a button, we must update its state */                        if (e->character->isButton()) {                            movie->buttons_updated = 1;                            addButton(movie, e);                        }		        updateBoundingBox(e);                        delete n;                        return;		}		if (e->depth > n->depth) break;	}        /* new object */        /* button instantiation */        if (n->character->isButton()) {            n->renderState = stateUp;            n->oldState = stateUp;	    ((Button *)n->character)->updateButtonState(n);            addButton(movie,n);        }	updateBoundingBox(n);	if (prev == 0) {		// Object comes at first place		n->next = list;		list = n;	} else {		// Insert object		n->next = prev->next;		prev->next = n;	}}Character *DisplayList::removeObject(GraphicDevice *gd,Character *character, long depth){    DisplayListEntry *e,*prev;        // List should not be empty    if (list == 0) return 0;    #if 0    printf("removeObject: depth=%d character=%d\n",           depth,character ? character->getTagId() : 0);#endif        prev = 0;    for (e = list; e; prev = e, e = e->next) {        if (e->depth == depth) {            if (prev) {                prev->next = e->next;            } else {                list = e->next;            }            if (character == 0) {                character = e->character;            }            if (e->character->isButton()) {                deleteButton(movie, e);            }            if (e->character->isSprite()) {	    	((Sprite*)e->character)->reset();	    }                	    updateBoundingBox(e);            delete e;            return character;        }    }    return 0;	// Should not happen}voidDisplayList::updateBoundingBox(DisplayListEntry *e){	Rect	 rect;	//rect.reset();	e->character->getBoundingBox(&rect,e);	transformBoundingBox(&this->bbox, e->matrix, &rect, 0);}intDisplayList::updateSprites(){    Sprite *sprite;    DisplayListEntry *e;    int refresh = 0;    for (e = this->list; e != NULL; e = e->next) {        if (e->character->isButton() && e->buttonCharacter) {		if (e->buttonCharacter->isSprite()) {			Matrix mat;			sprite = (Sprite *)e->buttonCharacter;			refresh |= sprite->program->dl->updateSprites();			refresh |= sprite->program->nestedMovie(this->movie->gd,this->movie->sm, e->matrix, e->cxform);			mat = (*e->matrix) * e->buttonMatrix;			transformBoundingBox(&this->bbox, &mat,					&(sprite->program->dl->bbox),					0);		}	}        if (e->character->isSprite()) {		sprite = (Sprite *)e->character;		refresh |= sprite->program->dl->updateSprites();		refresh |= sprite->program->nestedMovie(this->movie->gd,this->movie->sm, e->matrix, e->cxform);		transformBoundingBox(&this->bbox, e->matrix,				&(sprite->program->dl->bbox),				0);        }    }    return refresh;}/* Function can return either 0,1 or 2   0:  Nothing match, continue   1:  Something matches, but continue searching   2:  Something matches, but stop searching*/static int exploreButtons1(Program *prg, void *opaque,                            ExploreButtonFunc func){    DisplayListEntry *e;    int ret, ret2 = 0;    for(e=prg->dl->list; e != NULL; e = e->next) {	if (e->character == NULL) continue;        if (e->character->isButton()) {            ret = func(opaque,prg,e);	    if (ret == 2) return ret;	// Func asks to return at once !!!            if (ret) ret2 = 1;        }        if (e->character->isSprite()) {            ret = exploreButtons1(((Sprite *)e->character)->program,                                  opaque,func);	    if (ret == 2) return ret;	// Func asks to return at once !!!            if (ret) ret2 = 1;        }    }    return ret2;}int exploreButtons(FlashMovie *movie, void *opaque, ExploreButtonFunc func){    CInputScript *script;    int ret;    script = movie->main;    while (script != NULL) {	if (script->program) {		ret = exploreButtons1(script->program, opaque, func);		if (ret) return ret;	}        script = script->next;    }    return 0;}typedef struct {    long x,y;    int hit;    DisplayListEntry *bhit;} HitTable;static void button_hit_func(void *id, long y, long start, long end){    HitTable *h = (HitTable *) id;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩黄色一区二区| 午夜精品123| 懂色av一区二区三区蜜臀| 在线国产电影不卡| 综合激情网...| 国产91精品露脸国语对白| 久久精品视频一区| 亚洲成人精品在线观看| 欧美日韩精品一区二区三区 | 91精品国产综合久久久久久久 | 国产一区视频网站| 国产精品私人影院| 欧美一区国产二区| 欧美丰满嫩嫩电影| 国产馆精品极品| 一区二区三区在线视频播放| 91久色porny | 日韩亚洲欧美一区| 一本一道波多野结衣一区二区| 亚洲另类色综合网站| 3d动漫精品啪啪1区2区免费| 韩日av一区二区| 综合久久综合久久| 91精品国产欧美一区二区18| 国产伦精品一区二区三区免费迷| 青草国产精品久久久久久| 久久久久久久久久看片| 99精品视频在线播放观看| 亚洲国产一区二区三区青草影视| 精品国产凹凸成av人网站| 高清在线成人网| 美女mm1313爽爽久久久蜜臀| 日韩一区二区电影在线| 成人av一区二区三区| 麻豆精品一区二区综合av| 一区二区三区中文在线观看| 中文字幕在线不卡视频| 欧美一区二区福利视频| 97精品视频在线观看自产线路二| 麻豆国产欧美一区二区三区| 亚洲精品自拍动漫在线| 中文字幕亚洲区| 国产精品免费视频网站| 综合激情成人伊人| 亚洲视频你懂的| 亚洲国产aⅴ成人精品无吗| 亚洲乱码日产精品bd| 久久久一区二区三区捆绑**| 91首页免费视频| 成人国产视频在线观看| 国产成人精品免费看| 免费日本视频一区| 美女精品一区二区| 精品一区二区三区的国产在线播放 | 黄页网站大全一区二区| 国产成人免费视频网站| 丁香婷婷深情五月亚洲| 高清久久久久久| 欧美日韩国产美| 欧美视频一区二区三区四区| 在线电影院国产精品| 国产视频一区二区在线观看| 国产精品网站导航| 亚洲成人av一区二区| 狠狠色丁香久久婷婷综合_中 | 国产欧美一区二区精品久导航 | 日韩欧美一卡二卡| 国产欧美一区二区精品性色| 亚洲免费av网站| 精品夜夜嗨av一区二区三区| www.色综合.com| 欧美精品vⅰdeose4hd| 欧美韩国日本不卡| 日本不卡视频在线观看| 成人一区二区三区中文字幕| 欧美日韩一区成人| 国产精品免费aⅴ片在线观看| 日韩二区三区在线观看| 色一情一乱一乱一91av| 久久精品在这里| 蜜臀91精品一区二区三区| 色88888久久久久久影院按摩 | 亚洲第一狼人社区| jlzzjlzz亚洲日本少妇| 欧美本精品男人aⅴ天堂| 亚洲影院久久精品| 成人三级伦理片| 中文字幕电影一区| 国产高清精品久久久久| 久久综合一区二区| 麻豆精品一区二区三区| 欧美优质美女网站| 午夜精品福利一区二区蜜股av | 久久成人免费网站| 欧美精品一二三区| 天天色综合成人网| 欧美亚洲另类激情小说| 亚洲国产视频一区二区| 欧美日韩国产综合一区二区三区| 一二三区精品视频| 欧美性猛交一区二区三区精品| 亚洲精品国产视频| 欧美欧美欧美欧美首页| 免费在线成人网| 久久久精品人体av艺术| 99久久久免费精品国产一区二区| 亚洲麻豆国产自偷在线| 欧美日韩成人综合| 国产黄色精品视频| 亚洲免费观看视频| 日韩欧美激情在线| av电影天堂一区二区在线观看| 亚洲精品一二三区| 欧美一级专区免费大片| 粉嫩一区二区三区性色av| 亚洲码国产岛国毛片在线| 91精品国产免费久久综合| 国产成人欧美日韩在线电影| 蜜臀av性久久久久蜜臀aⅴ四虎| 日韩欧美自拍偷拍| 91尤物视频在线观看| 日本不卡1234视频| 亚洲精品你懂的| 中文字幕高清一区| 2023国产精品视频| 7777精品伊人久久久大香线蕉最新版 | 日本一区二区视频在线| 8v天堂国产在线一区二区| 高清av一区二区| 乱中年女人伦av一区二区| 一区二区三区视频在线观看| 久久久久久久久久久久久女国产乱 | 精品久久久久久久一区二区蜜臀| 色成人在线视频| 91女人视频在线观看| 激情五月播播久久久精品| 亚洲国产wwwccc36天堂| 一区二区三区在线视频观看58| 亚洲欧美在线aaa| 国产精品你懂的在线| 中文字幕一区二区在线观看| 亚洲精品一区二区三区精华液 | 中文字幕在线不卡| 国产精品网曝门| 国产精品三级电影| 亚洲欧美偷拍卡通变态| 亚洲天堂免费看| 亚洲一区二区三区四区在线观看| 亚洲女女做受ⅹxx高潮| 亚洲一级二级在线| 免费成人av资源网| 国产一区三区三区| 成人黄色777网| 欧美丝袜第三区| 亚洲欧美日韩一区二区| 亚洲一区二区偷拍精品| 另类调教123区| 不卡一区二区三区四区| 欧美影院一区二区| 精品噜噜噜噜久久久久久久久试看| 精品国产成人系列| 亚洲一区二区三区四区在线| 国产一区二区三区在线观看免费视频 | 亚洲另类春色国产| 美脚の诱脚舐め脚责91| 懂色av噜噜一区二区三区av| 欧美日韩激情一区二区| 国产欧美一区二区精品秋霞影院 | 在线不卡a资源高清| 亚洲卡通欧美制服中文| 日韩高清欧美激情| 91亚洲资源网| 日本一区二区三区电影| 麻豆91在线播放免费| 91久久免费观看| 欧美国产视频在线| 精品在线观看视频| 在线电影一区二区三区| 一级中文字幕一区二区| 成人性生交大片免费看中文| 9191成人精品久久| 亚洲一区二区av电影| hitomi一区二区三区精品| 国产亚洲短视频| 国产麻豆精品一区二区| 日韩免费电影网站| 日本特黄久久久高潮| 在线播放视频一区| 免费成人av在线| 91精品婷婷国产综合久久| 亚洲午夜久久久久久久久电影网| 99热99精品| 亚洲精品久久久蜜桃| 色嗨嗨av一区二区三区| 一区二区三区在线视频免费观看| 一本一道波多野结衣一区二区| 综合久久给合久久狠狠狠97色| www.在线成人| 亚洲精品乱码久久久久久黑人| 欧美三级三级三级|