📄 our_font.c
字号:
/**************************************************************************
Copyright (C) jianbo miao Corporation. All Rights Released.
this is a 3d engin named our_3d_engin.
our_3d_engin feature:
1:there is no float.
2:it do the 3d things all by softwear.
3:base on 1 and 2 , it can execution on arm which have no 3d hardwear accelerate.
if you have any suggestion or question,pls contact with me
mail:miaojb@126.com
msn:miaojianbo@hotmail.com
qq:30209027
2008/01/01
***************************************************************************/
#ifdef OUR_MAIN_C
#ifndef OUR_FONT_C
#define OUR_FONT_C
#include "our_math.h"
#include "our_3d.h"
#include "our_draw16.h"
#include "our_draw32.h"
//FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
//FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
const unsigned char font6x8[][6] =
{
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },// sp
{ 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00 },// !
{ 0x00, 0x00, 0x07, 0x00, 0x07, 0x00 },// "
{ 0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14 },// #
{ 0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12 },// $
{ 0x00, 0x62, 0x64, 0x08, 0x13, 0x23 },// %
{ 0x00, 0x36, 0x49, 0x55, 0x22, 0x50 },// &
{ 0x00, 0x00, 0x05, 0x03, 0x00, 0x00 },// '
{ 0x00, 0x00, 0x1c, 0x22, 0x41, 0x00 },// (
{ 0x00, 0x00, 0x41, 0x22, 0x1c, 0x00 },// )
{ 0x00, 0x14, 0x08, 0x3E, 0x08, 0x14 },// *
{ 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08 },// +
{ 0x00, 0x00, 0x00, 0xA0, 0x60, 0x00 },// ,
{ 0x00, 0x08, 0x08, 0x08, 0x08, 0x08 },// -
{ 0x00, 0x00, 0x60, 0x60, 0x00, 0x00 },// .
{ 0x00, 0x20, 0x10, 0x08, 0x04, 0x02 },// /
{ 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E },// 0
{ 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00 },// 1
{ 0x00, 0x42, 0x61, 0x51, 0x49, 0x46 },// 2
{ 0x00, 0x21, 0x41, 0x45, 0x4B, 0x31 },// 3
{ 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10 },// 4
{ 0x00, 0x27, 0x45, 0x45, 0x45, 0x39 },// 5
{ 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30 },// 6
{ 0x00, 0x01, 0x71, 0x09, 0x05, 0x03 },// 7
{ 0x00, 0x36, 0x49, 0x49, 0x49, 0x36 },// 8
{ 0x00, 0x06, 0x49, 0x49, 0x29, 0x1E },// 9
{ 0x00, 0x00, 0x36, 0x36, 0x00, 0x00 },// :
{ 0x00, 0x00, 0x56, 0x36, 0x00, 0x00 },// ;
{ 0x00, 0x08, 0x14, 0x22, 0x41, 0x00 },// <
{ 0x00, 0x14, 0x14, 0x14, 0x14, 0x14 },// =
{ 0x00, 0x00, 0x41, 0x22, 0x14, 0x08 },// >
{ 0x00, 0x02, 0x01, 0x51, 0x09, 0x06 },// ?
{ 0x00, 0x32, 0x49, 0x59, 0x51, 0x3E },// @
{ 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C },// A
{ 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36 },// B
{ 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22 },// C
{ 0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C },// D
{ 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41 },// E
{ 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01 },// F
{ 0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A },// G
{ 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F },// H
{ 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00 },// I
{ 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01 },// J
{ 0x00, 0x7F, 0x08, 0x14, 0x22, 0x41 },// K
{ 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40 },// L
{ 0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F },// M
{ 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F },// N
{ 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E },// O
{ 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06 },// P
{ 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E },// Q
{ 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46 },// R
{ 0x00, 0x46, 0x49, 0x49, 0x49, 0x31 },// S
{ 0x00, 0x01, 0x01, 0x7F, 0x01, 0x01 },// T
{ 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F },// U
{ 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F },// V
{ 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F },// W
{ 0x00, 0x63, 0x14, 0x08, 0x14, 0x63 },// X
{ 0x00, 0x07, 0x08, 0x70, 0x08, 0x07 },// Y
{ 0x00, 0x61, 0x51, 0x49, 0x45, 0x43 },// Z
{ 0x00, 0x00, 0x7F, 0x41, 0x41, 0x00 },// [
{ 0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55 },// 55
{ 0x00, 0x00, 0x41, 0x41, 0x7F, 0x00 },// ]
{ 0x00, 0x04, 0x02, 0x01, 0x02, 0x04 },// ^
{ 0x00, 0x40, 0x40, 0x40, 0x40, 0x40 },// _
{ 0x00, 0x00, 0x01, 0x02, 0x04, 0x00 },// '
{ 0x00, 0x20, 0x54, 0x54, 0x54, 0x78 },// a
{ 0x00, 0x7F, 0x48, 0x44, 0x44, 0x38 },// b
{ 0x00, 0x38, 0x44, 0x44, 0x44, 0x20 },// c
{ 0x00, 0x38, 0x44, 0x44, 0x48, 0x7F },// d
{ 0x00, 0x38, 0x54, 0x54, 0x54, 0x18 },// e
{ 0x00, 0x08, 0x7E, 0x09, 0x01, 0x02 },// f
{ 0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C },// g
{ 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78 },// h
{ 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00 },// i
{ 0x00, 0x40, 0x80, 0x84, 0x7D, 0x00 },// j
{ 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00 },// k
{ 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00 },// l
{ 0x00, 0x7C, 0x04, 0x18, 0x04, 0x78 },// m
{ 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78 },// n
{ 0x00, 0x38, 0x44, 0x44, 0x44, 0x38 },// o
{ 0x00, 0xFC, 0x24, 0x24, 0x24, 0x18 },// p
{ 0x00, 0x18, 0x24, 0x24, 0x18, 0xFC },// q
{ 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08 },// r
{ 0x00, 0x48, 0x54, 0x54, 0x54, 0x20 },// s
{ 0x00, 0x04, 0x3F, 0x44, 0x40, 0x20 },// t
{ 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C },// u
{ 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C },// v
{ 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C },// w
{ 0x00, 0x44, 0x28, 0x10, 0x28, 0x44 },// x
{ 0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C },// y
{ 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44 },// z
{ 0x14, 0x14, 0x14, 0x14, 0x14, 0x14 }// horiz lines
};
void OUR_Draw_char16(CLR clor,char c,USHORT *dis_2, int lpitch)
{
char line,row;
c-=32;
for(line=0; line<6; line++)
{
for(row=0; row<8; row++)
{
if(font6x8[c][line] & (0x01<<row))
*dis_2 =clor;
dis_2+=lpitch;
}
dis_2-=lpitch<<3;
dis_2+=1;
}
}
void OUR_Draw_char16_BG(CLR clor,char c,USHORT *dis_2, int lpitch)
{
char line,row;
c-=32;
for(line=0; line<6; line++)
{
for(row=0; row<8; row++)
{
if(font6x8[c][line] & (0x01<<row))
*dis_2 =clor;
else
{
*dis_2 =0;
}
dis_2+=lpitch;
}
dis_2-=lpitch<<3;
dis_2+=1;
}
}
void OUR_Draw_char2_16(CLR clor,char c,USHORT *dis_2, int lpitch)
{
char line,row;
c-=32;
for(line=0; line<6; line++)
{
for(row=0; row<8; row++)
{
if(font6x8[c][line] & (0x01<<row))
*dis_2 =clor;
dis_2+=1;
if(font6x8[c][line] & (0x01<<row))
*dis_2 =clor;
dis_2+=lpitch-1;
if(font6x8[c][line] & (0x01<<row))
*dis_2 =clor;
dis_2+=1;
if(font6x8[c][line] & (0x01<<row))
*dis_2 =clor;
dis_2+=lpitch-1;
}
dis_2-=lpitch<<4;
dis_2+=2;
}
}
void OUR_Draw_Text16(int x,int y,CLR clor,char *s,UCHAR *dis, int lpitch)
{
// char line,row;
USHORT *dis_2;
lpitch>>=1;
dis_2 = (USHORT *)dis + x + y*lpitch;
while(*s)
{
OUR_Draw_char16(clor,*s,dis_2,lpitch);
dis_2+=6;
s++;
}
}
void OUR_Draw_Text16_BG(int x,int y,CLR clor,char *s,UCHAR *dis, int lpitch)
{
// char line,row;
USHORT *dis_2;
lpitch>>=1;
dis_2 = (USHORT *)dis + x + y*lpitch;
while(*s)
{
OUR_Draw_char16_BG(clor,*s,dis_2,lpitch);
dis_2+=6;
s++;
}
}
void OUR_Draw_BigText16(int x,int y,CLR clor,char *s,UCHAR *dis, int lpitch)
{
// char line,row;
USHORT *dis_2;
lpitch>>=1;
dis_2 = (USHORT *)dis + x + y*lpitch;
while(*s)
{
OUR_Draw_char2_16(clor,*s,dis_2,lpitch);
dis_2+=12;
s++;
}
}
//MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
void OUR_Draw_char32(CLR clor,char c,UINT *dis_2, int lpitch)
{
char line,row;
c-=32;
for(line=0; line<6; line++)
{
for(row=0; row<8; row++)
{
if(font6x8[c][line] & (0x01<<row))
*dis_2 =clor;
dis_2+=lpitch;
}
dis_2-=lpitch<<3;
dis_2+=1;
}
}
void OUR_Draw_char2_32(CLR clor,char c,UINT *dis_2, int lpitch)
{
char line,row;
c-=32;
for(line=0; line<6; line++)
{
for(row=0; row<8; row++)
{
if(font6x8[c][line] & (0x01<<row))
*dis_2 =clor;
dis_2+=1;
if(font6x8[c][line] & (0x01<<row))
*dis_2 =clor;
dis_2+=lpitch-1;
if(font6x8[c][line] & (0x01<<row))
*dis_2 =clor;
dis_2+=1;
if(font6x8[c][line] & (0x01<<row))
*dis_2 =clor;
dis_2+=lpitch-1;
}
dis_2-=lpitch<<4;
dis_2+=2;
}
}
void OUR_Draw_Text32(int x,int y,CLR clor,char *s,UCHAR *dis, int lpitch)
{
char line,row;
UINT *dis_2;
lpitch>>=2;
dis_2 = (UINT *)dis + x + y*lpitch;
while(*s)
{
OUR_Draw_char32(clor,*s,dis_2,lpitch);
dis_2+=6;
s++;
}
}
void OUR_Draw_BigText32(int x,int y,CLR clor,char *s,UCHAR *dis, int lpitch)
{
char line,row;
UINT *dis_2;
lpitch>>=2;
dis_2 = (UINT *)dis + x + y*lpitch;
while(*s)
{
OUR_Draw_char2_32(clor,*s,dis_2,lpitch);
dis_2+=12;
s++;
}
}
//MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
void OUR_sprintf(char *d,char *s,int a[])
{
int c,i,j;
i=0;
while(*s)
{
if(*s =='%')
{
c=*s;
s++;
if(*s =='x')
{
*d='0';
d++;
*d='x';
d++;
for(j=28;j>=0;j-=4)
{
c=(a[i] & (0x0f<<(j)))>>j;
if(c<10)
c+=0x30;
else
c+=0x40-9;
*d=c;
d++;
}
i++;
}
else
{
*d=c;
d++;
*d=*s;
d++;
}
}
else
{
*d=*s;
d++;
}
s++;
}
*d=*s;
}
//FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
//FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -