・SHAREDフォントの中韓対応。(SDK UIG_branch_plus rev.10283以降が必要, )

・genFontTable.plxにフォントリージョンコードを埋め込めるよう変更。
・仮のSHAREDフォント中韓を追加。
・CheckSharedFontの中韓対応。

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@2774 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yosiokat 2009-03-30 08:16:29 +00:00
parent 98942da9b9
commit 26b75eb3f8
12 changed files with 78 additions and 21 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -22,19 +22,54 @@ SUBDIRS =
include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs
# WW,CN,KR©çIð
FONT_REGION = WW
FONT_DIR = $(FONT_REGION)
ifeq ($(FONT_REGION),WW)
FONT_TIMESTAMP = 08073100
FONT_DIR = WW
FONTS = TBF1_l.NFTR \
TBF1_m.NFTR \
TBF1_s.NFTR
FONT_RSC = $(addprefix $(FONT_DIR)/, $(FONTS))
FONT_REGION_CODE = 0
FONTS = $(FONT_DIR)/TBF1_l.NFTR \
$(FONT_DIR)/TBF1_m.NFTR \
$(FONT_DIR)/TBF1_s.NFTR
endif # REGION=WW
ifeq ($(FONT_REGION),CN)
FONT_TIMESTAMP = 09033000
FONT_REGION_CODE = 4
FONTS = NULL \
NULL \
NULL \
$(FONT_DIR)/TBF1_cn_l.NFTR \
$(FONT_DIR)/TBF1_cn_m.NFTR \
$(FONT_DIR)/TBF1_cn_s.NFTR \
NULL \
NULL \
NULL
endif # REGION=CN
ifeq ($(FONT_REGION),KR)
FONT_TIMESTAMP = 09033000
FONT_REGION_CODE = 5
FONTS = NULL \
NULL \
NULL \
NULL \
NULL \
NULL \
$(FONT_DIR)/TBF1_kr_l.NFTR \
$(FONT_DIR)/TBF1_kr_m.NFTR \
$(FONT_DIR)/TBF1_kr_s.NFTR
endif # REGION=KR
FONT_RSC = $(FONTS)
FONT_ORG_DIR = $(TWL_IPL_RED_ROOT)/build/systemMenu_RED/sharedFont/WW
FONT_ORG_RSC = $(addprefix $(FONT_ORG_DIR)/, $(FONTS))
ifneq ($(TWL_IPL_RED_PRIVATE_ROOT),)
FONT_TABLE = TWLFontTable.dat
FONT_TABLE_WITH_TIMESTAMP = TWLFontTable_$(FONT_TIMESTAMP).dat
FONT_TABLE_WITH_TIMESTAMP = TWLFontTable_$(FONT_REGION)_$(FONT_TIMESTAMP).dat
endif
GEN_FONT_TABLE = $(SYSMENU_TOOLSDIR)/bin/genFontTable.plx
@ -50,9 +85,12 @@ include $(TWL_IPL_RED_ROOT)/build/buildtools/modulerules
do-build : $(FONT_TABLE) $(FONT_TABLE_WITH_TIMESTAMP)
# compress sharedFonts and them in local directory
$(FONT_TABLE): $(FONT_RSC) $(GEN_FONT_TABLE)
$(GEN_FONT_TABLE) $(FONT_TIMESTAMP) $(FONT_RSC)
$(FONT_TABLE): $(FONT_RSC) $(GEN_FONT_TABLE) ./Makefile
$(GEN_FONT_TABLE) $(FONT_TIMESTAMP) $(FONT_REGION_CODE) $(FONT_RSC)
$(FONT_TABLE_WITH_TIMESTAMP): $(FONT_TABLE)
cp $< $@
NULL:
#===== End of Makefile =====

View File

@ -26,7 +26,7 @@ TARGET_BIN = main.srl
SRCS = main.c loadSharedFont.c
LLIBRARIES += libsharedfont$(TWL_LIBSUFFIX).a
LLIBRARIES += libsharedfont$(TWL_LIBSUFFIX).a libna$(TWL_LIBSUFFIX).a
ROM_SPEC = ROM-TS_nand.rsf

View File

@ -27,13 +27,25 @@
// function's prototype-------------------------------------------------------
// global variable-------------------------------------------------------------
BOOL g_isSucceededLoad[ OS_SHARED_FONT_MAX ];
BOOL g_isSucceededLoad[ OS_SHARED_FONT_CN_KR_MAX ];
const char *str_fontname[ OS_SHARED_FONT_CN_KR_MAX ] = {
"SHARE_FONT_WW_L",
"SHARE_FONT_WW_M",
"SHARE_FONT_WW_S",
"SHARE_FONT_CN_L",
"SHARE_FONT_CN_M",
"SHARE_FONT_CN_S",
"SHARE_FONT_KR_L",
"SHARE_FONT_KR_M",
"SHARE_FONT_KR_S",
};
// static variable-------------------------------------------------------------
static u64 s_fontLoadThreadStack[THREAD_STACK_SIZE / sizeof(u64)];
static OSThread s_fontLoadThread;
static OSTick s_fontLoadStartTick;
static u8 *s_pFontBuffer[ OS_SHARED_FONT_MAX ]; // 読み込みはテストなのでロード先はstatic変数にしている。
static u8 *s_pFontBuffer[ OS_SHARED_FONT_CN_KR_MAX ]; // 読み込みはテストなのでロード先はstatic変数にしている。
static BOOL s_isStarted = FALSE;
// const data------------------------------------------------------------------
@ -90,10 +102,10 @@ void LoadSharedFontThread( void *arg )
BOOL retval = TRUE;
OSSharedFontIndex i;
for( i = OS_SHARED_FONT_WW_L; i < OS_SHARED_FONT_MAX; i++ ) {
for( i = OS_SHARED_FONT_WW_L; i < OS_SHARED_FONT_CN_KR_MAX; i++ ) {
int size;
OS_TPrintf( "%s read.\n", OS_GetSharedFontName( i ) );
OS_TPrintf( "%s read.\n", str_fontname[ i ] );
size = OS_GetSharedFontSize( i );
if( size < 0 ) {

View File

@ -27,7 +27,8 @@ extern "C" {
// define data-------------------------------------------------------
// global variables--------------------------------------------------
extern BOOL g_isSucceededLoad[ OS_SHARED_FONT_MAX ];
extern BOOL g_isSucceededLoad[ OS_SHARED_FONT_CN_KR_MAX ];
extern const char *str_fontname[ OS_SHARED_FONT_CN_KR_MAX ];
// function----------------------------------------------------------
BOOL LoadSharedFontInit( void );

View File

@ -81,11 +81,11 @@ void NitroMain(void)
DEMOFillRect(0, 0, GX_LCD_SIZE_X, GX_LCD_SIZE_Y, DEMO_RGB_CLEAR);
DEMOSetBitmapTextColor(GX_RGBA(0, 31, 0, 1));
DEMOSetBitmapTextColor(GX_RGBA(31, 31, 31, 1));
DEMODrawFrame(ox, oy, 240, 10 + OS_SHARED_FONT_MAX * 10, GX_RGBA( 0, 31, 0, 1));
for (i = 0; i < OS_SHARED_FONT_MAX; ++i)
DEMODrawFrame(ox, oy, 240, 10 + OS_SHARED_FONT_CN_KR_MAX * 10, GX_RGBA( 0, 31, 0, 1));
for (i = 0; i < OS_SHARED_FONT_CN_KR_MAX; ++i)
{
DEMODrawText(ox + 10, oy + 5 + i * 10, "%s load %s",
OS_GetSharedFontName( (OSSharedFontIndex)i ), g_isSucceededLoad[ i ] ? "suceeded" : "failed");
str_fontname[ i ], g_isSucceededLoad[ i ] ? "suceeded" : "failed");
}
}
DEMO_DrawFlip();

View File

@ -11,6 +11,7 @@
# Header ( 32 bytes)
# TimeStamp ( 4 bytes) : date %y%m%d%H
# number ( 2 bytes) : number of font files
# region_code ( 1 bytes) : font region code
# padding ( 6 bytes) :
# padding ( 20 bytes) : SHA1 digest of Font info table
#
@ -28,8 +29,8 @@
use POSIX 'strftime';
use File::Basename;
if ($#ARGV < 2) {
printf STDOUT ("Usage: %s [genFontTable] timestamp [Target font files...]\n", $0);
if ($#ARGV < 3) {
printf STDOUT ("Usage: %s [genFontTable] timestamp region_code [Target font files...]\n", $0);
exit(-1);
}
@ -70,6 +71,7 @@ my @files;
my $num = 0;
foreach ( @ARGV ) {
next if( $_ eq $ARGV[0] );
next if( $_ eq $ARGV[1] );
$files[ $num ] = $_;
$num++;
}
@ -160,7 +162,7 @@ foreach ( @ARGV ) {
{
# timestampLen = 0x08;
# elementNumLen = 0x02;
my $padLen = 0x06;
my $padLen = 0x05;
my $sha1Len = 0x14;
open HEADER, ">$headerFile" or die;
@ -169,12 +171,16 @@ foreach ( @ARGV ) {
# タイムスタンプの出力
# my $timestamp = strftime "%y%m%d%H", localtime;
my $timestamp = $ARGV[ 0 ];
my $region_code = $ARGV[ 1 ];
printf "timestamp = %s\n", $timestamp;
syswrite( HEADER, pack( "N", unpack( "L", pack( "H8", $timestamp ) ) ) );
# 要素数の出力
syswrite( HEADER, pack( "S", $num ) );
# リージョンコードの出力
syswrite( HEADER, pack( "C", $region_code ) );
# パディングの出力
syswrite( HEADER, pack( "x$padLen") );