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

📄 bitmap.xs

📁 flash swf file player
💻 XS
字号:
/* ==================================================================== * Copyright (c) 2000-2001 by Soheil Seyfaie. All rights reserved. * This program is free software; you can redistribute it and/or modify * it under the same terms as Perl itself. * ==================================================================== * * $Author: soheil $ * $Id: Bitmap.xs,v 1.2 2001/12/30 20:26:34 soheil Exp $ */#include "EXTERN.h"#include "perl.h"#include "XSUB.h"#include "SWF.h"#include "perl_swf.h"MODULE = SWF::Bitmap		PACKAGE = SWF::Bitmap		PREFIX = SWFBitmap_PROTOTYPES: ENABLESWF::BitmapSWFBitmap_new(package="SWF::Bitmap", filename, alpha=NULL)	char    *package	char    *filename = NO_INIT        char    *alpha        PREINIT:        CV      *cv;        STRLEN  len;        char   *my_sub;	CODE:        filename = (char *) SvPV(ST(1), len);        if( strncasecmp(filename+len-4, ".jpg", 4) == 0 ||            strncasecmp(filename+len-5, ".jpeg", 5) == 0)            my_sub = alpha ? "SWF::Bitmap::newSWFJpegWithAlpha" : "SWF::Bitmap::newSWFJpegBitmap";        else if(strncasecmp(filename+len-4, ".dbl", 4) == 0)            my_sub = "SWF::Bitmap::newSWFDBLBitmap";        else            croak("argument to SWF::Bitmap::New must be a JPG or dbl filename");        PUSHMARK(mark);        cv = GvCV(gv_fetchpv(my_sub, FALSE, SVt_PVCV));#ifdef PERL_OBJECT        (void)(*CvXSUB(cv))(cv, pPerl);#else        (void)(*CvXSUB(cv))(aTHXo_ cv);#endifSWF::BitmapnewSWFDBLBitmap(package="SWF::Bitmap", filename)         char    *package         char    *filename         PREINIT:          FILE    *dbl;         CODE:         if ( !(dbl = fopen(filename, "rb")) ){             fprintf(stderr, "Unable to open %s\n", filename);             ST(0) = &sv_undef;         }else{                RETVAL = newSWFDBLBitmap(dbl);                ST(0) = sv_newmortal();                sv_setref_pv(ST(0), package, (void*)RETVAL);         }SWF::BitmapnewSWFJpegWithAlpha(package="SWF::Bitmap", filename, mask)        char    *package        char    *filename        char    *mask        PREINIT:        FILE    *f;        FILE    *alpha;        CODE:        if ( !(f = fopen(filename, "rb")) ){            fprintf(stderr, "Unable to open %s\n", filename);            ST(0) = &sv_undef;        }        else{            if ( !(alpha = fopen(mask, "rb")) ){                fprintf(stderr, "Unable to open %s\n", mask);                ST(0) = &sv_undef;            }            else{                RETVAL = newSWFJpegWithAlpha(f, alpha);                ST(0) = sv_newmortal();                sv_setref_pv(ST(0), package, (void*)RETVAL);           }        }SWF::BitmapnewSWFJpegBitmap(package="SWF::Bitmap", filename)        char    *package        char    *filename	PREINIT:	FILE    *f;	CODE:	if (!(f = fopen(filename, "rb"))) {		fprintf(stderr, "Unable to open %s\n", filename);		ST(0) = &sv_undef;	}else{        	RETVAL = newSWFJpegBitmap(f);	        ST(0) = sv_newmortal();        	sv_setref_pv(ST(0), package, (void*)RETVAL);	}intSWFBitmap_getWidth(b)	SWF::Bitmap	bintSWFBitmap_getHeight(b)	SWF::Bitmap	bvoiddestroySWFBitmap(bitmap)        SWF::Bitmap     bitmap         ALIAS:        SWF::Bitmap::DESTROY = 1        CODE:	S_DEBUG(2, fprintf(stderr, "Bitmap DESTROY CALLED\n"));        destroySWFBitmap(bitmap);

⌨️ 快捷键说明

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