⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 our_font.c

📁 MTK上3D特效的一些开源代码
💻 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
***************************************************************************/


#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_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(sint32 x,sint32 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_BigText16(sint32 x,sint32 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(sint32 x,sint32 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(sint32 x,sint32 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,sint32 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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -