- if(has_alpha) {
- if(num_colors<=256 || sizex<8 || sizey<8) {
- i->tag = swf_InsertTag(i->tag,ST_DEFINEBITSLOSSLESS2);
- swf_SetU16(i->tag, bitid);
- swf_SetLosslessImage(i->tag,mem,sizex,sizey);
- } else {
- /*TODO: check what is smaller */
- i->tag = swf_InsertTag(i->tag,ST_DEFINEBITSJPEG3);
- swf_SetU16(i->tag, bitid);
- swf_SetJPEGBits3(i->tag,sizex,sizey,mem,config_jpegquality);
- //swf_SetLosslessImage(i->tag,mem,sizex,sizey);
- }
+ /*RGBA* pal = (RGBA*)rfx_alloc(sizeof(RGBA)*num_colors);
+ swf_ImageGetNumberOfPaletteEntries(mem,sizex,sizey,pal);
+ int t;
+ for(t=0;t<num_colors;t++) {
+ printf("%02x%02x%02x%02x ",
+ pal[t].r, pal[t].g, pal[t].b, pal[t].a);
+ if((t&7)==7)
+ printf("\n");
+ }
+ printf("\n");*/
+
+ int bitid = -1;
+ int cacheid = imageInCache(obj, mem, sizex, sizey);
+
+ if(cacheid<=0) {
+ bitid = getNewID(obj);
+ i->tag = swf_AddImage(i->tag, bitid, mem, sizex, sizey, config_jpegquality);
+ addImageToCache(obj, mem, sizex, sizey);