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

📄 render_mask.c.svn-base

📁 A Flash Player with ActionScript support. Write in C and C++. It have two part, one is Player and an
💻 SVN-BASE
字号:
#include <stdio.h>#include <stdlib.h>#include "config.h"#include "base_types.h"#include "render_mask.h"#include "instance.h"#include "define.h"#include "swf_file_pub.h"#if WITH_DMALLOC#include <dmalloc.h>#endif#define PRINT_DGint hb=0;unsigned int canvassize=0;void render_mask_enter(GNode* node_p) {    instance_t  *data_p = (instance_t*)(node_p->data);    define_t    *def_p  = (define_t*)data_p->define_p;    swf_file_t	*swf_p = data_p->swf_p;    //压结构到 swf_p->mask_stack_p;    unsigned char *tmpmaskpointer;    struct MaskEntry  *tmpmaskentry;    tmpmaskpointer=malloc((((canvassize>>3)<<3)+1)*sizeof(unsigned char));    bzero(tmpmaskpointer,((canvassize>>3)<<3)+1);    tmpmaskentry=malloc(sizeof(struct MaskEntry));    tmpmaskentry->maskpointer=tmpmaskpointer;    printf("it is %ld\n",swf_p->mask_stack_p);    if(!swf_p->mask_stack_p) {        swf_p->mask_stack_p=tmpmaskentry;        swf_p->mask_stack_p->priv=0;        hb=0;    } else {        tmpmaskentry->priv=swf_p->mask_stack_p;        swf_p->mask_stack_p=tmpmaskentry;        hb=1;    }    printf("hb is %d\n",hb);    printf("enter mask\n");};void render_mask_leave(GNode* node_p) {    instance_t  *data_p = (instance_t*)(node_p->data);    define_t    *def_p  = (define_t*)data_p->define_p;    swf_file_t	*swf_p = data_p->swf_p;    unsigned char *tmpmaskpointer;    struct MaskEntry  *tmpmaskentry;    tmpmaskentry=swf_p->mask_stack_p;    swf_p->mask_stack_p=swf_p->mask_stack_p->priv;    free(tmpmaskentry->maskpointer);    free(tmpmaskentry);    if(!swf_p->mask_stack_p)        hb=0;    if(swf_p->mask_stack_p&&swf_p->mask_stack_p->priv==0)        hb=0;    //弹出顶层 swf_p->mask_stack_p;    printf("leave mask\n");};void maskhb(swf_file_t	*swf_p) {    int i;#ifdef PRINT_DG    fprintf(stderr,"flash: loading render mask maskhb Start---\n");    fprintf(stderr,"flash: loading render mask maskhb end (((canvassize>>3)<<3)+1)=%d---\n",(((canvassize>>3)<<3)+1));#endif    if(swf_p->mask_stack_p->maskpointer)        printf("current is true\n");    if(swf_p->mask_stack_p->priv)        printf("priv is true\n");    for(i=0;i<(((canvassize>>3)<<3)+1);i++)        swf_p->mask_stack_p->maskpointer[i]&=swf_p->mask_stack_p->priv->maskpointer[i];#ifdef PRINT_DG    fprintf(stderr,"flash: loading render mask maskhb end i=%d---\n",i);#endif};

⌨️ 快捷键说明

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