mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-08-28 07:51:19 +02:00
fontrenderer: fix rendering problems with accelerated blitting
This commit is contained in:
committed by
Jacek Jendrzej
parent
90c252f6f9
commit
ca9b85b3f5
@@ -432,14 +432,20 @@ void Font::RenderString(int x, int y, const int width, const char *text, const u
|
||||
static fb_pixel_t oldbgcolor = 0, oldfgcolor = 0;
|
||||
static fb_pixel_t colors[256]={0};
|
||||
|
||||
/* fetch bgcolor from framebuffer, using lower left edge of the font... */
|
||||
fb_pixel_t bgcolor = *(frameBuffer->getFrameBufferPointer() + x +
|
||||
y * frameBuffer->getStride() / sizeof(fb_pixel_t));
|
||||
// fb_pixel_t bgcolor = frameBuffer->realcolor[color];
|
||||
uint8_t fgindex = color; /* index of font color in the palette */
|
||||
if (color > COL_BLACK0 && color < 254) /* bigger than 254 would result in > 255 */
|
||||
fgindex = ((((int)color) + 2) | 7) - 2; /* no idea what this does exactly... */
|
||||
fb_pixel_t fgcolor = frameBuffer->realcolor[fgindex];
|
||||
#ifndef USE_NEVIS_GXA
|
||||
/* the GXA seems to do it's job asynchonously, so we need to wait until
|
||||
it's ready, otherwise the font will sometimes "be overwritten" with
|
||||
background color or bgcolor will be wrong */
|
||||
frameBuffer->waitForIdle();
|
||||
#endif
|
||||
/* fetch bgcolor from framebuffer, using lower left edge of the font... */
|
||||
fb_pixel_t bgcolor = *(frameBuffer->getFrameBufferPointer() + x +
|
||||
y * frameBuffer->getStride() / sizeof(fb_pixel_t));
|
||||
|
||||
if((oldbgcolor != bgcolor) || (oldfgcolor != fgcolor)) {
|
||||
|
||||
@@ -484,12 +490,6 @@ void Font::RenderString(int x, int y, const int width, const char *text, const u
|
||||
spread_by = 1;
|
||||
}
|
||||
|
||||
/* the GXA seems to do it's job asynchonously, so we need to wait until
|
||||
it's ready, otherwise the font will sometimes "be overwritten" with
|
||||
background color */
|
||||
#ifndef USE_NEVIS_GXA
|
||||
frameBuffer->waitForIdle();
|
||||
#endif
|
||||
for (; *text; text++)
|
||||
{
|
||||
FTC_SBit glyph;
|
||||
|
Reference in New Issue
Block a user