JD2022-TU1/main/extern/Camcam/Tools/Font.cpp

402 lines
No EOL
30 KiB
C++
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "TRACK.h"
//#pragma optimize( "", off )
/*
Fizedsys =
!"#$%&'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
`abcdefghijklmnopqrstuvwxyz{|}~
<09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
嵗╯丰戍貝物洎悖停眾斯須號獄播噶
擱藏霰匸<E99CB0>帊昅恘倳眑婭笫崷窙嗲睧
颬睼麧緗鴇膹擨闀貘覷鏷禴矙𡜍𦶠<F0A19C8D>
*/
unsigned char FONT_FixedSys[256][16] = {
{0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x18,0x3c,0x3c, 0x3c,0x18,0x18,0x00,0x18, 0x18,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x66,0x66,0x66, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x6c,0x6c,0xfe, 0x6c,0x6c,0x6c,0xfe,0x6c, 0x6c,0x00,0x00,0x00,0x00,0x00},
{0x18,0x18,0x3c,0x66,0x06, 0x0c,0x18,0x30,0x60,0x66, 0x3c,0x18,0x18,0x00,0x00,0x00}, {0x00,0x0e,0x1b,0x5b,0x6e, 0x30,0x18,0x0c,0x76,0xda, 0xd8,0x70,0x00,0x00,0x00,0x00}, {0x00,0x00,0x1c,0x36,0x36, 0x1c,0x06,0xf6,0x66,0x66, 0xdc,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x18,0x18,0x18, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x30,0x18,0x18, 0x0c,0x0c,0x0c,0x0c,0x0c, 0x18,0x18,0x30,0x00,0x00,0x00}, {0x00,0x00,0x0c,0x18,0x18, 0x30,0x30,0x30,0x30,0x30, 0x18,0x18,0x0c,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x6c, 0x38,0xfe,0x38,0x6c,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x18, 0x18,0x7e,0x18,0x18,0x00, 0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x38, 0x38,0x30,0x18,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x7e,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x38, 0x38,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x60,0x60,0x30, 0x30,0x18,0x18,0x0c,0x0c, 0x06,0x06,0x00,0x00,0x00,0x00},
{0x00,0x00,0x78,0xcc,0xec, 0xec,0xcc,0xdc,0xdc,0xcc, 0x78,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x30,0x38,0x3e, 0x30,0x30,0x30,0x30,0x30, 0x30,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x3c,0x66,0x66, 0x60,0x30,0x18,0x0c,0x06, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x3c,0x66,0x66, 0x60,0x38,0x60,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x0c,0x0c,0x6c, 0x6c,0x6c,0x66,0xfe,0x60, 0x60,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x06,0x06, 0x06,0x3e,0x60,0x60,0x30, 0x1e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x38,0x18,0x0c, 0x3e,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x60,0x30, 0x30,0x18,0x18,0x0c,0x0c, 0x0c,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x3c,0x66,0x66, 0x6e,0x3c,0x76,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x3c,0x66,0x66, 0x66,0x66,0x7c,0x30,0x18, 0x1c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x38, 0x38,0x00,0x00,0x00,0x38, 0x38,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x38, 0x38,0x00,0x00,0x00,0x38, 0x38,0x30,0x18,0x00,0x00,0x00},
{0x00,0x00,0x60,0x30,0x18, 0x0c,0x06,0x0c,0x18,0x30, 0x60,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x7e,0x00,0x7e,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x06,0x0c,0x18, 0x30,0x60,0x30,0x18,0x0c, 0x06,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x3c,0x66,0x66, 0x30,0x18,0x18,0x00,0x18, 0x18,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x7e,0xc3,0xc3, 0xf3,0xdb,0xdb,0xf3,0x03, 0xfe,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x18,0x3c,0x66, 0x66,0x66,0x7e,0x66,0x66, 0x66,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x3e,0x66,0x66, 0x66,0x3e,0x66,0x66,0x66, 0x3e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x3c,0x66,0x66, 0x06,0x06,0x06,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x1e,0x36,0x66, 0x66,0x66,0x66,0x66,0x36, 0x1e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x06,0x06, 0x06,0x3e,0x06,0x06,0x06, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x06,0x06, 0x06,0x3e,0x06,0x06,0x06, 0x06,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x3c,0x66,0x66, 0x06,0x06,0x76,0x66,0x66, 0x7c,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x66,0x66,0x66, 0x66,0x7e,0x66,0x66,0x66, 0x66,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x3c,0x18,0x18, 0x18,0x18,0x18,0x18,0x18, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x60,0x60,0x60, 0x60,0x60,0x60,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x66,0x66,0x36, 0x36,0x1e,0x36,0x36,0x66, 0x66,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x06,0x06,0x06, 0x06,0x06,0x06,0x06,0x06, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0xc6,0xc6,0xee, 0xd6,0xd6,0xd6,0xc6,0xc6, 0xc6,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0xc6,0xc6,0xce, 0xde,0xf6,0xe6,0xc6,0xc6, 0xc6,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x3c,0x66,0x66, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x3e,0x66,0x66, 0x66,0x3e,0x06,0x06,0x06, 0x06,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x3c,0x66,0x66, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x30,0x60,0x00,0x00,0x00}, {0x00,0x00,0x3e,0x66,0x66, 0x66,0x3e,0x36,0x66,0x66, 0x66,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x3c,0x66,0x06, 0x0c,0x18,0x30,0x60,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x7e,0x18,0x18, 0x18,0x18,0x18,0x18,0x18, 0x18,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x66,0x66,0x66, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x66,0x66,0x66, 0x66,0x66,0x66,0x66,0x3c, 0x18,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0xc6,0xc6,0xc6, 0xd6,0xd6,0xd6,0x6c,0x6c, 0x6c,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x66,0x66,0x2c, 0x18,0x18,0x34,0x66,0x66, 0x66,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x66,0x66,0x66, 0x66,0x3c,0x18,0x18,0x18, 0x18,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x60,0x60, 0x30,0x18,0x0c,0x06,0x06, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x3c,0x0c,0x0c, 0x0c,0x0c,0x0c,0x0c,0x0c, 0x0c,0x0c,0x0c,0x3c,0x00,0x00},
{0x00,0x00,0x06,0x06,0x0c, 0x0c,0x18,0x18,0x30,0x30, 0x60,0x60,0x00,0x00,0x00,0x00}, {0x00,0x00,0x3c,0x30,0x30, 0x30,0x30,0x30,0x30,0x30, 0x30,0x30,0x30,0x3c,0x00,0x00}, {0x18,0x3c,0x66,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0xff,0x00,0x00},
{0x1c,0x18,0x30,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x3c, 0x60,0x60,0x7c,0x66,0x66, 0x7c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x06,0x06,0x3e, 0x66,0x66,0x66,0x66,0x66, 0x3e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x3c, 0x66,0x06,0x06,0x06,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x60,0x60,0x7c, 0x66,0x66,0x66,0x66,0x66, 0x7c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x3c, 0x66,0x66,0x7e,0x06,0x06, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x78,0x0c,0x0c, 0x0c,0x7e,0x0c,0x0c,0x0c, 0x0c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x7c, 0x66,0x66,0x66,0x66,0x66, 0x7c,0x60,0x60,0x3e,0x00,0x00},
{0x00,0x00,0x06,0x06,0x3e, 0x66,0x66,0x66,0x66,0x66, 0x66,0x00,0x00,0x00,0x00,0x00}, {0x00,0x18,0x18,0x00,0x1e, 0x18,0x18,0x18,0x18,0x18, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x30,0x30,0x00,0x3c, 0x30,0x30,0x30,0x30,0x30, 0x30,0x30,0x30,0x1e,0x00,0x00}, {0x00,0x00,0x06,0x06,0x66, 0x66,0x36,0x1e,0x36,0x66, 0x66,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x1e,0x18,0x18, 0x18,0x18,0x18,0x18,0x18, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x7e, 0xd6,0xd6,0xd6,0xd6,0xd6, 0xc6,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x3e, 0x66,0x66,0x66,0x66,0x66, 0x66,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x3c, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x3e, 0x66,0x66,0x66,0x66,0x66, 0x3e,0x06,0x06,0x06,0x00,0x00}, {0x00,0x00,0x00,0x00,0x7c, 0x66,0x66,0x66,0x66,0x66, 0x7c,0x60,0x60,0x60,0x00,0x00}, {0x00,0x00,0x00,0x00,0x66, 0x76,0x0e,0x06,0x06,0x06, 0x06,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x7c, 0x06,0x06,0x3c,0x60,0x60, 0x3e,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x0c,0x0c,0x7e, 0x0c,0x0c,0x0c,0x0c,0x0c, 0x78,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x66, 0x66,0x66,0x66,0x66,0x66, 0x7c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x66, 0x66,0x66,0x66,0x66,0x3c, 0x18,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0xc6, 0xd6,0xd6,0xd6,0xd6,0x6c, 0x6c,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x66, 0x66,0x3c,0x18,0x3c,0x66, 0x66,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x66, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x30,0x18,0x0f,0x00,0x00}, {0x00,0x00,0x00,0x00,0x7e, 0x60,0x30,0x18,0x0c,0x06, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x30,0x18,0x18, 0x18,0x0c,0x06,0x0c,0x18, 0x18,0x18,0x30,0x00,0x00,0x00},
{0x00,0x00,0x18,0x18,0x18, 0x18,0x18,0x18,0x18,0x18, 0x18,0x18,0x18,0x18,0x00,0x00}, {0x00,0x00,0x0c,0x18,0x18, 0x18,0x30,0x60,0x30,0x18, 0x18,0x18,0x0c,0x00,0x00,0x00}, {0x00,0x00,0x8e,0xdb,0x71, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0xff,0x00},
{0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x30,0x18,0x38, 0x38,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x38,0x38,0x30, 0x18,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x7e,0x7e,0x7e, 0x7e,0x7e,0x7e,0x7e,0x7e, 0x7e,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x0c,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x18,0x18,0x00,0x18,0x18, 0x3c,0x3c,0x3c,0x18,0x30,0x00}, {0x00,0x00,0x18,0x18,0x3c, 0x66,0x06,0x06,0x66,0x3c, 0x18,0x18,0x00,0x00,0x3c,0x00}, {0x00,0x00,0x3c,0x66,0x06, 0x06,0x3f,0x06,0x06,0x03, 0x7f,0x00,0x00,0x00,0xdc,0x00},
{0x00,0x00,0x00,0x66,0x3c, 0x66,0x66,0x3c,0x66,0x00, 0x00,0x00,0x00,0x00,0x66,0x00}, {0x00,0x00,0x66,0x66,0x66, 0x3c,0x7e,0x18,0x7e,0x18, 0x18,0x00,0x00,0x00,0x3c,0x00}, {0x00,0x00,0x18,0x18,0x18, 0x18,0x18,0x00,0x00,0x18, 0x18,0x18,0x18,0x18,0x00,0x00}, {0x00,0x00,0x3c,0x66,0x06, 0x1c,0x3c,0x66,0x66,0x3c, 0x38,0x60,0x66,0x3c,0x00,0x00},
{0x00,0x66,0x66,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x0c,0x00}, {0x00,0x00,0x7e,0xc3,0x99, 0xa5,0x85,0xa5,0x99,0xc3, 0x7e,0x00,0x00,0x00,0x30,0x00}, {0x00,0x00,0x3c,0x60,0x7c, 0x66,0x7c,0x00,0x7e,0x00, 0x00,0x00,0x00,0x00,0x3c,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0xcc,0x66,0x33,0x66, 0xcc,0x00,0x00,0x00,0x66,0x00},
{0x00,0x00,0x00,0x00,0x00, 0x00,0x7e,0x60,0x60,0x00, 0x00,0x00,0x00,0x00,0x0c,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x7e,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x30,0x00}, {0x00,0x00,0x7e,0xc3,0x9d, 0xa5,0xa5,0x9d,0xa5,0xc3, 0x7e,0x00,0x00,0x00,0x3c,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x66,0x00},
{0x00,0x3c,0x66,0x66,0x3c, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x18, 0x18,0x7e,0x18,0x18,0x00, 0x7e,0x00,0x00,0x00,0xdc,0x00}, {0x00,0x00,0x1c,0x30,0x18, 0x0c,0x3c,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x0c,0x00}, {0x00,0x00,0x1c,0x30,0x18, 0x30,0x1c,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x30,0x00},
{0x38,0x18,0x0c,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x3c,0x00}, {0x00,0x00,0x00,0x00,0x66, 0x66,0x66,0x66,0x66,0x66, 0xde,0x06,0x06,0x03,0xdc,0x00}, {0x00,0x00,0xf8,0x7c,0x7e, 0x7e,0x7e,0x7c,0x78,0x60, 0x60,0x60,0x60,0x60,0x66,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x38,0x38,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00, 0x00,0x18,0x30,0x1c,0x00,0x00}, {0x00,0x00,0x18,0x1c,0x18, 0x18,0x18,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x0c,0x00}, {0x00,0x00,0x3c,0x66,0x66, 0x66,0x3c,0x00,0x7e,0x00, 0x00,0x00,0x00,0x00,0x30,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x00,0x33,0x66,0xcc,0x66, 0x33,0x00,0x00,0x00,0x3c,0x00},
{0x00,0x06,0x07,0xc6,0x66, 0x36,0x18,0xec,0xf6,0xdb, 0xf8,0xc0,0x00,0x00,0x66,0x00}, {0x00,0x06,0x07,0xc6,0x66, 0x36,0x18,0x7c,0xc6,0x63, 0x30,0xf0,0x00,0x00,0x30,0x00}, {0x00,0x07,0x0c,0xc6,0x6c, 0x37,0x18,0xec,0xf6,0xdb, 0xf8,0xc0,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00, 0x18,0x18,0x00,0x18,0x18, 0x0c,0x66,0x66,0x3c,0x00,0x00},
{0x18,0x00,0x18,0x3c,0x66, 0x66,0x66,0x7e,0x66,0x66, 0x66,0x00,0x00,0x00,0x00,0x00}, {0x18,0x00,0x18,0x3c,0x66, 0x66,0x66,0x7e,0x66,0x66, 0x66,0x00,0x00,0x00,0x00,0x00}, {0x66,0x00,0x18,0x3c,0x66, 0x66,0x66,0x7e,0x66,0x66, 0x66,0x00,0x00,0x00,0x00,0x00}, {0x76,0x00,0x18,0x3c,0x66, 0x66,0x66,0x7e,0x66,0x66, 0x66,0x00,0x00,0x00,0x00,0x00},
{0x66,0x00,0x18,0x3c,0x66, 0x66,0x66,0x7e,0x66,0x66, 0x66,0x00,0x00,0x00,0x00,0x00}, {0x66,0x3c,0x18,0x3c,0x66, 0x66,0x66,0x7e,0x66,0x66, 0x66,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0xf0,0x38,0x3c, 0x36,0xf6,0x3e,0x36,0x36, 0xf6,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x3c,0x66,0x66, 0x06,0x06,0x06,0x66,0x66, 0x3c,0x18,0x30,0x1c,0x00,0x00},
{0x18,0x00,0x7e,0x06,0x06, 0x06,0x3e,0x06,0x06,0x06, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x18,0x00,0x7e,0x06,0x06, 0x06,0x3e,0x06,0x06,0x06, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x66,0x00,0x7e,0x06,0x06, 0x06,0x3e,0x06,0x06,0x06, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x66,0x00,0x7e,0x06,0x06, 0x06,0x3e,0x06,0x06,0x06, 0x7e,0x00,0x00,0x00,0x00,0x00},
{0x18,0x00,0x3c,0x18,0x18, 0x18,0x18,0x18,0x18,0x18, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x18,0x00,0x3c,0x18,0x18, 0x18,0x18,0x18,0x18,0x18, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x66,0x00,0x3c,0x18,0x18, 0x18,0x18,0x18,0x18,0x18, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x66,0x00,0x3c,0x18,0x18, 0x18,0x18,0x18,0x18,0x18, 0x3c,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x1e,0x36,0x66, 0x66,0x6f,0x66,0x66,0x36, 0x1e,0x00,0x00,0x00,0x00,0x00}, {0x76,0x00,0xc6,0xc6,0xce, 0xde,0xf6,0xe6,0xc6,0xc6, 0xc6,0x00,0x00,0x00,0x00,0x00}, {0x18,0x00,0x3c,0x66,0x66, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x18,0x00,0x3c,0x66,0x66, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00},
{0x66,0x00,0x3c,0x66,0x66, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x76,0x00,0x3c,0x66,0x66, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x66,0x00,0x3c,0x66,0x66, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x42,0x66, 0x3c,0x18,0x3c,0x66,0x42, 0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x7c,0x66,0x76, 0x76,0x7e,0x6e,0x6e,0x66, 0x3e,0x00,0x00,0x00,0x00,0x00}, {0x18,0x00,0x66,0x66,0x66, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x18,0x00,0x66,0x66,0x66, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x66,0x00,0x66,0x66,0x66, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00},
{0x66,0x00,0x66,0x66,0x66, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x18,0x00,0x66,0x66,0x66, 0x66,0x3c,0x18,0x18,0x18, 0x18,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x06,0x06,0x3e, 0x66,0x66,0x66,0x3e,0x06, 0x06,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x1c,0x36,0x36, 0x36,0x66,0x66,0x66,0x66, 0x36,0x00,0x00,0x00,0x00,0x00},
{0x0e,0x0c,0x18,0x00,0x3c, 0x60,0x60,0x7c,0x66,0x66, 0x7c,0x00,0x00,0x00,0x00,0x00}, {0x70,0x30,0x18,0x00,0x3c, 0x60,0x60,0x7c,0x66,0x66, 0x7c,0x00,0x00,0x00,0x00,0x00}, {0x18,0x3c,0x66,0x00,0x3c, 0x60,0x60,0x7c,0x66,0x66, 0x7c,0x00,0x00,0x00,0x00,0x00}, {0x8e,0xdb,0x71,0x00,0x3c, 0x60,0x60,0x7c,0x66,0x66, 0x7c,0x00,0x00,0x00,0x00,0x00},
{0x00,0x66,0x66,0x00,0x3c, 0x60,0x60,0x7c,0x66,0x66, 0x7c,0x00,0x00,0x00,0x00,0x00}, {0x3c,0x66,0x3c,0x00,0x3c, 0x60,0x60,0x7c,0x66,0x66, 0x7c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x76, 0xd8,0xd8,0xfe,0x1b,0x1b, 0xee,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x3c, 0x66,0x06,0x06,0x06,0x66, 0x3c,0x18,0x30,0x1c,0x00,0x00},
{0x0e,0x0c,0x18,0x00,0x3c, 0x66,0x66,0x7e,0x06,0x06, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x70,0x30,0x18,0x00,0x3c, 0x66,0x66,0x7e,0x06,0x06, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x18,0x3c,0x66,0x00,0x3c, 0x66,0x66,0x7e,0x06,0x06, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x66,0x66,0x00,0x3c, 0x66,0x66,0x7e,0x06,0x06, 0x3c,0x00,0x00,0x00,0x00,0x00},
{0x0e,0x0c,0x18,0x00,0x1e, 0x18,0x18,0x18,0x18,0x18, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x70,0x30,0x18,0x00,0x1e, 0x18,0x18,0x18,0x18,0x18, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x18,0x3c,0x66,0x00,0x1e, 0x18,0x18,0x18,0x18,0x18, 0x7e,0x00,0x00,0x00,0x00,0x00}, {0x00,0x66,0x66,0x00,0x1e, 0x18,0x18,0x18,0x18,0x18, 0x7e,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x6c,0x18,0x36, 0x78,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x8e,0xdb,0x71,0x00,0x3e, 0x66,0x66,0x66,0x66,0x66, 0x66,0x00,0x00,0x00,0x00,0x00}, {0x0e,0x0c,0x18,0x00,0x3c, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x70,0x30,0x18,0x00,0x3c, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00},
{0x18,0x3c,0x66,0x00,0x3c, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x8e,0xdb,0x71,0x00,0x3c, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x66,0x66,0x00,0x3c, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x18,0x18, 0x00,0x7e,0x00,0x18,0x18, 0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x7c, 0x66,0x76,0x7e,0x6e,0x66, 0x3e,0x00,0x00,0x00,0x00,0x00}, {0x0e,0x0c,0x18,0x00,0x66, 0x66,0x66,0x66,0x66,0x66, 0x7c,0x00,0x00,0x00,0x00,0x00}, {0x70,0x30,0x18,0x00,0x66, 0x66,0x66,0x66,0x66,0x66, 0x7c,0x00,0x00,0x00,0x00,0x00}, {0x18,0x3c,0x66,0x00,0x66, 0x66,0x66,0x66,0x66,0x66, 0x7c,0x00,0x00,0x00,0x00,0x00},
{0x00,0x66,0x66,0x00,0x66, 0x66,0x66,0x66,0x66,0x66, 0x7c,0x00,0x00,0x00,0x00,0x00}, {0x70,0x30,0x18,0x00,0x66, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x30,0x18,0x0f,0x00,0x00}, {0x00,0x00,0x06,0x06,0x06, 0x3e,0x66,0x66,0x66,0x66, 0x3e,0x06,0x06,0x06,0x00,0x00}, {0x00,0x66,0x66,0x00,0x66, 0x66,0x66,0x66,0x66,0x66, 0x3c,0x30,0x18,0x0f,0x00,0x00}
};
void FONT_FixedSysCorrect(unsigned char *FONT)
{
u32 Counter,Counter2;
Counter = 255;
while (Counter > 32)
{
Counter2 = 15;
while (Counter2--) FONT_FixedSys[Counter][Counter2 + 1] = FONT_FixedSys[Counter][Counter2];
FONT_FixedSys[Counter][0] = FONT_FixedSys[Counter - 32][14];
FONT_FixedSys[Counter][15]= 0;
Counter--;
}
}
inline u8 *GSP_GetCharPtr(unsigned char C)
{
return (unsigned char *)FONT_FixedSys + (((u32)C) << 4);
}
void DRawTEXT_Soft2(u8 *pTEXT,u32 *pBase,s32 X, s32 Y, s32 Pitch , u32 Height , u32 Color , u32 X2 , u32 Y2 , u32 BackColor = 0 , DrwTEXT_UI *DTI = NULL)
{
u32 *pDEST,*pBaseEnd;
s32 XEnd,YEnd;
s32 ImgWidth = 16;
pDEST = pBase;
XEnd = X;YEnd = Y;
if (DTI && DTI->FONT_Image)
ImgWidth = DTI->FONT_Metrix->tmHeight;
if (!DTI)
{
if (Y < -ImgWidth) return;
if (Y > Height + ImgWidth) return;
}
pBaseEnd = pBase + Pitch*Height;
if (X2) X2=1;
if (Y2) Y2=1;
if (FONT_FixedSys[0][0] != 0) FONT_FixedSysCorrect((unsigned char *)FONT_FixedSys);
if (pBase > pBaseEnd)
{
pBase = pBaseEnd;
pBaseEnd = pDEST;
}
pDEST += (Y-1 + ImgWidth) * (Pitch << Y2) + X;
while (*pTEXT )
{
u8 Value,ValueOr,ValueXOr,*pValue;
u32 CounterX,CounterY;
u32 *pDESTSave;
ValueXOr = ValueOr = 0;
pDESTSave = pDEST;
if (DTI)
{
if (((DTI->CurrentCursorPos == DTI->CursorPos) ) /*|| ((DTI->CurrentCursorPos == DTI->CursorPos-1) && !(*(pTEXT+1)))*/)
{
DTI->CursorPosX = XEnd;
DTI->CursorPosY = YEnd;
if ( (!(DTI->Age & 256)))
{
if (DTI->InsertMode)
ValueOr = 0xff;
else
if (DTI->CurrentCursorPos == DTI->CursorPos-1)
ValueOr = 3<<6;
else
ValueOr = 3;
}
}
if (((DTI->CurrentCursorPos >= DTI->SelStart) && (DTI->CurrentCursorPos < DTI->SelEnd)) ||
((DTI->CurrentCursorPos >= DTI->SelEnd) && (DTI->CurrentCursorPos < DTI->SelStart)))
ValueXOr = 0xff;
}
pValue = GSP_GetCharPtr(*(pTEXT));
if (DTI && DTI->ModePassword)
{
if (pTEXT[1] == 0)
pValue = GSP_GetCharPtr(' ');
else
pValue = GSP_GetCharPtr('*');
}
unsigned char CurrentChar;
CurrentChar = *pTEXT;
/* Draw Standar char 8x16 */
if (!DTI || (DTI->FONT_Image == NULL))
{
CounterY = ImgWidth;
while (CounterY--)
{
Value = *(pValue++) | ValueOr;
Value ^= ValueXOr;
CounterX = 8;
while (CounterX--)
{
u32 Draw = (pDEST > pBase) && (pDEST < pBaseEnd) && (XEnd <= Pitch - 8 ) && (XEnd >= 0);
if (DTI && DTI->DontDraw) Draw = 0;
if (Draw)
{
if (Value & 1)
{
*pDEST = Color;
*(pDEST+X2) = Color;
if (Y2)
{
*(pDEST + Pitch) = Color;
*(pDEST + Pitch + X2) = Color;
}
} else if (DTI)
{
*pDEST = BackColor;
*(pDEST+X2) = BackColor;
if (Y2)
{
*(pDEST + Pitch) = BackColor;
*(pDEST + Pitch + X2) = BackColor;
}//*/
}
}
pDEST += 1 << X2;
Value >>= 1;
}
pDEST = pDEST - (8<<X2) - (Pitch << Y2);
}
} else
{
// We use a specific font
if (*pTEXT > 31)
{
u32 CF,CB;
CF = Color;
CB = BackColor;
if (ValueXOr)
{
CF = BackColor;
CB = Color;
}
if (ValueOr == 0xff) CB = CF;
u32 Draw = 1;
if (DTI && DTI->DontDraw) Draw = 0;
if (DTI && DTI->ModePassword)
{
CurrentChar = '*';
if (pTEXT[1] == 0)
CurrentChar = ' ';
else
CurrentChar = '*';
}
s32 *pFontBASE = DTI->FONT_Image->GetBase();
if (Draw)
for (int CX = 0 ; CX < DTI->FONT_CharBounds[CurrentChar].cx ; CX ++)
{
if ((XEnd + CX > 0) && (XEnd + CX < Pitch))
{
for (int CY = 0 ; CY < DTI->FONT_CharBounds[CurrentChar].cy ; CY ++)
{
if (((pDEST - CY*Pitch > pBase) && (pDEST < pBaseEnd)) &&
(pDEST + CX - CY * Pitch > pBase) && (pDEST + CX - CY * Pitch < pBaseEnd))
{
if (DTI->FONT_AlphaMode)
{
u32 Alpha;
Alpha = ((u32)pFontBASE[DTI->FONT_CharPos[CurrentChar].cx+CX + (DTI->FONT_Image->SY - DTI->FONT_CharPos[CurrentChar].cy-CY-1) * DTI->FONT_Image->PITCH])>>24;
if (Alpha)
{
u32 BlenddedCF,BlenddedCB;
BlenddedCF = ((((CF & 0xff00ff) * Alpha)>>8) & 0xff00ff) + (((((CF & 0xff00ff00)>>8) * Alpha)) & 0xff00ff00);
Alpha ^= 255;
BlenddedCB = ((((CB & 0xff00ff) * Alpha)>>8) & 0xff00ff) + (((((CB & 0xff00ff00)>>8) * Alpha)) & 0xff00ff00);
pDEST[CX - CY * Pitch] = BlenddedCF + BlenddedCB ;
} else
pDEST[CX - CY * Pitch] = CB;
} else
if (pFontBASE[DTI->FONT_CharPos[CurrentChar].cx+CX + (DTI->FONT_Image->SY - DTI->FONT_CharPos[CurrentChar].cy-CY - 1) * DTI->FONT_Image->PITCH])
{
pDEST[CX - CY * Pitch] = CF;
} else
pDEST[CX - CY * Pitch] = CB;
if ((ValueOr == 3<<6) && (CX>=(DTI->FONT_CharBounds[CurrentChar].cx-2))) pDEST[CX - CY * Pitch] = CF;
if ((ValueOr == 3) && (CX<=2)) pDEST[CX - CY * Pitch] = CF;
}
}
}
}
}
}
if (DTI)
{
if ((DTI->MouseY < Y + ImgWidth))
{
if (DTI->MouseX >= XEnd)
DTI->MouseToCursor = DTI->CurrentCursorPos;
}
DTI->CurrentCursorPos++;
}
if (!DTI || (DTI->FONT_Image == NULL))
{
XEnd += 8 << X2;
pDEST = pDESTSave + (8<<X2);
} else
{
XEnd += (DTI->FONT_CharBounds[CurrentChar].cx) << X2;
pDEST = pDESTSave + ((DTI->FONT_CharBounds[CurrentChar].cx)<<X2);
}
pTEXT++;
if ((*(pTEXT-1) == '\n'))
break;
}
if (DTI)
{
//DTI->CurrentCursorPos++;
DTI->XEnd = XEnd;
}
}
void DRawTEXT_Soft(u8 *pTEXT,u32 *pBase,u32 X, u32 Y, s32 Pitch , u32 Height , u32 Color , u32 X2 , u32 Y2)
{
u8 *PtextBase;
PtextBase = pTEXT;
while (*pTEXT)
{
if (*pTEXT == '\n')
{
DRawTEXT_Soft2(PtextBase,pBase,X, Y, Pitch , Height , Color , X2 , Y2);
Y -= 16;
PtextBase = pTEXT+1;
}
pTEXT++;
}
DRawTEXT_Soft2(PtextBase,pBase,X, Y, Pitch , Height , Color , X2 , Y2);
}
u32 GetNumberOfLines(u8 *pTEXT)
{
u32 Ret;
Ret = 0;
while (*pTEXT++)
{
if (*pTEXT == '\n') Ret++;
}
return Ret + 1;
}
u32 GetLenght(u8 *pTEXT)
{
u32 Ret;
Ret = 0;
while (*pTEXT && (*pTEXT != '\n'))
{
Ret++;
pTEXT++;
}
return Ret;
}
void DRawTEXT_Soft_B_Centered(u8 *pTEXT,u32 *pBase,s32 Pitch , u32 Height , u32 Color)
{
u32 ulNumberOfLine;
s32 Y,X,L;
ulNumberOfLine = GetNumberOfLines(pTEXT);
Y = (Height>>1) + (ulNumberOfLine * 16)/2 - 16;
while (ulNumberOfLine--)
{
L = GetLenght(pTEXT);
X = (Pitch >> 1) - 4 * L ;
if (L & 1) X -= 4;
DRawTEXT_Soft2(pTEXT,pBase,X, Y, Pitch , Height , Color , 0, 0);
Y-=16;
pTEXT+=L + 1;
}
}
void DRawTEXT_UserInterface(unsigned char *pTEXT,u32 *pBase,s32 Pitch , u32 Height , DrwTEXT_UI *D_UI)
{
u8 *PtextBase,*PtextBaseCursor,*ptextBase00;
s32 X,Y;
X = D_UI->X;
Y = D_UI->Y;
D_UI->YEnd = Y;
ptextBase00 = PtextBase = pTEXT;
PtextBaseCursor = pTEXT + D_UI->CursorPos;
DRawTEXT_Soft2(PtextBase,pBase,X, Y, Pitch , Height , D_UI->ColorFront , 0 , 0 , D_UI->ColorBack,D_UI);
}
void DRawTEXT_Soft_B(u8 *pTEXT,u32 *pBase,u32 X, u32 Y, s32 Pitch , u32 Height , u32 Color)
{
DRawTEXT_Soft(pTEXT,pBase,X + 1, Y + 1, Pitch , Height , 0 , 0 , 0);
DRawTEXT_Soft(pTEXT,pBase,X + 1, Y - 1, Pitch , Height , 0 , 0 , 0);
DRawTEXT_Soft(pTEXT,pBase,X - 1, Y + 1, Pitch , Height , 0 , 0 , 0);
DRawTEXT_Soft(pTEXT,pBase,X - 1, Y - 1, Pitch , Height , 0 , 0 , 0);
DRawTEXT_Soft(pTEXT,pBase,X , Y , Pitch , Height , Color , 0 , 0);
}
void DRawTEXT_Soft_B2x(u8 *pTEXT,u32 *pBase,u32 X, u32 Y, s32 Pitch , u32 Height , u32 Color)
{
Y>>=1;
DRawTEXT_Soft(pTEXT,pBase,X + 1, Y + 1, Pitch , Height , 0 , 1 , 1);
DRawTEXT_Soft(pTEXT,pBase,X + 1, Y - 1, Pitch , Height , 0 , 1 , 1);
DRawTEXT_Soft(pTEXT,pBase,X - 1, Y + 1, Pitch , Height , 0 , 1 , 1);
DRawTEXT_Soft(pTEXT,pBase,X - 1, Y - 1, Pitch , Height , 0 , 1 , 1);
DRawTEXT_Soft(pTEXT,pBase,X , Y , Pitch , Height , Color , 1 , 1);
}