From 4c730be1d3b5a7a2691d470e29e15e7dae7aa296 Mon Sep 17 00:00:00 2001 From: alyosha-tas Date: Tue, 29 Aug 2017 09:34:06 -0400 Subject: [PATCH] Delete FontRenderer.cs --- EMU7800/Core/FontRenderer.cs | 170 ----------------------------------- 1 file changed, 170 deletions(-) delete mode 100644 EMU7800/Core/FontRenderer.cs diff --git a/EMU7800/Core/FontRenderer.cs b/EMU7800/Core/FontRenderer.cs deleted file mode 100644 index 763bc95d69..0000000000 --- a/EMU7800/Core/FontRenderer.cs +++ /dev/null @@ -1,170 +0,0 @@ -/* - * FontRenderer - * - * A simple font renderer for displaying text during emulation. Font data and - * rendering algorithm courtesy of Bradford W. Mott's Stella source. - * - * Copyright © 2004 Mike Murphy - * - */ - -using System; - -namespace EMU7800.Core -{ - /// - /// A simple font renderer for displaying text during emulation. - /// - public class FontRenderer - { - static readonly uint[] AlphaFontData = - { - 0x699f999, // A - 0xe99e99e, // B - 0x6988896, // C - 0xe99999e, // D - 0xf88e88f, // E - 0xf88e888, // F - 0x698b996, // G - 0x999f999, // H - 0x7222227, // I - 0x72222a4, // J - 0x9accaa9, // K - 0x888888f, // L - 0x9ff9999, // M - 0x9ddbb99, // N - 0x6999996, // O - 0xe99e888, // P - 0x69999b7, // Q - 0xe99ea99, // R - 0x6986196, // S - 0x7222222, // T - 0x9999996, // U - 0x9999966, // V - 0x9999ff9, // W - 0x99fff99, // X - 0x9996244, // Y - 0xf12488f // Z - }; - - static readonly uint[] DigitFontData = - { - 0x69bd996, // 0 - 0x2622227, // 1 - 0x691248f, // 2 - 0x6916196, // 3 - 0xaaaf222, // 4 - 0xf88e11e, // 5 - 0x698e996, // 6 - 0xf112244, // 7 - 0x6996996, // 8 - 0x6997196 // 9 - }; - - /// - /// Draw specified text at specified position using the specified foreground and background colors. - /// - /// - /// - /// - /// - /// - /// - /// text must be non-null. - public void DrawText(FrameBuffer frameBuffer, string text, int xoffset, int yoffset, byte fore, byte back) - { - if (text == null) - throw new ArgumentNullException("text"); - - var textchars = text.ToUpper().ToCharArray(); - - for (var i = 0; i < text.Length + 1; i++) - { - for (var j = 0; j < 9; j++) - { - var pos = (j + yoffset) * frameBuffer.VisiblePitch + i * 5; - for (var k = 0; k < 5; k++) - { - while (pos >= frameBuffer.VideoBufferByteLength) - { - pos -= frameBuffer.VideoBufferByteLength; - } - while (pos < 0) - { - pos += frameBuffer.VideoBufferByteLength; - } - frameBuffer.VideoBuffer[pos++] = back; - } - } - } - - for (var i = 0; i < text.Length; i++) - { - var c = textchars[i]; - uint fdata; - - switch (c) - { - case '/': - case '\\': - fdata = 0x0122448; - break; - case '(': - fdata = 0x2488842; - break; - case ')': - fdata = 0x4211124; - break; - case '.': - fdata = 0x0000066; - break; - case ':': - fdata = 0x0660660; - break; - case '-': - fdata = 0x0007000; - break; - default: - if (c >= 'A' && c <= 'Z') - { - fdata = AlphaFontData[c - 'A']; - } - else if (c >= '0' && c <= '9') - { - fdata = DigitFontData[c - '0']; - } - else - { - fdata = 0; - } - break; - } - - var ypos = 8; - for (var j = 0; j < 32; j++) - { - var xpos = j & 3; - if (xpos == 0) - { - ypos--; - } - - var pos = (ypos + yoffset) * frameBuffer.VisiblePitch + (4 - xpos) + xoffset; - while (pos >= frameBuffer.VideoBufferByteLength) - { - pos -= frameBuffer.VideoBufferByteLength; - } - while (pos < 0) - { - pos += frameBuffer.VideoBufferByteLength; - } - if (((fdata >> j) & 1) != 0) - { - frameBuffer.VideoBuffer[pos] = fore; - } - } - xoffset += 5; - } - } - } -}