📄
字号:
/****************************************************
gba_draw_main.c
****************************************************/
#include "gba_draw.h"
#define GBA_DRAW_SCREEN_WIDTH 240
#define GBA_DRAW_SCREEN_HEIGHT 160
#define GBA_DRAW_MODE3_VRAM_ADR ((unsigned short*)0x06000000)
/*
怓曄姺
*/
unsigned short GBA_DRAW_get_color_win2gba(
unsigned long color )
{
return((((color&0xFF0000)>>16)>>3)|
((((color&0x00FF00)>>8)>>3)<<5)|
(((color&0x0000FF)>>3)<<10)) ;
}
/*
揰偺昤夋
*/
void GBA_DRAW_point(unsigned short x, unsigned short y,
unsigned short color)
{
unsigned short* p = GBA_DRAW_MODE3_VRAM_ADR ;
if( x <= 240 || y <= 160 ){
p[x+GBA_DRAW_SCREEN_WIDTH*y] = color ;
}
}
/*
僼僅儞僩昞帵
*/
void GBA_DRAW_character( unsigned short x, unsigned short y,
unsigned short color, char ascii, unsigned char cover,
unsigned short bgcolor )
{
unsigned short i, j ;
const unsigned short* p = moji_all[ascii-' '] ;
/* 攚宨傪揾傝偮傇偡側傜嵟弶偵慡晹揾偭偰偟傑偆 */
if( cover ){
for( i = 0 ; i < GBA_DRAW_FONT_HEIGHT ; i++ ){
for( j = 0 ; j < GBA_DRAW_FONT_WIDTH ; j++ ){
GBA_DRAW_point( x + j, y + i, bgcolor ) ;
}
}
}
/* 暥帤傪昤夋 */
for( i = 0 ; i < GBA_DRAW_FONT_HEIGHT ; i++ ){
for( j = 0 ; j < GBA_DRAW_FONT_WIDTH ; j++ ){
if( p[i*GBA_DRAW_FONT_WIDTH+j] == 0xFFFF ){
GBA_DRAW_point( x + j, y + i, color ) ;
}
}
}
}
/*
暥帤楍昞帵
*/
void GBA_DRAW_draw_string( unsigned short x, unsigned short y,
unsigned short color, char* string, unsigned char cover,
unsigned short bgcolor )
{
char* ptr ;
unsigned short i ;
unsigned short max_char_num ;
if( string == 0 ){
return ;
}
ptr = string ;
/* 嵟戝暥帤悢 */
max_char_num = ( GBA_DRAW_SCREEN_WIDTH - x )
/ GBA_DRAW_FONT_WIDTH ;
for( i = 0 ; i < max_char_num || *ptr != 0 ;i++ ){
if( *ptr < ' ' || *ptr > '~' ){
break ;
}
GBA_DRAW_character( x+i*GBA_DRAW_FONT_WIDTH, y,
color, *ptr, cover, bgcolor ) ;
ptr++;
}
}
void GBA_print(char *string)
{
static y = 0;
GBA_DRAW_draw_string(0,y,0x7FFF,string,0,0);
if(y >= 156){
y = 0;
}else{
y+=12;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -