📄 render_mask.c.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 + -