Fix color of rendered text for Solaris
This commit is contained in:
parent
a4479f9c07
commit
719937c06f
1 changed files with 13 additions and 5 deletions
|
@ -39,7 +39,7 @@ static RenderBackend_Surface framebuffer;
|
||||||
|
|
||||||
static RenderBackend_GlyphAtlas *glyph_atlas;
|
static RenderBackend_GlyphAtlas *glyph_atlas;
|
||||||
static RenderBackend_Surface *glyph_destination_surface;
|
static RenderBackend_Surface *glyph_destination_surface;
|
||||||
static unsigned char glyph_colour_channels[3];
|
static unsigned char glyph_colour_channels[4];
|
||||||
|
|
||||||
RenderBackend_Surface* RenderBackend_Init(const char *window_title, size_t screen_width, size_t screen_height, bool fullscreen)
|
RenderBackend_Surface* RenderBackend_Init(const char *window_title, size_t screen_width, size_t screen_height, bool fullscreen)
|
||||||
{
|
{
|
||||||
|
@ -421,9 +421,17 @@ void RenderBackend_PrepareToDrawGlyphs(RenderBackend_GlyphAtlas *atlas, RenderBa
|
||||||
glyph_atlas = atlas;
|
glyph_atlas = atlas;
|
||||||
glyph_destination_surface = destination_surface;
|
glyph_destination_surface = destination_surface;
|
||||||
|
|
||||||
glyph_colour_channels[0] = red;
|
#ifdef LITTLE_ENDIAN
|
||||||
glyph_colour_channels[1] = green;
|
glyph_colour_channels[0] = blue;
|
||||||
glyph_colour_channels[2] = blue;
|
glyph_colour_channels[1] = green;
|
||||||
|
glyph_colour_channels[2] = red;
|
||||||
|
//glyph_colour_channels[3] = 0;
|
||||||
|
#else
|
||||||
|
//glyph_colour_channels[0] = 0;
|
||||||
|
glyph_colour_channels[1] = blue;
|
||||||
|
glyph_colour_channels[2] = green;
|
||||||
|
glyph_colour_channels[3] = red;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void RenderBackend_DrawGlyph(long x, long y, size_t glyph_x, size_t glyph_y, size_t glyph_width, size_t glyph_height)
|
void RenderBackend_DrawGlyph(long x, long y, size_t glyph_x, size_t glyph_y, size_t glyph_width, size_t glyph_height)
|
||||||
|
@ -487,7 +495,7 @@ void RenderBackend_DrawGlyph(long x, long y, size_t glyph_x, size_t glyph_y, siz
|
||||||
|
|
||||||
unsigned char *bitmap_pixel = &glyph_destination_surface->pixels[(surface_y + iy) * glyph_destination_surface->pitch + (surface_x + ix) * 4];
|
unsigned char *bitmap_pixel = &glyph_destination_surface->pixels[(surface_y + iy) * glyph_destination_surface->pitch + (surface_x + ix) * 4];
|
||||||
|
|
||||||
for (unsigned int j = 0; j < 3; ++j)
|
for (unsigned int j = 0; j < 4; ++j)
|
||||||
bitmap_pixel[j] = (unsigned char)((glyph_colour_channels[j] * alpha) + (bitmap_pixel[j] * (1.0f - alpha))); // Alpha blending
|
bitmap_pixel[j] = (unsigned char)((glyph_colour_channels[j] * alpha) + (bitmap_pixel[j] * (1.0f - alpha))); // Alpha blending
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue