From c958b9ffccedb8cac37e4165904608228b847c5d Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Wed, 13 Sep 2023 10:57:45 -0400 Subject: [PATCH] Remove alpha-blending framebuffer functions --- src/hulk/fb.d | 79 --------------------------------------------------- 1 file changed, 79 deletions(-) diff --git a/src/hulk/fb.d b/src/hulk/fb.d index b20a96c..0bfe60d 100644 --- a/src/hulk/fb.d +++ b/src/hulk/fb.d @@ -131,70 +131,6 @@ struct Fb } } - /** - * Draw a character. - * - * @param x X coordinate of left side of character. - * @param y Y coordinate of bottom side of character. - * @param ch Character to draw. - * @param color Color of character. - */ - static void character(int x, int y, char ch, uint color) - { - const(CharInfo) * ci = &Kfont.chars[ch]; - blend_alpha_bitmap(x + ci.left, y + Kfont.baseline_offset + ci.top - ci.height, ci.bitmap, ci.width, ci.height, color); - } - - /** - * Blend an 8-bit alpha bitmap to the framebuffer. - * - * @param x X coordinate of left side of target location. - * @param y Y coordinate of bottom side of target location. - * @param alpha_bitmap 8-bit alpha-channel bitmap. - * @param width Bitmap width. - * @param height Bitmap height. - * @param color Color to blend with alpha value. - */ - static void blend_alpha_bitmap(size_t x, size_t y, const(ubyte) * alpha_bitmap, - size_t width, size_t height, uint color) - { - y += height - 1u; - size_t bitmap_index; - for (size_t iy = 0u; iy < height; iy++) - { - size_t row_buffer_index = buffer_index(x, y); - for (size_t ix = 0u; ix < width; ix++) - { - size_t buffer_index = row_buffer_index + ix; - ubyte alpha = alpha_bitmap[bitmap_index]; - uint current_color = m_buffer1[buffer_index]; - uint in_color_scaled = scale_color(color, alpha); - uint old_color_scaled = scale_color(current_color, 255u - alpha); - uint new_color = old_color_scaled + in_color_scaled; - m_buffer1[buffer_index] = new_color; - bitmap_index++; - } - memcpy32(&m_device_buffer[row_buffer_index], &m_buffer1[row_buffer_index], width); - y--; - } - } - - /** - * Blend an 8-bit alpha bitmap to the framebuffer. - * - * @param x X coordinate of left side of target location. - * @param y Y coordinate of bottom side of target location. - * @param alpha_bitmap 8-bit alpha-channel bitmap. - * @param width Bitmap width. - * @param height Bitmap height. - * @param color Color to blend with alpha value. - */ - static void blend_alpha_bitmap(size_t x, size_t y, const(ubyte)[] alpha_bitmap, - size_t width, size_t height, uint color) - { - blend_alpha_bitmap(x, y, alpha_bitmap.ptr, width, height, color); - } - /** * Blit an 8-bit alpha bitmap to the framebuffer. * The foreground will be white (based on the alpha value), and the @@ -262,21 +198,6 @@ struct Fb (m_stride * height)); } - /** - * Scale a color value by an alpha amount. - * - * @param color Color value. - * @param alpha Alpha amount. - * - * @return Scaled color value. - */ - private static uint scale_color(uint color, ubyte alpha) - { - return ((((color & 0xFFu) * alpha) >> 8u) & 0xFFu) | - ((((color & 0xFF00u) * alpha) >> 8u) & 0xFF00u) | - ((((color & 0xFF0000u) * alpha) >> 8u) & 0xFF0000u); - } - /** * Return the buffer index for the given X and Y coordinates. *