feat(fonts): Sistema de fuentes multi-tamaño con 8x16 Latin-1
Nuevas fuentes bitmap 8x16 (altura VGA estándar, mejor legibilidad): - font_8x16: ASCII básico (95 caracteres) - font_8x16_latin1: Latin-1 completo (224 caracteres) Sistema FontSize para selección por categoría: - getFontForSize(.small) → 8x8 Latin-1 (compacto) - getFontForSize(.medium) → 8x16 Latin-1 (estándar UI) - getFontForSizeAscii() variantes para menor memoria Soporte completo español/europeo: ñ, Ñ, á, é, í, ó, ú, ü, ¿, ¡, ç, ß Documentación actualizada en REFERENCE.md con tabla de fuentes y ejemplos de uso. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
520c5d7343
commit
784fecac01
4 changed files with 783 additions and 11 deletions
49
REFERENCE.md
49
REFERENCE.md
|
|
@ -601,19 +601,47 @@ renderer.getClip(); // Current clip rect
|
||||||
|
|
||||||
### Font System
|
### Font System
|
||||||
|
|
||||||
|
zcatgui provides multiple bitmap fonts for different use cases:
|
||||||
|
|
||||||
|
| Font | Size | Characters | Use Case |
|
||||||
|
|--------------------|-------|------------|----------------------------------|
|
||||||
|
| `default_font` | 8x8 | ASCII | Compact displays, terminals |
|
||||||
|
| `default_font_latin1` | 8x8 | Latin-1 | Compact + Spanish/European |
|
||||||
|
| `font_8x16` | 8x16 | ASCII | Standard UI, good readability |
|
||||||
|
| `font_8x16_latin1` | 8x16 | Latin-1 | Standard UI + Spanish/European |
|
||||||
|
|
||||||
|
**Latin-1 Character Support**: ñ, Ñ, á, é, í, ó, ú, ü, ¿, ¡, ç, ß, and all Western European accented characters.
|
||||||
|
|
||||||
**Bitmap Fonts** (`src/render/font.zig`):
|
**Bitmap Fonts** (`src/render/font.zig`):
|
||||||
```zig
|
```zig
|
||||||
const Font = zcatgui.render.Font;
|
const render = zcatgui.render;
|
||||||
|
|
||||||
// Built-in 8x8 font
|
// Direct font access
|
||||||
const font = zcatgui.render.default_font;
|
const font = render.default_font_latin1; // 8x8 with Spanish support
|
||||||
|
const font_tall = render.font_8x16_latin1; // 8x16 taller, more readable
|
||||||
|
|
||||||
|
// Font by size category (recommended)
|
||||||
|
const small_font = render.getFontForSize(.small); // 8x8 Latin-1
|
||||||
|
const medium_font = render.getFontForSize(.medium); // 8x16 Latin-1
|
||||||
|
|
||||||
|
// ASCII-only variants (smaller memory)
|
||||||
|
const ascii_font = render.getFontForSizeAscii(.medium);
|
||||||
|
|
||||||
|
// Font operations
|
||||||
font.charWidth() // 8
|
font.charWidth() // 8
|
||||||
font.charHeight() // 8
|
font.charHeight() // 8 or 16
|
||||||
font.textWidth("Hello") // 40
|
font.textWidth("Hello") // width in pixels
|
||||||
|
|
||||||
font.drawChar(fb, x, y, 'A', color, clip);
|
font.drawChar(fb, x, y, 'A', color, clip);
|
||||||
font.drawText(fb, x, y, "Hello", color, clip);
|
font.drawText(fb, x, y, "¿Hola, España!", color, clip);
|
||||||
|
```
|
||||||
|
|
||||||
|
**Setting Default Font in Renderer**:
|
||||||
|
```zig
|
||||||
|
var renderer = SoftwareRenderer.init(&framebuffer);
|
||||||
|
|
||||||
|
// Use 8x16 Latin-1 for better readability and Spanish support
|
||||||
|
renderer.setDefaultFont(@constCast(&render.font_8x16_latin1));
|
||||||
```
|
```
|
||||||
|
|
||||||
**TrueType Fonts** (`src/render/ttf.zig`):
|
**TrueType Fonts** (`src/render/ttf.zig`):
|
||||||
|
|
@ -623,10 +651,15 @@ const TtfFont = zcatgui.render.TtfFont;
|
||||||
var ttf = try TtfFont.loadFromFile(allocator, "font.ttf");
|
var ttf = try TtfFont.loadFromFile(allocator, "font.ttf");
|
||||||
defer ttf.deinit();
|
defer ttf.deinit();
|
||||||
|
|
||||||
const metrics = ttf.getMetrics();
|
ttf.setSize(16); // Set render size
|
||||||
ttf.renderGlyph(codepoint, size);
|
const metrics = ttf.getGlyphMetrics('A');
|
||||||
|
ttf.textWidth("Hello");
|
||||||
```
|
```
|
||||||
|
|
||||||
|
> **Note**: TTF rendering currently uses placeholder glyphs. Full TTF rasterization
|
||||||
|
> (bezier curve rendering) is planned for future releases. For production use,
|
||||||
|
> prefer the bitmap fonts which have complete glyph rendering.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Animation & Effects
|
## Animation & Effects
|
||||||
|
|
|
||||||
|
|
@ -155,6 +155,80 @@ pub const default_font_latin1 = Font{
|
||||||
.num_chars = 224, // 32-255
|
.num_chars = 224, // 32-255
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// =============================================================================
|
||||||
|
// 8x16 Fonts (Taller, standard VGA height - better readability)
|
||||||
|
// =============================================================================
|
||||||
|
|
||||||
|
/// 8x16 ASCII font (characters 32-126)
|
||||||
|
/// Taller font for better readability in UI applications.
|
||||||
|
pub const font_8x16 = Font{
|
||||||
|
.glyphs = &font_data.font_8x16_ascii,
|
||||||
|
.char_width = 8,
|
||||||
|
.char_height = 16,
|
||||||
|
.first_char = 32,
|
||||||
|
.num_chars = 95,
|
||||||
|
};
|
||||||
|
|
||||||
|
/// 8x16 Latin-1 font (characters 32-255)
|
||||||
|
/// Taller font with full Western European character support.
|
||||||
|
/// Recommended for UI applications that need both readability and Spanish support.
|
||||||
|
pub const font_8x16_latin1 = Font{
|
||||||
|
.glyphs = &font_data.font_8x16_latin1,
|
||||||
|
.char_width = 8,
|
||||||
|
.char_height = 16,
|
||||||
|
.first_char = 32,
|
||||||
|
.num_chars = 224, // 32-255
|
||||||
|
};
|
||||||
|
|
||||||
|
// =============================================================================
|
||||||
|
// Font Size Presets (convenience aliases)
|
||||||
|
// =============================================================================
|
||||||
|
|
||||||
|
/// Font size categories for easy selection
|
||||||
|
pub const FontSize = enum {
|
||||||
|
/// Small: 8x8 bitmap (compact, good for dense data)
|
||||||
|
small,
|
||||||
|
/// Medium: 8x16 bitmap (standard VGA, good readability)
|
||||||
|
medium,
|
||||||
|
/// Large: placeholder for future 12x24 or similar
|
||||||
|
large,
|
||||||
|
};
|
||||||
|
|
||||||
|
/// Get the best font for a given size category
|
||||||
|
/// Returns Latin-1 fonts (full Western European support)
|
||||||
|
pub fn getFontForSize(size: FontSize) Font {
|
||||||
|
return switch (size) {
|
||||||
|
.small => default_font_latin1,
|
||||||
|
.medium => font_8x16_latin1,
|
||||||
|
.large => font_8x16_latin1, // TODO: Add larger font
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Get ASCII-only font for a given size (smaller memory footprint)
|
||||||
|
pub fn getFontForSizeAscii(size: FontSize) Font {
|
||||||
|
return switch (size) {
|
||||||
|
.small => default_font,
|
||||||
|
.medium => font_8x16,
|
||||||
|
.large => font_8x16, // TODO: Add larger font
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
// =============================================================================
|
||||||
|
// Available Fonts Summary
|
||||||
|
// =============================================================================
|
||||||
|
//
|
||||||
|
// | Name | Size | Chars | Use Case |
|
||||||
|
// |--------------------|-------|---------|----------------------------------|
|
||||||
|
// | default_font | 8x8 | ASCII | Compact displays, terminals |
|
||||||
|
// | default_font_latin1| 8x8 | Latin-1 | Compact + Spanish/European |
|
||||||
|
// | font_8x16 | 8x16 | ASCII | Standard UI, good readability |
|
||||||
|
// | font_8x16_latin1 | 8x16 | Latin-1 | Standard UI + Spanish/European |
|
||||||
|
//
|
||||||
|
// For TTF fonts, see ttf.zig (requires TtfFont.loadFromFile)
|
||||||
|
// Note: TTF rendering currently uses placeholder glyphs.
|
||||||
|
// Full TTF rasterization requires bezier curve implementation.
|
||||||
|
//
|
||||||
|
|
||||||
// =============================================================================
|
// =============================================================================
|
||||||
// Tests
|
// Tests
|
||||||
// =============================================================================
|
// =============================================================================
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,23 @@
|
||||||
//! Font Data - Bitmap font glyph data
|
//! Font Data - Bitmap font glyph data
|
||||||
//!
|
//!
|
||||||
//! Contains glyph data for various bitmap fonts:
|
//! Contains glyph data for various bitmap fonts:
|
||||||
//! - 8x8 ASCII (32-126) - Basic ASCII
|
|
||||||
//! - 8x8 Latin-1 (32-255) - Full Western European (Spanish, French, German, etc.)
|
|
||||||
//! - 8x16 Latin-1 - Taller, more readable font
|
|
||||||
//!
|
//!
|
||||||
|
//! ## Available Fonts
|
||||||
|
//! | Name | Size | Characters | Bytes | Use Case |
|
||||||
|
//! |-------------------|-------|------------|--------|-----------------------------|
|
||||||
|
//! | font_8x8_ascii | 8x8 | 95 (ASCII) | 760 | Compact, English only |
|
||||||
|
//! | font_8x8_latin1 | 8x8 | 224 (Latin-1)| 1792 | Compact + Spanish/European |
|
||||||
|
//! | font_8x16_ascii | 8x16 | 95 (ASCII) | 1520 | Standard, English only |
|
||||||
|
//! | font_8x16_latin1 | 8x16 | 224 (Latin-1)| 3584 | Standard + Spanish/European |
|
||||||
|
//!
|
||||||
|
//! ## Character Support
|
||||||
|
//! - ASCII (32-126): Basic printable characters
|
||||||
|
//! - Latin-1 Extended (128-255): Spanish (ñ, á, é, í, ó, ú, ¿, ¡), French (ç, è, ê),
|
||||||
|
//! German (ä, ö, ü, ß), Portuguese, Italian, and more Western European characters
|
||||||
|
//!
|
||||||
|
//! ## Format
|
||||||
//! All fonts use 1-bit-per-pixel format (packed into bytes, MSB first).
|
//! All fonts use 1-bit-per-pixel format (packed into bytes, MSB first).
|
||||||
|
//! Each row is stored as bytes, with leftmost pixel as MSB.
|
||||||
|
|
||||||
// =============================================================================
|
// =============================================================================
|
||||||
// 8x8 ASCII Font (32-126) - 95 characters
|
// 8x8 ASCII Font (32-126) - 95 characters
|
||||||
|
|
@ -497,3 +509,649 @@ pub const font_8x8_latin1 = blk: {
|
||||||
|
|
||||||
break :blk data;
|
break :blk data;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// =============================================================================
|
||||||
|
// 8x16 Latin-1 Font (32-255) - Taller, more readable font
|
||||||
|
// =============================================================================
|
||||||
|
|
||||||
|
/// 8x16 ASCII font data (characters 32-126)
|
||||||
|
/// Each character is 16 bytes (16 rows, 1 byte per row, MSB = leftmost pixel)
|
||||||
|
/// This is the standard VGA font height, better for UI applications.
|
||||||
|
pub const font_8x16_ascii = [95 * 16]u8{
|
||||||
|
// Space (32)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// ! (33)
|
||||||
|
0x00, 0x00, 0x18, 0x3C, 0x3C, 0x3C, 0x18, 0x18,
|
||||||
|
0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// " (34)
|
||||||
|
0x00, 0x66, 0x66, 0x66, 0x24, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// # (35)
|
||||||
|
0x00, 0x00, 0x00, 0x6C, 0x6C, 0xFE, 0x6C, 0x6C,
|
||||||
|
0x6C, 0xFE, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// $ (36)
|
||||||
|
0x18, 0x18, 0x7C, 0xC6, 0xC2, 0xC0, 0x7C, 0x06,
|
||||||
|
0x06, 0x86, 0xC6, 0x7C, 0x18, 0x18, 0x00, 0x00,
|
||||||
|
// % (37)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xC2, 0xC6, 0x0C, 0x18,
|
||||||
|
0x30, 0x60, 0xC6, 0x86, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// & (38)
|
||||||
|
0x00, 0x00, 0x38, 0x6C, 0x6C, 0x38, 0x76, 0xDC,
|
||||||
|
0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// ' (39)
|
||||||
|
0x00, 0x30, 0x30, 0x30, 0x60, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// ( (40)
|
||||||
|
0x00, 0x00, 0x0C, 0x18, 0x30, 0x30, 0x30, 0x30,
|
||||||
|
0x30, 0x30, 0x18, 0x0C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// ) (41)
|
||||||
|
0x00, 0x00, 0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x0C,
|
||||||
|
0x0C, 0x0C, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// * (42)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x3C, 0xFF,
|
||||||
|
0x3C, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// + (43)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7E,
|
||||||
|
0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// , (44)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x18, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00,
|
||||||
|
// - (45)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// . (46)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// / (47)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x0C, 0x18,
|
||||||
|
0x30, 0x60, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 0 (48)
|
||||||
|
0x00, 0x00, 0x38, 0x6C, 0xC6, 0xC6, 0xD6, 0xD6,
|
||||||
|
0xC6, 0xC6, 0x6C, 0x38, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 1 (49)
|
||||||
|
0x00, 0x00, 0x18, 0x38, 0x78, 0x18, 0x18, 0x18,
|
||||||
|
0x18, 0x18, 0x18, 0x7E, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 2 (50)
|
||||||
|
0x00, 0x00, 0x7C, 0xC6, 0x06, 0x0C, 0x18, 0x30,
|
||||||
|
0x60, 0xC0, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 3 (51)
|
||||||
|
0x00, 0x00, 0x7C, 0xC6, 0x06, 0x06, 0x3C, 0x06,
|
||||||
|
0x06, 0x06, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 4 (52)
|
||||||
|
0x00, 0x00, 0x0C, 0x1C, 0x3C, 0x6C, 0xCC, 0xFE,
|
||||||
|
0x0C, 0x0C, 0x0C, 0x1E, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 5 (53)
|
||||||
|
0x00, 0x00, 0xFE, 0xC0, 0xC0, 0xC0, 0xFC, 0x06,
|
||||||
|
0x06, 0x06, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 6 (54)
|
||||||
|
0x00, 0x00, 0x38, 0x60, 0xC0, 0xC0, 0xFC, 0xC6,
|
||||||
|
0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 7 (55)
|
||||||
|
0x00, 0x00, 0xFE, 0xC6, 0x06, 0x06, 0x0C, 0x18,
|
||||||
|
0x30, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 8 (56)
|
||||||
|
0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0x7C, 0xC6,
|
||||||
|
0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 9 (57)
|
||||||
|
0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0x7E, 0x06,
|
||||||
|
0x06, 0x06, 0x0C, 0x78, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// : (58)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00,
|
||||||
|
0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// ; (59)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00,
|
||||||
|
0x00, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// < (60)
|
||||||
|
0x00, 0x00, 0x00, 0x06, 0x0C, 0x18, 0x30, 0x60,
|
||||||
|
0x30, 0x18, 0x0C, 0x06, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// = (61)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00,
|
||||||
|
0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// > (62)
|
||||||
|
0x00, 0x00, 0x00, 0x60, 0x30, 0x18, 0x0C, 0x06,
|
||||||
|
0x0C, 0x18, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// ? (63)
|
||||||
|
0x00, 0x00, 0x7C, 0xC6, 0xC6, 0x0C, 0x18, 0x18,
|
||||||
|
0x18, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// @ (64)
|
||||||
|
0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xDE, 0xDE,
|
||||||
|
0xDE, 0xDC, 0xC0, 0x7C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// A (65)
|
||||||
|
0x00, 0x00, 0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xFE,
|
||||||
|
0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// B (66)
|
||||||
|
0x00, 0x00, 0xFC, 0x66, 0x66, 0x66, 0x7C, 0x66,
|
||||||
|
0x66, 0x66, 0x66, 0xFC, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// C (67)
|
||||||
|
0x00, 0x00, 0x3C, 0x66, 0xC2, 0xC0, 0xC0, 0xC0,
|
||||||
|
0xC0, 0xC2, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// D (68)
|
||||||
|
0x00, 0x00, 0xF8, 0x6C, 0x66, 0x66, 0x66, 0x66,
|
||||||
|
0x66, 0x66, 0x6C, 0xF8, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// E (69)
|
||||||
|
0x00, 0x00, 0xFE, 0x66, 0x62, 0x68, 0x78, 0x68,
|
||||||
|
0x60, 0x62, 0x66, 0xFE, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// F (70)
|
||||||
|
0x00, 0x00, 0xFE, 0x66, 0x62, 0x68, 0x78, 0x68,
|
||||||
|
0x60, 0x60, 0x60, 0xF0, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// G (71)
|
||||||
|
0x00, 0x00, 0x3C, 0x66, 0xC2, 0xC0, 0xC0, 0xDE,
|
||||||
|
0xC6, 0xC6, 0x66, 0x3A, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// H (72)
|
||||||
|
0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xFE, 0xC6,
|
||||||
|
0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// I (73)
|
||||||
|
0x00, 0x00, 0x3C, 0x18, 0x18, 0x18, 0x18, 0x18,
|
||||||
|
0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// J (74)
|
||||||
|
0x00, 0x00, 0x1E, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C,
|
||||||
|
0xCC, 0xCC, 0xCC, 0x78, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// K (75)
|
||||||
|
0x00, 0x00, 0xE6, 0x66, 0x66, 0x6C, 0x78, 0x78,
|
||||||
|
0x6C, 0x66, 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// L (76)
|
||||||
|
0x00, 0x00, 0xF0, 0x60, 0x60, 0x60, 0x60, 0x60,
|
||||||
|
0x60, 0x62, 0x66, 0xFE, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// M (77)
|
||||||
|
0x00, 0x00, 0xC6, 0xEE, 0xFE, 0xFE, 0xD6, 0xC6,
|
||||||
|
0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// N (78)
|
||||||
|
0x00, 0x00, 0xC6, 0xE6, 0xF6, 0xFE, 0xDE, 0xCE,
|
||||||
|
0xC6, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// O (79)
|
||||||
|
0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6,
|
||||||
|
0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// P (80)
|
||||||
|
0x00, 0x00, 0xFC, 0x66, 0x66, 0x66, 0x7C, 0x60,
|
||||||
|
0x60, 0x60, 0x60, 0xF0, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// Q (81)
|
||||||
|
0x00, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6,
|
||||||
|
0xC6, 0xD6, 0xDE, 0x7C, 0x0C, 0x0E, 0x00, 0x00,
|
||||||
|
// R (82)
|
||||||
|
0x00, 0x00, 0xFC, 0x66, 0x66, 0x66, 0x7C, 0x6C,
|
||||||
|
0x66, 0x66, 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// S (83)
|
||||||
|
0x00, 0x00, 0x7C, 0xC6, 0xC6, 0x60, 0x38, 0x0C,
|
||||||
|
0x06, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// T (84)
|
||||||
|
0x00, 0x00, 0x7E, 0x7E, 0x5A, 0x18, 0x18, 0x18,
|
||||||
|
0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// U (85)
|
||||||
|
0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6,
|
||||||
|
0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// V (86)
|
||||||
|
0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6,
|
||||||
|
0xC6, 0x6C, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// W (87)
|
||||||
|
0x00, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xD6, 0xD6,
|
||||||
|
0xD6, 0xFE, 0xEE, 0x6C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// X (88)
|
||||||
|
0x00, 0x00, 0xC6, 0xC6, 0x6C, 0x7C, 0x38, 0x38,
|
||||||
|
0x7C, 0x6C, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// Y (89)
|
||||||
|
0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x18,
|
||||||
|
0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// Z (90)
|
||||||
|
0x00, 0x00, 0xFE, 0xC6, 0x86, 0x0C, 0x18, 0x30,
|
||||||
|
0x60, 0xC2, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// [ (91)
|
||||||
|
0x00, 0x00, 0x3C, 0x30, 0x30, 0x30, 0x30, 0x30,
|
||||||
|
0x30, 0x30, 0x30, 0x3C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// \ (92)
|
||||||
|
0x00, 0x00, 0x00, 0x80, 0xC0, 0x60, 0x30, 0x18,
|
||||||
|
0x0C, 0x06, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// ] (93)
|
||||||
|
0x00, 0x00, 0x3C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C,
|
||||||
|
0x0C, 0x0C, 0x0C, 0x3C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// ^ (94)
|
||||||
|
0x10, 0x38, 0x6C, 0xC6, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// _ (95)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00,
|
||||||
|
// ` (96)
|
||||||
|
0x30, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// a (97)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0C, 0x7C,
|
||||||
|
0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// b (98)
|
||||||
|
0x00, 0x00, 0xE0, 0x60, 0x60, 0x78, 0x6C, 0x66,
|
||||||
|
0x66, 0x66, 0x66, 0x7C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// c (99)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC0,
|
||||||
|
0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// d (100)
|
||||||
|
0x00, 0x00, 0x1C, 0x0C, 0x0C, 0x3C, 0x6C, 0xCC,
|
||||||
|
0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// e (101)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xFE,
|
||||||
|
0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// f (102)
|
||||||
|
0x00, 0x00, 0x38, 0x6C, 0x64, 0x60, 0xF0, 0x60,
|
||||||
|
0x60, 0x60, 0x60, 0xF0, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// g (103)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xCC, 0xCC,
|
||||||
|
0xCC, 0xCC, 0xCC, 0x7C, 0x0C, 0xCC, 0x78, 0x00,
|
||||||
|
// h (104)
|
||||||
|
0x00, 0x00, 0xE0, 0x60, 0x60, 0x6C, 0x76, 0x66,
|
||||||
|
0x66, 0x66, 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// i (105)
|
||||||
|
0x00, 0x00, 0x18, 0x18, 0x00, 0x38, 0x18, 0x18,
|
||||||
|
0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// j (106)
|
||||||
|
0x00, 0x00, 0x06, 0x06, 0x00, 0x0E, 0x06, 0x06,
|
||||||
|
0x06, 0x06, 0x06, 0x06, 0x66, 0x66, 0x3C, 0x00,
|
||||||
|
// k (107)
|
||||||
|
0x00, 0x00, 0xE0, 0x60, 0x60, 0x66, 0x6C, 0x78,
|
||||||
|
0x78, 0x6C, 0x66, 0xE6, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// l (108)
|
||||||
|
0x00, 0x00, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18,
|
||||||
|
0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// m (109)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xEC, 0xFE, 0xD6,
|
||||||
|
0xD6, 0xD6, 0xD6, 0xC6, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// n (110)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x66, 0x66,
|
||||||
|
0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// o (111)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC6,
|
||||||
|
0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// p (112)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x66, 0x66,
|
||||||
|
0x66, 0x66, 0x66, 0x7C, 0x60, 0x60, 0xF0, 0x00,
|
||||||
|
// q (113)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xCC, 0xCC,
|
||||||
|
0xCC, 0xCC, 0xCC, 0x7C, 0x0C, 0x0C, 0x1E, 0x00,
|
||||||
|
// r (114)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xDC, 0x76, 0x66,
|
||||||
|
0x60, 0x60, 0x60, 0xF0, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// s (115)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0x60,
|
||||||
|
0x38, 0x0C, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// t (116)
|
||||||
|
0x00, 0x00, 0x10, 0x30, 0x30, 0xFC, 0x30, 0x30,
|
||||||
|
0x30, 0x30, 0x36, 0x1C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// u (117)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0xCC, 0xCC,
|
||||||
|
0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// v (118)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x66, 0x66,
|
||||||
|
0x66, 0x66, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// w (119)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xD6,
|
||||||
|
0xD6, 0xD6, 0xFE, 0x6C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// x (120)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0x6C, 0x38,
|
||||||
|
0x38, 0x38, 0x6C, 0xC6, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// y (121)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0xC6, 0xC6,
|
||||||
|
0xC6, 0xC6, 0xC6, 0x7E, 0x06, 0x0C, 0xF8, 0x00,
|
||||||
|
// z (122)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xCC, 0x18,
|
||||||
|
0x30, 0x60, 0xC6, 0xFE, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// { (123)
|
||||||
|
0x00, 0x00, 0x0E, 0x18, 0x18, 0x18, 0x70, 0x18,
|
||||||
|
0x18, 0x18, 0x18, 0x0E, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// | (124)
|
||||||
|
0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18,
|
||||||
|
0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// } (125)
|
||||||
|
0x00, 0x00, 0x70, 0x18, 0x18, 0x18, 0x0E, 0x18,
|
||||||
|
0x18, 0x18, 0x18, 0x70, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// ~ (126)
|
||||||
|
0x00, 0x00, 0x76, 0xDC, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
};
|
||||||
|
|
||||||
|
/// 8x16 Latin-1 extended characters (128-255)
|
||||||
|
/// 16 bytes per character (16 rows)
|
||||||
|
pub const font_8x16_latin1_ext = [128 * 16]u8{
|
||||||
|
// 128-159: Control/special characters
|
||||||
|
// 128: Euro (€)
|
||||||
|
0x00, 0x00, 0x3C, 0x66, 0xC0, 0xF8, 0xC0, 0xF8,
|
||||||
|
0xC0, 0x66, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 129: unused
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 130-159: (simplified - mostly blank or basic)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x30, 0x00, 0x00, 0x00, // 130
|
||||||
|
0x00, 0x00, 0x0E, 0x18, 0x18, 0x3C, 0x18, 0x18, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 131
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0x6C, 0xD8, 0x00, 0x00, 0x00, 0x00, // 132
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD6, 0x00, 0x00, 0x00, 0x00, 0x00, // 133
|
||||||
|
0x00, 0x18, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, // 134
|
||||||
|
0x00, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x7E, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 135
|
||||||
|
0x00, 0x18, 0x3C, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 136
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 137
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 138
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x18, 0x30, 0x60, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 139
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 140
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 141
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 142
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 143
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 144
|
||||||
|
0x00, 0x30, 0x18, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 145
|
||||||
|
0x00, 0x0C, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 146
|
||||||
|
0x00, 0x6C, 0x36, 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 147
|
||||||
|
0x00, 0x36, 0x6C, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 148
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 149
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 150
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 151
|
||||||
|
0x00, 0x00, 0x76, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 152
|
||||||
|
0x00, 0xFE, 0x92, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 153
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 154
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x30, 0x18, 0x0C, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 155
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 156
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 157
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 158
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 159
|
||||||
|
|
||||||
|
// 160: Non-breaking space
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 161: Inverted exclamation (¡) - SPANISH
|
||||||
|
0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18,
|
||||||
|
0x3C, 0x3C, 0x3C, 0x18, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 162: Cent (¢)
|
||||||
|
0x00, 0x00, 0x00, 0x18, 0x18, 0x7C, 0xC6, 0xC0,
|
||||||
|
0xC0, 0xC6, 0x7C, 0x18, 0x18, 0x00, 0x00, 0x00,
|
||||||
|
// 163: Pound (£)
|
||||||
|
0x00, 0x00, 0x38, 0x6C, 0x64, 0x60, 0xF0, 0x60,
|
||||||
|
0x60, 0x60, 0xE6, 0xFC, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 164: Currency (¤)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xC6, 0x7C, 0xC6, 0xC6,
|
||||||
|
0xC6, 0x7C, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 165: Yen (¥)
|
||||||
|
0x00, 0x00, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x7E,
|
||||||
|
0x18, 0x7E, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 166: Broken bar (¦)
|
||||||
|
0x00, 0x00, 0x18, 0x18, 0x18, 0x18, 0x00, 0x00,
|
||||||
|
0x18, 0x18, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 167: Section (§)
|
||||||
|
0x00, 0x7C, 0xC6, 0x60, 0x38, 0x6C, 0xC6, 0xC6,
|
||||||
|
0x6C, 0x38, 0x0C, 0xC6, 0x7C, 0x00, 0x00, 0x00,
|
||||||
|
// 168: Diaeresis (¨)
|
||||||
|
0x00, 0x00, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 169: Copyright (©)
|
||||||
|
0x00, 0x00, 0x3C, 0x42, 0x99, 0xA1, 0xA1, 0xA1,
|
||||||
|
0x99, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 170: Feminine ordinal (ª)
|
||||||
|
0x00, 0x00, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00,
|
||||||
|
0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 171: Left guillemet («)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x6C, 0xD8,
|
||||||
|
0x6C, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 172: Not (¬)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x06,
|
||||||
|
0x06, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 173: Soft hyphen
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 174: Registered (®)
|
||||||
|
0x00, 0x00, 0x3C, 0x42, 0xB9, 0xA5, 0xB9, 0xA5,
|
||||||
|
0xA5, 0x42, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 175: Macron (¯)
|
||||||
|
0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 176: Degree (°)
|
||||||
|
0x00, 0x00, 0x38, 0x6C, 0x6C, 0x38, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 177: Plus-minus (±)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x7E, 0x18,
|
||||||
|
0x18, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 178: Superscript 2 (²)
|
||||||
|
0x00, 0x00, 0x38, 0x0C, 0x18, 0x30, 0x3C, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 179: Superscript 3 (³)
|
||||||
|
0x00, 0x00, 0x38, 0x0C, 0x18, 0x0C, 0x38, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 180: Acute (´)
|
||||||
|
0x00, 0x00, 0x0C, 0x18, 0x30, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 181: Micro (µ)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0xCC, 0xCC,
|
||||||
|
0xCC, 0xCC, 0xCC, 0xFE, 0xC0, 0xC0, 0x00, 0x00,
|
||||||
|
// 182: Pilcrow (¶)
|
||||||
|
0x00, 0x00, 0x7F, 0xDB, 0xDB, 0xDB, 0x7B, 0x1B,
|
||||||
|
0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 183: Middle dot (·)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 184: Cedilla (¸)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x18, 0x0C, 0x38, 0x00,
|
||||||
|
// 185: Superscript 1 (¹)
|
||||||
|
0x00, 0x00, 0x18, 0x38, 0x18, 0x18, 0x3C, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 186: Masculine ordinal (º)
|
||||||
|
0x00, 0x00, 0x38, 0x6C, 0x6C, 0x38, 0x00, 0x7C,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 187: Right guillemet (»)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, 0x6C, 0x36,
|
||||||
|
0x6C, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 188: One quarter (¼)
|
||||||
|
0x00, 0x00, 0xC0, 0xC0, 0xC2, 0xC6, 0x0C, 0x18,
|
||||||
|
0x30, 0x66, 0xCE, 0x9E, 0x06, 0x00, 0x00, 0x00,
|
||||||
|
// 189: One half (½)
|
||||||
|
0x00, 0x00, 0xC0, 0xC0, 0xC2, 0xC6, 0x0C, 0x18,
|
||||||
|
0x30, 0x6E, 0xD3, 0x06, 0x0C, 0x1F, 0x00, 0x00,
|
||||||
|
// 190: Three quarters (¾)
|
||||||
|
0x00, 0x00, 0xE0, 0x30, 0x62, 0x36, 0xEC, 0x18,
|
||||||
|
0x30, 0x66, 0xCE, 0x9E, 0x06, 0x00, 0x00, 0x00,
|
||||||
|
// 191: Inverted question (¿) - SPANISH
|
||||||
|
0x00, 0x00, 0x18, 0x18, 0x00, 0x18, 0x18, 0x30,
|
||||||
|
0x60, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
|
||||||
|
// 192: A grave (À)
|
||||||
|
0x60, 0x30, 0x00, 0x10, 0x38, 0x6C, 0xC6, 0xC6,
|
||||||
|
0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 193: A acute (Á) - SPANISH
|
||||||
|
0x0C, 0x18, 0x00, 0x10, 0x38, 0x6C, 0xC6, 0xC6,
|
||||||
|
0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 194: A circumflex (Â)
|
||||||
|
0x10, 0x38, 0x6C, 0x10, 0x38, 0x6C, 0xC6, 0xC6,
|
||||||
|
0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 195: A tilde (Ã)
|
||||||
|
0x76, 0xDC, 0x00, 0x10, 0x38, 0x6C, 0xC6, 0xC6,
|
||||||
|
0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 196: A diaeresis (Ä)
|
||||||
|
0x6C, 0x6C, 0x00, 0x10, 0x38, 0x6C, 0xC6, 0xC6,
|
||||||
|
0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 197: A ring (Å)
|
||||||
|
0x38, 0x6C, 0x38, 0x10, 0x38, 0x6C, 0xC6, 0xC6,
|
||||||
|
0xFE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 198: AE (Æ)
|
||||||
|
0x00, 0x00, 0x3E, 0x6C, 0xCC, 0xCC, 0xFE, 0xCC,
|
||||||
|
0xCC, 0xCC, 0xCC, 0xCE, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 199: C cedilla (Ç)
|
||||||
|
0x00, 0x00, 0x3C, 0x66, 0xC2, 0xC0, 0xC0, 0xC0,
|
||||||
|
0xC0, 0xC2, 0x66, 0x3C, 0x18, 0x0C, 0x38, 0x00,
|
||||||
|
// 200: E grave (È)
|
||||||
|
0x60, 0x30, 0x00, 0xFE, 0x66, 0x62, 0x68, 0x78,
|
||||||
|
0x68, 0x62, 0x66, 0xFE, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 201: E acute (É) - SPANISH
|
||||||
|
0x0C, 0x18, 0x00, 0xFE, 0x66, 0x62, 0x68, 0x78,
|
||||||
|
0x68, 0x62, 0x66, 0xFE, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 202: E circumflex (Ê)
|
||||||
|
0x10, 0x38, 0x6C, 0xFE, 0x66, 0x62, 0x68, 0x78,
|
||||||
|
0x68, 0x62, 0x66, 0xFE, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 203: E diaeresis (Ë)
|
||||||
|
0x6C, 0x6C, 0x00, 0xFE, 0x66, 0x62, 0x68, 0x78,
|
||||||
|
0x68, 0x62, 0x66, 0xFE, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 204: I grave (Ì)
|
||||||
|
0x60, 0x30, 0x00, 0x3C, 0x18, 0x18, 0x18, 0x18,
|
||||||
|
0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 205: I acute (Í) - SPANISH
|
||||||
|
0x0C, 0x18, 0x00, 0x3C, 0x18, 0x18, 0x18, 0x18,
|
||||||
|
0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 206: I circumflex (Î)
|
||||||
|
0x18, 0x3C, 0x66, 0x3C, 0x18, 0x18, 0x18, 0x18,
|
||||||
|
0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 207: I diaeresis (Ï)
|
||||||
|
0x66, 0x66, 0x00, 0x3C, 0x18, 0x18, 0x18, 0x18,
|
||||||
|
0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 208: Eth (Ð)
|
||||||
|
0x00, 0x00, 0xF8, 0x6C, 0x66, 0x66, 0xF6, 0x66,
|
||||||
|
0x66, 0x66, 0x6C, 0xF8, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 209: N tilde (Ñ) - SPANISH
|
||||||
|
0x76, 0xDC, 0x00, 0xC6, 0xE6, 0xF6, 0xFE, 0xDE,
|
||||||
|
0xCE, 0xC6, 0xC6, 0xC6, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 210: O grave (Ò)
|
||||||
|
0x60, 0x30, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6,
|
||||||
|
0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 211: O acute (Ó) - SPANISH
|
||||||
|
0x0C, 0x18, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6,
|
||||||
|
0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 212: O circumflex (Ô)
|
||||||
|
0x10, 0x38, 0x6C, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6,
|
||||||
|
0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 213: O tilde (Õ)
|
||||||
|
0x76, 0xDC, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6,
|
||||||
|
0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 214: O diaeresis (Ö)
|
||||||
|
0x6C, 0x6C, 0x00, 0x7C, 0xC6, 0xC6, 0xC6, 0xC6,
|
||||||
|
0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 215: Multiplication (×)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0x6C, 0x38,
|
||||||
|
0x6C, 0xC6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 216: O stroke (Ø)
|
||||||
|
0x00, 0x00, 0x7E, 0xC6, 0xCE, 0xCE, 0xD6, 0xD6,
|
||||||
|
0xE6, 0xE6, 0xC6, 0xFC, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 217: U grave (Ù)
|
||||||
|
0x60, 0x30, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6,
|
||||||
|
0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 218: U acute (Ú) - SPANISH
|
||||||
|
0x0C, 0x18, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6,
|
||||||
|
0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 219: U circumflex (Û)
|
||||||
|
0x10, 0x38, 0x6C, 0x00, 0xC6, 0xC6, 0xC6, 0xC6,
|
||||||
|
0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 220: U diaeresis (Ü) - SPANISH
|
||||||
|
0x6C, 0x6C, 0x00, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6,
|
||||||
|
0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 221: Y acute (Ý)
|
||||||
|
0x0C, 0x18, 0x00, 0x66, 0x66, 0x66, 0x3C, 0x18,
|
||||||
|
0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 222: Thorn (Þ)
|
||||||
|
0x00, 0x00, 0xF0, 0x60, 0x7C, 0x66, 0x66, 0x66,
|
||||||
|
0x66, 0x7C, 0x60, 0xF0, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 223: Sharp s (ß) - German
|
||||||
|
0x00, 0x00, 0x38, 0x6C, 0x6C, 0x6C, 0x78, 0x6C,
|
||||||
|
0x66, 0x66, 0x66, 0x6C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
|
||||||
|
// 224: a grave (à)
|
||||||
|
0x00, 0x00, 0x60, 0x30, 0x00, 0x78, 0x0C, 0x7C,
|
||||||
|
0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 225: a acute (á) - SPANISH
|
||||||
|
0x00, 0x00, 0x0C, 0x18, 0x00, 0x78, 0x0C, 0x7C,
|
||||||
|
0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 226: a circumflex (â)
|
||||||
|
0x00, 0x10, 0x38, 0x6C, 0x00, 0x78, 0x0C, 0x7C,
|
||||||
|
0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 227: a tilde (ã)
|
||||||
|
0x00, 0x00, 0x76, 0xDC, 0x00, 0x78, 0x0C, 0x7C,
|
||||||
|
0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 228: a diaeresis (ä)
|
||||||
|
0x00, 0x00, 0x6C, 0x6C, 0x00, 0x78, 0x0C, 0x7C,
|
||||||
|
0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 229: a ring (å)
|
||||||
|
0x00, 0x38, 0x6C, 0x38, 0x00, 0x78, 0x0C, 0x7C,
|
||||||
|
0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 230: ae (æ)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xCC, 0x76, 0x36,
|
||||||
|
0x7E, 0xD8, 0xD8, 0x6E, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 231: c cedilla (ç)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xC6, 0xC0,
|
||||||
|
0xC0, 0xC0, 0xC6, 0x7C, 0x18, 0x0C, 0x38, 0x00,
|
||||||
|
// 232: e grave (è)
|
||||||
|
0x00, 0x00, 0x60, 0x30, 0x00, 0x7C, 0xC6, 0xFE,
|
||||||
|
0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 233: e acute (é) - SPANISH
|
||||||
|
0x00, 0x00, 0x0C, 0x18, 0x00, 0x7C, 0xC6, 0xFE,
|
||||||
|
0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 234: e circumflex (ê)
|
||||||
|
0x00, 0x10, 0x38, 0x6C, 0x00, 0x7C, 0xC6, 0xFE,
|
||||||
|
0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 235: e diaeresis (ë)
|
||||||
|
0x00, 0x00, 0x6C, 0x6C, 0x00, 0x7C, 0xC6, 0xFE,
|
||||||
|
0xC0, 0xC0, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 236: i grave (ì)
|
||||||
|
0x00, 0x00, 0x60, 0x30, 0x00, 0x38, 0x18, 0x18,
|
||||||
|
0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 237: i acute (í) - SPANISH
|
||||||
|
0x00, 0x00, 0x0C, 0x18, 0x00, 0x38, 0x18, 0x18,
|
||||||
|
0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 238: i circumflex (î)
|
||||||
|
0x00, 0x18, 0x3C, 0x66, 0x00, 0x38, 0x18, 0x18,
|
||||||
|
0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 239: i diaeresis (ï)
|
||||||
|
0x00, 0x00, 0x66, 0x66, 0x00, 0x38, 0x18, 0x18,
|
||||||
|
0x18, 0x18, 0x18, 0x3C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 240: eth (ð)
|
||||||
|
0x00, 0x00, 0x36, 0x1C, 0x0C, 0x3C, 0x6C, 0xCC,
|
||||||
|
0xCC, 0xCC, 0xCC, 0x78, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 241: n tilde (ñ) - SPANISH
|
||||||
|
0x00, 0x00, 0x76, 0xDC, 0x00, 0xDC, 0x66, 0x66,
|
||||||
|
0x66, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 242: o grave (ò)
|
||||||
|
0x00, 0x00, 0x60, 0x30, 0x00, 0x7C, 0xC6, 0xC6,
|
||||||
|
0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 243: o acute (ó) - SPANISH
|
||||||
|
0x00, 0x00, 0x0C, 0x18, 0x00, 0x7C, 0xC6, 0xC6,
|
||||||
|
0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 244: o circumflex (ô)
|
||||||
|
0x00, 0x10, 0x38, 0x6C, 0x00, 0x7C, 0xC6, 0xC6,
|
||||||
|
0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 245: o tilde (õ)
|
||||||
|
0x00, 0x00, 0x76, 0xDC, 0x00, 0x7C, 0xC6, 0xC6,
|
||||||
|
0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 246: o diaeresis (ö)
|
||||||
|
0x00, 0x00, 0x6C, 0x6C, 0x00, 0x7C, 0xC6, 0xC6,
|
||||||
|
0xC6, 0xC6, 0xC6, 0x7C, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 247: Division (÷)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x7E, 0x00,
|
||||||
|
0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 248: o stroke (ø)
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0xCE, 0xD6,
|
||||||
|
0xD6, 0xD6, 0xE6, 0xFC, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 249: u grave (ù)
|
||||||
|
0x00, 0x00, 0x60, 0x30, 0x00, 0xCC, 0xCC, 0xCC,
|
||||||
|
0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 250: u acute (ú) - SPANISH
|
||||||
|
0x00, 0x00, 0x0C, 0x18, 0x00, 0xCC, 0xCC, 0xCC,
|
||||||
|
0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 251: u circumflex (û)
|
||||||
|
0x00, 0x10, 0x38, 0x6C, 0x00, 0xCC, 0xCC, 0xCC,
|
||||||
|
0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 252: u diaeresis (ü) - SPANISH
|
||||||
|
0x00, 0x00, 0x6C, 0x6C, 0x00, 0xCC, 0xCC, 0xCC,
|
||||||
|
0xCC, 0xCC, 0xCC, 0x76, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
// 253: y acute (ý)
|
||||||
|
0x00, 0x00, 0x0C, 0x18, 0x00, 0xC6, 0xC6, 0xC6,
|
||||||
|
0xC6, 0xC6, 0xC6, 0x7E, 0x06, 0x0C, 0xF8, 0x00,
|
||||||
|
// 254: thorn (þ)
|
||||||
|
0x00, 0x00, 0xE0, 0x60, 0x60, 0x7C, 0x66, 0x66,
|
||||||
|
0x66, 0x66, 0x7C, 0x60, 0x60, 0xF0, 0x00, 0x00,
|
||||||
|
// 255: y diaeresis (ÿ)
|
||||||
|
0x00, 0x00, 0x6C, 0x6C, 0x00, 0xC6, 0xC6, 0xC6,
|
||||||
|
0xC6, 0xC6, 0xC6, 0x7E, 0x06, 0x0C, 0xF8, 0x00,
|
||||||
|
};
|
||||||
|
|
||||||
|
/// Full 8x16 Latin-1 font covering characters 32-255
|
||||||
|
pub const font_8x16_latin1 = blk: {
|
||||||
|
var data: [224 * 16]u8 = undefined;
|
||||||
|
|
||||||
|
// Copy ASCII portion (32-126 = 95 chars)
|
||||||
|
@memcpy(data[0 .. 95 * 16], &font_8x16_ascii);
|
||||||
|
|
||||||
|
// Character 127 (DEL) - use a box character
|
||||||
|
const del_char = [16]u8{ 0xFF, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0xFF, 0x00, 0x00 };
|
||||||
|
@memcpy(data[95 * 16 .. 96 * 16], &del_char);
|
||||||
|
|
||||||
|
// Copy Latin-1 extended (128-255 = 128 chars)
|
||||||
|
@memcpy(data[96 * 16 .. 224 * 16], &font_8x16_latin1_ext);
|
||||||
|
|
||||||
|
break :blk data;
|
||||||
|
};
|
||||||
|
|
|
||||||
|
|
@ -79,8 +79,15 @@ pub const render = struct {
|
||||||
pub const SoftwareRenderer = @import("render/software.zig").SoftwareRenderer;
|
pub const SoftwareRenderer = @import("render/software.zig").SoftwareRenderer;
|
||||||
const font_module = @import("render/font.zig");
|
const font_module = @import("render/font.zig");
|
||||||
pub const Font = font_module.Font;
|
pub const Font = font_module.Font;
|
||||||
|
pub const FontSize = font_module.FontSize;
|
||||||
|
pub const getFontForSize = font_module.getFontForSize;
|
||||||
|
pub const getFontForSizeAscii = font_module.getFontForSizeAscii;
|
||||||
|
// 8x8 fonts (compact)
|
||||||
pub const default_font = font_module.default_font;
|
pub const default_font = font_module.default_font;
|
||||||
pub const default_font_latin1 = font_module.default_font_latin1;
|
pub const default_font_latin1 = font_module.default_font_latin1;
|
||||||
|
// 8x16 fonts (taller, VGA standard, better readability)
|
||||||
|
pub const font_8x16 = font_module.font_8x16;
|
||||||
|
pub const font_8x16_latin1 = font_module.font_8x16_latin1;
|
||||||
pub const font_data = font_module.font_data;
|
pub const font_data = font_module.font_data;
|
||||||
pub const ttf = @import("render/ttf.zig");
|
pub const ttf = @import("render/ttf.zig");
|
||||||
pub const TtfFont = ttf.TtfFont;
|
pub const TtfFont = ttf.TtfFont;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue