mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 00:37:25 +01:00
[ion] Add a charset to associate char code to special symbols
Change-Id: I7533318185a7a66080ac68ced9b051d5e22b156d
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
|
||||
#include <ion/backlight.h>
|
||||
#include <ion/battery.h>
|
||||
#include <ion/charset.h>
|
||||
#include <ion/display.h>
|
||||
#include <ion/events.h>
|
||||
#include <ion/keyboard.h>
|
||||
|
||||
50
ion/include/ion/charset.h
Normal file
50
ion/include/ion/charset.h
Normal file
@@ -0,0 +1,50 @@
|
||||
#ifndef ION_CHARSET_H
|
||||
#define ION_CHARSET_H
|
||||
|
||||
namespace Ion {
|
||||
|
||||
enum Charset : char {
|
||||
AccuteAccentCapitalA = (char)127,
|
||||
AccuteAccentCapitalE = (char)128,
|
||||
AccuteAccentCapitalI = (char)129,
|
||||
TildeAccentCapitalN = (char)130,
|
||||
AccuteAccentCapitalO = (char)131,
|
||||
AccuteAccentCapitalU = (char)132,
|
||||
GraveAccentSmallA = (char)133,
|
||||
AccuteAccentSmallA = (char)134,
|
||||
CircumflexAccentSmallA = (char)135,
|
||||
GraveAccentSmallE = (char)136,
|
||||
AccuteAccentSmallE = (char)137,
|
||||
CircumflexAccentSmall = (char)138,
|
||||
DiaeresisAccentSmallE = (char)139,
|
||||
AccuteAccentSmallI = (char)140,
|
||||
CircumflexAccentSmallI = (char)141,
|
||||
DiaeresisAccentSmallI = (char)142,
|
||||
TildeAccentSmallN = (char)143,
|
||||
AccuteAccentSmallO = (char)144,
|
||||
GraveAccentSmallU = (char)145,
|
||||
AccuteAccentSmallU = (char)146,
|
||||
CircumflexAccentSmallU = (char)147,
|
||||
DiaeresisAccentSmallU = (char)148,
|
||||
Integral = (char)149,
|
||||
XBar = (char)150,
|
||||
YBar = (char)152,
|
||||
CapitalGamma = (char)154,
|
||||
CapitalSigma = (char)155,
|
||||
SmallTheta = (char)156,
|
||||
SmallIota = (char)157,
|
||||
SmallLambda = (char)158,
|
||||
SmallMu = (char)159,
|
||||
SmallPi = (char)160,
|
||||
SmallSigma = (char)161,
|
||||
Exponent = (char)162,
|
||||
Prime = (char)163,
|
||||
Sto = (char)164,
|
||||
Root = (char)165,
|
||||
LessEqual = (char)166,
|
||||
GreaterEqual = (char)167,
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -6,7 +6,7 @@ KDColor smallCharacterBuffer[BITMAP_SmallFont_CHARACTER_WIDTH*BITMAP_SmallFont_C
|
||||
KDColor largeCharacterBuffer[BITMAP_LargeFont_CHARACTER_WIDTH*BITMAP_LargeFont_CHARACTER_HEIGHT];
|
||||
|
||||
void KDContext::drawChar(char character, KDText::FontSize size, KDPoint p, KDColor textColor, KDColor backgroundColor) {
|
||||
int firstCharacter = size == KDText::FontSize::Large ? BITMAP_LargeFont_FIRST_ASCII_CHARACTER : BITMAP_SmallFont_FIRST_ASCII_CHARACTER;
|
||||
char firstCharacter = size == KDText::FontSize::Large ? BITMAP_LargeFont_FIRST_ASCII_CHARACTER : BITMAP_SmallFont_FIRST_ASCII_CHARACTER;
|
||||
int characterHeight = size == KDText::FontSize::Large ? BITMAP_LargeFont_CHARACTER_HEIGHT : BITMAP_SmallFont_CHARACTER_HEIGHT;
|
||||
int characterWidth = size == KDText::FontSize::Large ? BITMAP_LargeFont_CHARACTER_WIDTH : BITMAP_SmallFont_CHARACTER_WIDTH;
|
||||
KDColor * characterBuffer = size == KDText::FontSize::Large ? largeCharacterBuffer : smallCharacterBuffer;
|
||||
@@ -14,9 +14,9 @@ void KDContext::drawChar(char character, KDText::FontSize size, KDPoint p, KDCol
|
||||
for (int i=0; i<characterWidth;i++) {
|
||||
uint8_t intensity = 0;
|
||||
if (size == KDText::FontSize::Large) {
|
||||
intensity = bitmapLargeFont[character-firstCharacter][j][i];
|
||||
intensity = bitmapLargeFont[(uint8_t)character-(uint8_t)firstCharacter][j][i];
|
||||
} else {
|
||||
intensity = bitmapSmallFont[character-firstCharacter][j][i];
|
||||
intensity = bitmapSmallFont[(uint8_t)character-(uint8_t)firstCharacter][j][i];
|
||||
}
|
||||
KDColor color = KDColor::blend(textColor, backgroundColor, intensity);
|
||||
characterBuffer[j*characterWidth+i] = color;
|
||||
|
||||
Reference in New Issue
Block a user