spark: fix transparent icon blitting

no, the CFrameBuffer::blit2FB() API is *not* intuitive
(transp == true means: no transparency...)
This commit is contained in:
Stefan Seyfried
2012-04-04 10:54:09 +02:00
parent b8379ebbc6
commit 20f20c8511
2 changed files with 4 additions and 4 deletions

View File

@@ -5633,7 +5633,7 @@ void CopyBB2FB()
perror("TuxTxt <FBIOPAN_DISPLAY>"); perror("TuxTxt <FBIOPAN_DISPLAY>");
#else #else
#ifdef HAVE_SPARK_HARDWARE #ifdef HAVE_SPARK_HARDWARE
f->blit2FB(lbb, var_screeninfo.xres, var_screeninfo.yres, 0, 0, 0, 0, false); f->blit2FB(lbb, var_screeninfo.xres, var_screeninfo.yres, 0, 0, 0, 0, true);
f->blit(); f->blit();
#else #else
memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres); memcpy(lfb, lbb, fix_screeninfo.line_length*var_screeninfo.yres);
@@ -5688,7 +5688,7 @@ void CopyBB2FB()
int cw = TV43STARTX; /* width */ int cw = TV43STARTX; /* width */
int cy = StartY; int cy = StartY;
int ch = 24*fontheight; int ch = 24*fontheight;
f->blit2FB(lbb, cw, ch, cx, cy, cx, cy, false); f->blit2FB(lbb, cw, ch, cx, cy, cx, cy, true);
#else #else
unsigned char *topdst = dst; unsigned char *topdst = dst;
size_t width = ex * sizeof(fb_pixel_t) - screenwidth; size_t width = ex * sizeof(fb_pixel_t) - screenwidth;

View File

@@ -934,7 +934,7 @@ _display:
paintBoxRel(x, yy, width, height, colBg); paintBoxRel(x, yy, width, height, colBg);
/* to make sure backbuffer is already blitted completely... */ /* to make sure backbuffer is already blitted completely... */
waitForIdle(); waitForIdle();
blit2FB(data, width, height, x, yy, 0, 0, true); blit2FB(data, width, height, x, yy, 0, 0);
return true; return true;
} }
@@ -1408,7 +1408,7 @@ void CFrameBuffer::blit2FB(void *fbbuff, uint32_t width, uint32_t height, uint32
size_t mem_sz = width * height * sizeof(fb_pixel_t); size_t mem_sz = width * height * sizeof(fb_pixel_t);
unsigned long ulFlags = 0; unsigned long ulFlags = 0;
if (transp) /* transp == true means: color "0x0" is transparent (??) */ if (!transp) /* transp == false (default) means: color "0x0" is transparent (??) */
ulFlags = BLT_OP_FLAGS_BLEND_SRC_ALPHA|BLT_OP_FLAGS_BLEND_DST_MEMORY; // we need alpha blending ulFlags = BLT_OP_FLAGS_BLEND_SRC_ALPHA|BLT_OP_FLAGS_BLEND_DST_MEMORY; // we need alpha blending
if (fbbuff != backbuffer) if (fbbuff != backbuffer)