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

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

?? sdl-player.c

?? libFAD is a Flash Animation Decode library
?? C
字號:
/** * libFAD - Flash Animation Decode library * Copyright (C) 2005-2006 VGSystem Technologies, Inc. * * libFAD is the legal property of its developers, whose names are too numerous * to list here.  Please refer to the COPYRIGHT file distributed with this * source distribution. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Library 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 Library 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 * * $Id: sdl-player.c,v 1.1 2006/03/22 02:17:52 wrxzzj Exp $ */#include <errno.h>#include <signal.h>#include <string.h>#include <SDL/SDL.h>#include "fad.h"#define FAD_ONTIMER  SDL_USEREVENT+100#define DUMP(...) fprintf(stderr, "sdl-player: "__VA_ARGS__)SDL_Surface *sdl_screen = NULL, *sdl_surface = NULL;SDL_TimerID tid;static void _sdl_update_callback(void *surface, s32_t x, s32_t y, s32_t w, s32_t h) {	/**copy image buffer from surface to screen*/	SDL_BlitSurface(sdl_surface, NULL, sdl_screen, NULL);	SDL_UpdateRect(sdl_screen, 0, 0, 0, 0);}static u32_t _sdl_on_timer(u32_t interval, void* param) {  SDL_Event event;  event.type = FAD_ONTIMER;  event.user.code = 2;  event.user.data1 = NULL;  event.user.data2 = NULL;  SDL_PushEvent(&event);  return interval;}int main(int argc, char* argv[]) {  fad_frame_t frame = {0};  fad_stream_t stream = {0};  FILE* fp = NULL;  u8_t *imgbuf = NULL, quit = 0;  SDL_Event event;  int bits_per_pixel, bytes_per_pixel, stride, width, height;  if(argc != 2) {    printf("\tFlash animation player base on libFAD-%d.%d.%d.\n", FAD_MAJOR_VER, FAD_MINOR_VER, FAD_MICRO_VER);    printf("\tCopyright (c) 2005 - 2006 RuXu W.(wrxzzj-AT-gmail-DOT-com)\n");    printf("\n\tUsage: \tfap <flash animation file>.swf\n");    return -1;  }  if(SDL_Init(SDL_INIT_VIDEO|SDL_INIT_TIMER) < 0) {    DUMP("SDL system initialized failure.\n");    return -1;  }  atexit(SDL_Quit);  signal(SIGINT, SIG_DFL);  fp = fopen(argv[1], "rb");  if(fp == NULL) {    DUMP("open %s failure, err = %s.\n", argv[1], strerror(errno));    return -1;  }  fad_frame_init(&frame);  fad_stream_init(&stream, NULL);	fad_frame_set_update_callback(&frame, _sdl_update_callback, NULL);  fad_stream_stdio(&stream, fp);  /**decode flash file header*/  fad_frame_decode(&frame, &stream);  if(stream.err != FAD_ERROR_NONE) {    DUMP("decode flash file header failure.\n");    fclose(fp);    return -1;  }  width = (frame.size.x1-frame.size.x0)/20;  height = (frame.size.y1-frame.size.y0)/20;  sdl_screen = SDL_SetVideoMode(width, height, 32, SDL_SWSURFACE);  if(sdl_screen == NULL)    goto error;  SDL_WM_SetCaption("Flash Animation Player", NULL);  stride = width*(SDL_GetVideoInfo()->vfmt->BytesPerPixel);  imgbuf = calloc(1, stride*height);  if(imgbuf == NULL)    goto error;  sdl_surface = SDL_CreateRGBSurfaceFrom((void* )imgbuf, width, height, SDL_GetVideoInfo()->vfmt->BitsPerPixel, stride, 0x00, 0x00, 0x00, 0xff<<24);  if(sdl_surface == NULL)    goto error;  {    cairo_surface_t *mysurface = NULL;    mysurface = cairo_image_surface_create_for_data(imgbuf, CAIRO_FORMAT_ARGB32, width, height, stride);    if(mysurface == NULL) {      DUMP("create cairo image surface failure.\n");      goto error;    }    frame.render->cr = cairo_create(mysurface);    if(frame.render->cr == NULL) {      DUMP("create cairo context failure.\n");      goto error;    }    cairo_surface_destroy(mysurface);  }  cairo_set_fill_rule(frame.render->cr, CAIRO_FILL_RULE_EVEN_ODD);  cairo_set_tolerance(frame.render->cr, 0.50);  tid = SDL_AddTimer(256000/frame.rate, _sdl_on_timer, NULL);  while(SDL_WaitEvent(&event)) {    switch(event.type) {      case FAD_ONTIMER:        /**TIPS:you can skip vector graphic movie render if your CPU is slower*/        /**if frame isn't render-ready mode, decode more flash stream*/        if(frame.sta == FAD_STA_END) {          //quit = 1;          break;        }        if(frame.sta == FAD_STA_STOP)          break;        while(frame.sta!=FAD_STA_DORENDER && frame.sta!=FAD_STA_FINISH && frame.sta!=FAD_STA_UPDATEBTN )          fad_frame_decode(&frame, &stream);        /**set background color for movie*/        SDL_FillRect(sdl_surface, NULL, SDL_MapRGB(sdl_surface->format, frame.r, frame.g, frame.b));        /**render vector graphic movie*/        fad_frame_render_movie(&frame);        /**copy image buffer from surface to screen*/        SDL_BlitSurface(sdl_surface, NULL, sdl_screen, NULL);        SDL_UpdateRect(sdl_screen, 0, 0, 0, 0);        /**render audio in frame*/        fad_frame_render_audio(&frame, &stream);        break;      /**set mouse position & state in render public attribute*/      case SDL_MOUSEBUTTONUP:				if(frame.proc_mbevt)					frame.proc_mbevt(&frame, FAD_EVT_MBUP, event.button.x, event.button.y);				break;      case SDL_MOUSEBUTTONDOWN:				if(frame.proc_mbevt)					frame.proc_mbevt(&frame, FAD_EVT_MBDOWN, event.button.x, event.button.y);        break;      case SDL_MOUSEMOTION:				if(frame.proc_mbevt)					frame.proc_mbevt(&frame, FAD_EVT_MBMOTION, event.motion.x, event.motion.y);        break;      case SDL_QUIT:        quit = 1;        break;      default:        break;    }    if(quit)      break;  }/**while(poll_event)*/error:  fclose(fp);  fad_frame_finish(&frame);  fad_stream_finish(&stream);  if(imgbuf != NULL)    free(imgbuf);  if(sdl_screen != NULL)    SDL_FreeSurface(sdl_screen);  if(sdl_surface != NULL)    SDL_FreeSurface(sdl_surface);  if(tid != NULL)    SDL_RemoveTimer(tid);  return 0;}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久免费午夜影院| 亚洲欧美色图小说| 亚洲美女区一区| 美女一区二区视频| 色呦呦国产精品| 国产日韩欧美一区二区三区乱码| 亚洲视频在线一区| 久久99蜜桃精品| 在线精品视频一区二区三四| 久久久久久久久99精品| 欧美a级一区二区| 日本乱人伦aⅴ精品| 国产欧美日韩三级| 久久精品理论片| 欧美日本一区二区三区四区| 成人免费视频在线观看| 国产伦精一区二区三区| 在线电影一区二区三区| 亚洲国产精品尤物yw在线观看| 成人激情视频网站| 亚洲国产高清在线| 国产成a人无v码亚洲福利| 久久麻豆一区二区| 久久国产三级精品| 精品少妇一区二区三区视频免付费| 亚洲少妇最新在线视频| 成人免费视频免费观看| 国产女主播一区| 国产精品综合av一区二区国产馆| 日韩美一区二区三区| 日韩av电影一区| 在线成人免费视频| 蜜桃免费网站一区二区三区| 欧美一二三区在线观看| 另类欧美日韩国产在线| 日韩一区二区精品| 极品少妇xxxx精品少妇| 国产性做久久久久久| 成人免费视频一区| 亚洲色图制服诱惑| 欧美性淫爽ww久久久久无| 国产成人免费9x9x人网站视频| 精品国产乱码久久| 国产成人免费在线观看| 国产女同性恋一区二区| av不卡一区二区三区| 亚洲在线免费播放| 欧美电影在线免费观看| 精品一区二区在线观看| 久久久蜜桃精品| 一本一道综合狠狠老| 视频一区中文字幕国产| www欧美成人18+| 99re这里只有精品首页| 五月天久久比比资源色| 精品国产区一区| jlzzjlzz欧美大全| 婷婷成人激情在线网| 久久免费美女视频| 在线视频一区二区三| 免费高清在线一区| 国产精品午夜久久| 欧美人xxxx| 成人精品视频一区| 舔着乳尖日韩一区| 中文字幕一区二区三区乱码在线| 欧美午夜免费电影| 国产精品18久久久久久vr| 一区二区三区四区av| 欧美mv日韩mv国产| 色婷婷综合久久久久中文| 蜜桃视频第一区免费观看| 亚洲欧美视频一区| 久久久99免费| 555夜色666亚洲国产免| 成人精品高清在线| 蜜桃视频在线观看一区| 亚洲品质自拍视频| 久久九九影视网| 91精品国产91久久综合桃花| 不卡区在线中文字幕| 美女在线一区二区| 亚洲电影第三页| 中文字幕一区三区| 26uuu久久综合| 欧美一区二区三区在线观看视频| 99久久伊人网影院| 国产在线视频一区二区| 亚洲国产精品一区二区www| 欧美国产精品久久| 欧美mv和日韩mv的网站| 欧美性色aⅴ视频一区日韩精品| 国产不卡视频在线播放| 日本美女一区二区三区视频| 亚洲综合色噜噜狠狠| 中文字幕制服丝袜一区二区三区 | 亚洲成人av中文| 国产精品初高中害羞小美女文| 欧美v日韩v国产v| 3d成人动漫网站| 欧美午夜片在线看| 色婷婷综合视频在线观看| 欧美精品成人一区二区三区四区| 91免费视频网| 99久久精品一区| zzijzzij亚洲日本少妇熟睡| 国产精品中文字幕一区二区三区| 人妖欧美一区二区| 人人爽香蕉精品| 麻豆精品在线看| 麻豆专区一区二区三区四区五区| 婷婷一区二区三区| 天天操天天干天天综合网| 午夜精品久久久久久久久| 亚洲成人av一区| 日产国产欧美视频一区精品| 亚洲第一福利视频在线| 午夜在线成人av| 视频精品一区二区| 精品一区二区影视| 国产乱理伦片在线观看夜一区| 国内外精品视频| 成人一区二区三区中文字幕| 丁香婷婷综合五月| 91在线国产福利| 欧美影院一区二区三区| 在线不卡a资源高清| 日韩一级精品视频在线观看| 亚洲精品在线免费播放| 国产精品午夜在线| 亚洲一区二区三区四区不卡| 婷婷丁香激情综合| 国产精品一色哟哟哟| av一本久道久久综合久久鬼色| 色先锋aa成人| 精品欧美黑人一区二区三区| 国产性做久久久久久| 亚洲色图一区二区三区| 日韩电影在线一区二区| 国产福利一区二区三区在线视频| 成人h精品动漫一区二区三区| 色激情天天射综合网| 欧美一区二区三区婷婷月色| 久久老女人爱爱| 一区二区三区四区av| 国产精品电影院| 日本大胆欧美人术艺术动态 | 日本 国产 欧美色综合| 国产久卡久卡久卡久卡视频精品| 成人av资源在线观看| 欧美另类一区二区三区| 国产午夜精品一区二区三区嫩草 | 久久久夜色精品亚洲| 亚洲精品视频免费看| 精品综合免费视频观看| jlzzjlzz欧美大全| 欧美xfplay| 亚洲国产一区二区在线播放| 国产一区欧美二区| 国产亚洲一区二区三区四区| 樱花草国产18久久久久| 狠狠色综合日日| 欧美三级日韩三级| 日本一区二区免费在线观看视频 | 午夜久久久影院| 成人v精品蜜桃久久一区| 日韩免费高清av| 性欧美大战久久久久久久久| 成人黄色网址在线观看| 欧美精品一区二区三区在线| 一区二区三区在线视频免费观看 | 蜜桃精品视频在线观看| 99久久精品免费| 久久久99精品免费观看不卡| 香蕉av福利精品导航| 一本色道a无线码一区v| 亚洲国产成人私人影院tom| 另类人妖一区二区av| 欧美久久久久久久久中文字幕| 国产精品家庭影院| 国产精品一区免费视频| 欧美一级高清片| 青青草精品视频| 欧美久久一二三四区| 亚洲午夜羞羞片| 欧美在线免费视屏| 亚洲品质自拍视频| 97超碰欧美中文字幕| 国产精品色哟哟网站| 国产成人免费在线视频| 国产欧美日韩精品在线| 国产激情视频一区二区在线观看 | 成人一区二区三区视频| 欧美精品一区二区精品网| 精品在线亚洲视频| 精品国产99国产精品| 精品无人区卡一卡二卡三乱码免费卡| 777奇米成人网| 蜜臀av性久久久久av蜜臀妖精| 欧美高清视频www夜色资源网|